diff --git a/compute/CMakeLists.txt b/compute/CMakeLists.txt
index eb50daba07ce3e33eda5b857fc19307bfc4af1d8..9e5eb0cb4d5898e3c82127d04e9e49708463537f 100644
--- a/compute/CMakeLists.txt
+++ b/compute/CMakeLists.txt
@@ -57,9 +57,9 @@ set(CHAMELEON_CONTROL
     ../control/descriptor.c
     ../control/workspace.c
     ../control/tile.c
-    ../control/morse_f77.c
-    ../control/morse_mf77.c
-#    ../control/morsewinthread.c
+    ../control/chameleon_f77.c
+    ../control/chameleon_mf77.c
+#    ../control/chameleonwinthread.c
    )
 
 set(flags_to_add "")
@@ -68,7 +68,7 @@ foreach(_prec ${CHAMELEON_PRECISION})
 endforeach()
 set_source_files_properties(../control/tile.c PROPERTIES COMPILE_FLAGS "${flags_to_add}")
 
-# Generate the morse sources for all possible precisions
+# Generate the chameleon sources for all possible precisions
 # ------------------------------------------------------
 set(CHAMELEON_SRCS_GENERATED "")
 set(ZSRC
@@ -251,7 +251,7 @@ precisions_rules_py(CHAMELEON_SRCS_GENERATED "${ZSRC}"
 set(CONTROL_SRCS_GENERATED "")
 set(ZSRC
     ../control/workspace_z.c
-    ../control/morse_zf77.c
+    ../control/chameleon_zf77.c
 )
 
 precisions_rules_py(CONTROL_SRCS_GENERATED "${ZSRC}"
@@ -264,21 +264,21 @@ set(CHAMELEON_SRCS
     ${CONTROL_SRCS_GENERATED}
    )
 
-# Generate the morse fortran sources for all possible precisions
+# Generate the chameleon fortran sources for all possible precisions
 # --------------------------------------------------------------
 if(HAVE_ISO_C_BINDING)
     set(CHAMELEON_SRCS_F_GENERATED "")
     set(ZSRCF
-        ../control/morse_zcf90.F90
-        ../control/morse_zf90.F90
-        ../control/morse_zf90_wrappers.F90
+        ../control/chameleon_zcf90.F90
+        ../control/chameleon_zf90.F90
+        ../control/chameleon_zf90_wrappers.F90
        )
     precisions_rules_py(CHAMELEON_SRCS_F_GENERATED "${ZSRCF}"
                         PRECISIONS "${CHAMELEON_PRECISION}"
                         TARGETDIR "control" )
 
     set(CHAMELEON_SRCSF
-        ../control/morse_f90.f90
+        ../control/chameleon_f90.f90
         ${CHAMELEON_SRCS_F_GENERATED}
        )
 endif(HAVE_ISO_C_BINDING)
diff --git a/compute/pzbuild.c b/compute/pzbuild.c
index cf16d95e3ec3604f61bce9a265cf037279caafdf..417d429bd78d9864544e144eabc5e1e2c62c178d 100644
--- a/compute/pzbuild.c
+++ b/compute/pzbuild.c
@@ -53,19 +53,19 @@
  *          Identifies this function call (for exception handling purposes).
  *
  */
-void morse_pzbuild( cham_uplo_t uplo, CHAM_desc_t *A, void *user_data, void* user_build_callback,
+void chameleon_pzbuild( cham_uplo_t uplo, CHAM_desc_t *A, void *user_data, void* user_build_callback,
                     RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-  CHAM_context_t *morse;
+  CHAM_context_t *chamctxt;
   RUNTIME_option_t options;
 
   int m, n;
   int ldam;
 
-  morse = morse_context_self();
+  chamctxt = chameleon_context_self();
   if (sequence->status != CHAMELEON_SUCCESS)
     return;
-  RUNTIME_options_init(&options, morse, sequence, request);
+  RUNTIME_options_init(&options, chamctxt, sequence, request);
 
   for (m = 0; m < A->mt; m++) {
     ldam = BLKLDD(A, m);
@@ -81,5 +81,5 @@ void morse_pzbuild( cham_uplo_t uplo, CHAM_desc_t *A, void *user_data, void* use
     }
   }
 
-  RUNTIME_options_finalize( &options, morse);
+  RUNTIME_options_finalize( &options, chamctxt);
 }
diff --git a/compute/pzgebrd_ge2gb.c b/compute/pzgebrd_ge2gb.c
index 5dbd6dc88bacd14860fe0773b14fa184fff18c75..14e3bea724623c3550d78cb01c0b235c2763d4fe 100644
--- a/compute/pzgebrd_ge2gb.c
+++ b/compute/pzgebrd_ge2gb.c
@@ -20,7 +20,7 @@
  */
 #include "control/common.h"
 
-void morse_pzgebrd_ge2gb(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D,
+void chameleon_pzgebrd_ge2gb(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D,
                          RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
     int k;
@@ -31,34 +31,34 @@ void morse_pzgebrd_ge2gb(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D,
         for (k = 0; k < A->nt; k++) {
             tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
 
-            A1 = morse_desc_submatrix(A, k*A->mb,     k*A->nb, A->m-k*A->mb, tempkn);
-            A2 = morse_desc_submatrix(A, k*A->mb, (k+1)*A->nb, A->m-k*A->mb, A->n-(k+1)*A->nb);
-            T1 = morse_desc_submatrix(T, k*T->mb,     k*T->nb, T->m-k*T->mb, T->nb );
+            A1 = chameleon_desc_submatrix(A, k*A->mb,     k*A->nb, A->m-k*A->mb, tempkn);
+            A2 = chameleon_desc_submatrix(A, k*A->mb, (k+1)*A->nb, A->m-k*A->mb, A->n-(k+1)*A->nb);
+            T1 = chameleon_desc_submatrix(T, k*T->mb,     k*T->nb, T->m-k*T->mb, T->nb );
             if ( D != NULL ) {
-                D1 = morse_desc_submatrix(D, k*D->mb, k*D->nb, D->m-k*D->mb, tempkn);
+                D1 = chameleon_desc_submatrix(D, k*D->mb, k*D->nb, D->m-k*D->mb, tempkn);
             }
 
-            morse_pzgeqrf( A1, T1, D1,
+            chameleon_pzgeqrf( A1, T1, D1,
                            sequence, request);
 
-            morse_pzunmqr( ChamLeft, ChamConjTrans,
+            chameleon_pzunmqr( ChamLeft, ChamConjTrans,
                            A1, A2, T1, D1,
                            sequence, request);
 
             if (k+1 < A->nt){
                 tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
 
-                A1 = morse_desc_submatrix(A,     k*A->mb, (k+1)*A->nb, tempkm,           A->n-(k+1)*A->nb);
-                A2 = morse_desc_submatrix(A, (k+1)*A->mb, (k+1)*A->nb, A->m-(k+1)*A->mb, A->n-(k+1)*A->nb);
-                T1 = morse_desc_submatrix(T,     k*T->mb, (k+1)*T->nb, T->mb,            T->n-(k+1)*T->nb);
+                A1 = chameleon_desc_submatrix(A,     k*A->mb, (k+1)*A->nb, tempkm,           A->n-(k+1)*A->nb);
+                A2 = chameleon_desc_submatrix(A, (k+1)*A->mb, (k+1)*A->nb, A->m-(k+1)*A->mb, A->n-(k+1)*A->nb);
+                T1 = chameleon_desc_submatrix(T,     k*T->mb, (k+1)*T->nb, T->mb,            T->n-(k+1)*T->nb);
                 if ( D != NULL ) {
-                    D1 = morse_desc_submatrix(D, k*D->mb, (k+1)*D->nb, tempkm,           D->n-(k+1)*D->nb);
+                    D1 = chameleon_desc_submatrix(D, k*D->mb, (k+1)*D->nb, tempkm,           D->n-(k+1)*D->nb);
                 }
 
-                morse_pzgelqf( A1, T1, D1,
+                chameleon_pzgelqf( A1, T1, D1,
                                sequence, request);
 
-                morse_pzunmlq( ChamRight, ChamConjTrans,
+                chameleon_pzunmlq( ChamRight, ChamConjTrans,
                                A1, A2, T1, D1,
                                sequence, request);
             }
@@ -68,33 +68,33 @@ void morse_pzgebrd_ge2gb(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D,
         for (k = 0; k < A->mt; k++) {
             tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
 
-            A1 = morse_desc_submatrix(A,     k*A->mb, k*A->nb, tempkm,           A->n-k*A->nb);
-            A2 = morse_desc_submatrix(A, (k+1)*A->mb, k*A->nb, A->m-(k+1)*A->mb, A->n-k*A->nb);
-            T1 = morse_desc_submatrix(T,     k*T->mb, k*T->nb, T->mb,            T->n-k*T->nb);
+            A1 = chameleon_desc_submatrix(A,     k*A->mb, k*A->nb, tempkm,           A->n-k*A->nb);
+            A2 = chameleon_desc_submatrix(A, (k+1)*A->mb, k*A->nb, A->m-(k+1)*A->mb, A->n-k*A->nb);
+            T1 = chameleon_desc_submatrix(T,     k*T->mb, k*T->nb, T->mb,            T->n-k*T->nb);
             if ( D != NULL ) {
-                D1 = morse_desc_submatrix(D, k*D->mb, k*D->nb, tempkm,           D->n-k*D->nb);
+                D1 = chameleon_desc_submatrix(D, k*D->mb, k*D->nb, tempkm,           D->n-k*D->nb);
             }
-            morse_pzgelqf( A1, T1, D1,
+            chameleon_pzgelqf( A1, T1, D1,
                            sequence, request);
 
-            morse_pzunmlq( ChamRight, ChamConjTrans,
+            chameleon_pzunmlq( ChamRight, ChamConjTrans,
                            A1, A2, T1, D1,
                            sequence, request);
 
             if (k+1 < A->mt){
                 tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
 
-                A1 = morse_desc_submatrix(A, (k+1)*A->mb,     k*A->nb, A->m-(k+1)*A->mb, tempkn);
-                A2 = morse_desc_submatrix(A, (k+1)*A->mb, (k+1)*A->nb, A->m-(k+1)*A->mb, A->n-(k+1)*A->nb);
-                T1 = morse_desc_submatrix(T, (k+1)*T->mb,     k*T->nb, T->m-(k+1)*T->mb, T->nb );
+                A1 = chameleon_desc_submatrix(A, (k+1)*A->mb,     k*A->nb, A->m-(k+1)*A->mb, tempkn);
+                A2 = chameleon_desc_submatrix(A, (k+1)*A->mb, (k+1)*A->nb, A->m-(k+1)*A->mb, A->n-(k+1)*A->nb);
+                T1 = chameleon_desc_submatrix(T, (k+1)*T->mb,     k*T->nb, T->m-(k+1)*T->mb, T->nb );
                 if ( D != NULL ) {
-                    D1 = morse_desc_submatrix(D, (k+1)*D->mb, k*D->nb, D->m-(k+1)*D->mb, tempkn);
+                    D1 = chameleon_desc_submatrix(D, (k+1)*D->mb, k*D->nb, D->m-(k+1)*D->mb, tempkn);
                 }
 
-                morse_pzgeqrf( A1, T1, D1,
+                chameleon_pzgeqrf( A1, T1, D1,
                                sequence, request);
 
-                morse_pzunmqr( ChamLeft, ChamConjTrans,
+                chameleon_pzunmqr( ChamLeft, ChamConjTrans,
                                A1, A2, T1, D1,
                                sequence, request);
             }
diff --git a/compute/pzgelqf.c b/compute/pzgelqf.c
index 3f1d1bc665608b11f69d9698356ca12bf6154ef3..2dd877734112bce989dc0d86d82626fa6151f089 100644
--- a/compute/pzgelqf.c
+++ b/compute/pzgelqf.c
@@ -36,10 +36,10 @@
 /**
  *  Parallel tile LQ factorization - dynamic scheduling
  */
-void morse_pzgelqf(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D,
+void chameleon_pzgelqf(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D,
                    RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     size_t ws_worker = 0;
     size_t ws_host = 0;
@@ -49,10 +49,10 @@ void morse_pzgelqf(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D,
     int tempkm, tempkn, tempmm, tempnn;
     int ib, minMNT;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
 
@@ -90,7 +90,7 @@ void morse_pzgelqf(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D,
     RUNTIME_options_ws_alloc( &options, ws_worker, ws_host );
 
     for (k = 0; k < minMNT; k++) {
-        RUNTIME_iteration_push(morse, k);
+        RUNTIME_iteration_push(chamctxt, k);
 
         tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
         tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
@@ -169,10 +169,10 @@ void morse_pzgelqf(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D,
                                   A->get_rankof( A, m, k ) );
         }
 
-        RUNTIME_iteration_pop(morse);
+        RUNTIME_iteration_pop(chamctxt);
     }
 
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
     (void)D;
 }
diff --git a/compute/pzgelqf_param.c b/compute/pzgelqf_param.c
index 1e0b963901ebfd202671bc508e5cf7fde458176a..d172208305d880006e9dae7da9bf2db7cead9c79 100644
--- a/compute/pzgelqf_param.c
+++ b/compute/pzgelqf_param.c
@@ -30,11 +30,11 @@
 /*
  *  Parallel tile LQ factorization (reduction Householder) - dynamic scheduling
  */
-void morse_pzgelqf_param( const libhqr_tree_t *qrtree, CHAM_desc_t *A,
+void chameleon_pzgelqf_param( const libhqr_tree_t *qrtree, CHAM_desc_t *A,
                           CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *D,
                           RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     CHAM_desc_t *T;
     size_t ws_worker = 0;
@@ -47,10 +47,10 @@ void morse_pzgelqf_param( const libhqr_tree_t *qrtree, CHAM_desc_t *A,
     int ib;
     int *tiles;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
 
@@ -91,7 +91,7 @@ void morse_pzgelqf_param( const libhqr_tree_t *qrtree, CHAM_desc_t *A,
 
     /* The number of the factorization */
     for (k = 0; k < K; k++) {
-        RUNTIME_iteration_push(morse, k);
+        RUNTIME_iteration_push(chamctxt, k);
 
         tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
         ldak = BLKLDD(A, k);
@@ -199,10 +199,10 @@ void morse_pzgelqf_param( const libhqr_tree_t *qrtree, CHAM_desc_t *A,
                                   A->get_rankof( A, m, k ) );
         }
 
-        RUNTIME_iteration_pop(morse);
+        RUNTIME_iteration_pop(chamctxt);
     }
 
     free(tiles);
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzgelqfrh.c b/compute/pzgelqfrh.c
index bcf657f83a7def87f0a9f65227f757842371d814..cf0668b85db9627a1609ba06030c0630f1aa21d0 100644
--- a/compute/pzgelqfrh.c
+++ b/compute/pzgelqfrh.c
@@ -38,10 +38,10 @@
 /*
  *  Parallel tile LQ factorization (reduction Householder) - dynamic scheduling
  */
-void morse_pzgelqfrh(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D, int BS,
+void chameleon_pzgelqfrh(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D, int BS,
                      RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     size_t ws_worker = 0;
     size_t ws_host = 0;
@@ -52,10 +52,10 @@ void morse_pzgelqfrh(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D, int BS,
     int tempkmin, tempkm, tempNn, tempnn, tempmm, tempNRDn;
     int ib;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
 
@@ -88,7 +88,7 @@ void morse_pzgelqfrh(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D, int BS,
 
     /* The number of the factorization */
     for (k = 0; k < K; k++) {
-        RUNTIME_iteration_push(morse, k);
+        RUNTIME_iteration_push(chamctxt, k);
 
         tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
         ldak = BLKLDD(A, k);
@@ -210,10 +210,10 @@ void morse_pzgelqfrh(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D, int BS,
                                   A->get_rankof( A, m, k ) );
         }
 
-        RUNTIME_iteration_pop(morse);
+        RUNTIME_iteration_pop(chamctxt);
     }
 
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
     (void)D;
 }
diff --git a/compute/pzgemm.c b/compute/pzgemm.c
index bd5408668dea73a22632e0d3db379a2a8c3dba51..24cb787fc85697fa8b09c514f078b10785522173 100644
--- a/compute/pzgemm.c
+++ b/compute/pzgemm.c
@@ -29,12 +29,12 @@
 /**
  *  Parallel tile matrix-matrix multiplication - dynamic scheduling
  */
-void morse_pzgemm(cham_trans_t transA, cham_trans_t transB,
+void chameleon_pzgemm(cham_trans_t transA, cham_trans_t transB,
                          CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B,
                          CHAMELEON_Complex64_t beta,  CHAM_desc_t *C,
                          RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int m, n, k;
@@ -44,10 +44,10 @@ void morse_pzgemm(cham_trans_t transA, cham_trans_t transB,
     CHAMELEON_Complex64_t zbeta;
     CHAMELEON_Complex64_t zone = (CHAMELEON_Complex64_t)1.0;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     for (m = 0; m < C->mt; m++) {
         tempmm = m == C->mt-1 ? C->m-m*C->mb : C->mb;
@@ -141,5 +141,5 @@ void morse_pzgemm(cham_trans_t transA, cham_trans_t transB,
             }
         }
     }
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzgeqrf.c b/compute/pzgeqrf.c
index b01af072da9423cf722939ff4e9a3a5b825ebca4..7aad319b21241933c3d20acf7a1c029d723680d8 100644
--- a/compute/pzgeqrf.c
+++ b/compute/pzgeqrf.c
@@ -36,10 +36,10 @@
 /**
  *  Parallel tile QR factorization - dynamic scheduling
  */
-void morse_pzgeqrf(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D,
+void chameleon_pzgeqrf(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D,
                    RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     size_t ws_worker = 0;
     size_t ws_host = 0;
@@ -50,10 +50,10 @@ void morse_pzgeqrf(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D,
     int ib;
     int minMNT = chameleon_min(A->mt, A->nt);
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
 
@@ -85,7 +85,7 @@ void morse_pzgeqrf(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D,
     RUNTIME_options_ws_alloc( &options, ws_worker, ws_host );
 
     for (k = 0; k < minMNT; k++) {
-        RUNTIME_iteration_push(morse, k);
+        RUNTIME_iteration_push(chamctxt, k);
 
         tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
         tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
@@ -165,10 +165,10 @@ void morse_pzgeqrf(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D,
                                   A->get_rankof( A, k, n ) );
         }
 
-        RUNTIME_iteration_pop(morse);
+        RUNTIME_iteration_pop(chamctxt);
     }
 
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
     (void)D;
 }
diff --git a/compute/pzgeqrf_param.c b/compute/pzgeqrf_param.c
index 38134c9d01c4198cd940154f7089812010ff3140..2d97b80c316e784b40ee68dd033d2ed806dbf95b 100644
--- a/compute/pzgeqrf_param.c
+++ b/compute/pzgeqrf_param.c
@@ -29,11 +29,11 @@
 /**
  *  Parallel tile QR factorization (reduction Householder) - dynamic scheduling
  */
-void morse_pzgeqrf_param( const libhqr_tree_t *qrtree, CHAM_desc_t *A,
+void chameleon_pzgeqrf_param( const libhqr_tree_t *qrtree, CHAM_desc_t *A,
                           CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *D,
                           RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     CHAM_desc_t *T;
     size_t ws_worker = 0;
@@ -46,10 +46,10 @@ void morse_pzgeqrf_param( const libhqr_tree_t *qrtree, CHAM_desc_t *A,
     int ib;
     int *tiles;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
 
@@ -89,7 +89,7 @@ void morse_pzgeqrf_param( const libhqr_tree_t *qrtree, CHAM_desc_t *A,
 
     /* The number of the factorization */
     for (k = 0; k < K; k++) {
-        RUNTIME_iteration_push(morse, k);
+        RUNTIME_iteration_push(chamctxt, k);
         tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
 
         /* The number of geqrt to apply */
@@ -197,10 +197,10 @@ void morse_pzgeqrf_param( const libhqr_tree_t *qrtree, CHAM_desc_t *A,
                                   A->get_rankof( A, k, n ) );
         }
 
-        RUNTIME_iteration_pop(morse);
+        RUNTIME_iteration_pop(chamctxt);
     }
 
     free(tiles);
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzgeqrfrh.c b/compute/pzgeqrfrh.c
index 4fed177bba3694837c56fe52c62815c52b4bccde..42903831e9e420f858234513b7159fa1f0e6f7ed 100644
--- a/compute/pzgeqrfrh.c
+++ b/compute/pzgeqrfrh.c
@@ -38,10 +38,10 @@
 /**
  *  Parallel tile QR factorization (reduction Householder) - dynamic scheduling
  */
-void morse_pzgeqrfrh(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D, int BS,
+void chameleon_pzgeqrfrh(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D, int BS,
                      RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     size_t ws_worker = 0;
     size_t ws_host = 0;
@@ -52,10 +52,10 @@ void morse_pzgeqrfrh(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D, int BS,
     int tempkmin, tempkn, tempMm, tempnn, tempmm, tempMRDm;
     int ib;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
 
@@ -86,7 +86,7 @@ void morse_pzgeqrfrh(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D, int BS,
 
     K = chameleon_min(A->mt, A->nt);
     for (k = 0; k < K; k++) {
-        RUNTIME_iteration_push(morse, k);
+        RUNTIME_iteration_push(chamctxt, k);
 
         tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
         for (M = k; M < A->mt; M += BS) {
@@ -209,10 +209,10 @@ void morse_pzgeqrfrh(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D, int BS,
                                   A->get_rankof( A, k, n ) );
         }
 
-        RUNTIME_iteration_pop(morse);
+        RUNTIME_iteration_pop(chamctxt);
     }
 
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
     (void)D;
 }
diff --git a/compute/pzgetrf_incpiv.c b/compute/pzgetrf_incpiv.c
index a03cc31181b1b120baed6e1646079c64997a9911..4d3bd0958439ec2a9f841989c05481bbbc116a27 100644
--- a/compute/pzgetrf_incpiv.c
+++ b/compute/pzgetrf_incpiv.c
@@ -40,10 +40,10 @@
 /**
  *  Parallel tile LU factorization - dynamic scheduling
  */
-void morse_pzgetrf_incpiv( CHAM_desc_t *A, CHAM_desc_t *L, CHAM_desc_t *D, int *IPIV,
+void chameleon_pzgetrf_incpiv( CHAM_desc_t *A, CHAM_desc_t *L, CHAM_desc_t *D, int *IPIV,
                            RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     size_t ws_worker = 0;
     size_t ws_host = 0;
@@ -54,10 +54,10 @@ void morse_pzgetrf_incpiv( CHAM_desc_t *A, CHAM_desc_t *L, CHAM_desc_t *D, int *
     int ib;
     int minMNT = chameleon_min(A->mt, A->nt);
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
 
@@ -75,7 +75,7 @@ void morse_pzgetrf_incpiv( CHAM_desc_t *A, CHAM_desc_t *L, CHAM_desc_t *D, int *
     RUNTIME_options_ws_alloc( &options, ws_worker, ws_host );
 
     for (k = 0; k < minMNT; k++) {
-        RUNTIME_iteration_push(morse, k);
+        RUNTIME_iteration_push(chamctxt, k);
 
         tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
         tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
@@ -133,10 +133,10 @@ void morse_pzgetrf_incpiv( CHAM_desc_t *A, CHAM_desc_t *L, CHAM_desc_t *D, int *
             }
         }
 
-        RUNTIME_iteration_pop(morse);
+        RUNTIME_iteration_pop(chamctxt);
     }
 
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
     (void)D;
 }
diff --git a/compute/pzgetrf_nopiv.c b/compute/pzgetrf_nopiv.c
index e5407d34cc0f5415e65e94336b122bf22f05713c..aef3d87b4ab3d80ad2ade2a7efd869172fa2d9f9 100644
--- a/compute/pzgetrf_nopiv.c
+++ b/compute/pzgetrf_nopiv.c
@@ -27,11 +27,11 @@
 /**
  *  Parallel tile LU factorization with no pivoting - dynamic scheduling
  */
-void morse_pzgetrf_nopiv(CHAM_desc_t *A,
+void chameleon_pzgetrf_nopiv(CHAM_desc_t *A,
                                 RUNTIME_sequence_t *sequence,
                                 RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int k, m, n, ib;
@@ -41,15 +41,15 @@ void morse_pzgetrf_nopiv(CHAM_desc_t *A,
     CHAMELEON_Complex64_t zone  = (CHAMELEON_Complex64_t) 1.0;
     CHAMELEON_Complex64_t mzone = (CHAMELEON_Complex64_t)-1.0;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
 
     for (k = 0; k < chameleon_min(A->mt, A->nt); k++) {
-        RUNTIME_iteration_push(morse, k);
+        RUNTIME_iteration_push(chamctxt, k);
 
         tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
         tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
@@ -96,8 +96,8 @@ void morse_pzgetrf_nopiv(CHAM_desc_t *A,
             }
         }
 
-        RUNTIME_iteration_pop(morse);
+        RUNTIME_iteration_pop(chamctxt);
     }
 
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzhemm.c b/compute/pzhemm.c
index 0c99e27011706c09d41cfbdf6a8c01f5c4eda9bd..418199cb9e0a2a0fecc939b7c5b507c626bb0b46 100644
--- a/compute/pzhemm.c
+++ b/compute/pzhemm.c
@@ -29,12 +29,12 @@
 /**
  *  Parallel tile Hermitian matrix-matrix multiplication - dynamic scheduling
  */
-void morse_pzhemm(cham_side_t side, cham_uplo_t uplo,
+void chameleon_pzhemm(cham_side_t side, cham_uplo_t uplo,
                          CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B,
                          CHAMELEON_Complex64_t beta, CHAM_desc_t *C,
                          RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int k, m, n;
@@ -44,10 +44,10 @@ void morse_pzhemm(cham_side_t side, cham_uplo_t uplo,
     CHAMELEON_Complex64_t zbeta;
     CHAMELEON_Complex64_t zone = (CHAMELEON_Complex64_t)1.0;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     for(m = 0; m < C->mt; m++) {
         tempmm = m == C->mt-1 ? C->m-m*C->mb : C->mb;
@@ -221,5 +221,5 @@ void morse_pzhemm(cham_side_t side, cham_uplo_t uplo,
             }
         }
     }
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzher2k.c b/compute/pzher2k.c
index 91b0229bf761a57733e7a72be27c6e50bd889e9f..3654a8b9efbb3f4af6982591228bdea14a64b178 100644
--- a/compute/pzher2k.c
+++ b/compute/pzher2k.c
@@ -29,12 +29,12 @@
 /**
  *  Parallel tile Hermitian rank-k update - dynamic scheduling
  */
-void morse_pzher2k(cham_uplo_t uplo, cham_trans_t trans,
+void chameleon_pzher2k(cham_uplo_t uplo, cham_trans_t trans,
                           CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B,
                           double beta,  CHAM_desc_t *C,
                           RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int m, n, k;
@@ -46,10 +46,10 @@ void morse_pzher2k(cham_uplo_t uplo, cham_trans_t trans,
     CHAMELEON_Complex64_t zbeta;
     double dbeta;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     for (n = 0; n < C->nt; n++) {
         tempnn = n == C->nt-1 ? C->n-n*C->nb : C->nb;
@@ -209,5 +209,5 @@ void morse_pzher2k(cham_uplo_t uplo, cham_trans_t trans,
             }
         }
     }
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzherk.c b/compute/pzherk.c
index bf13820ffad9aa7c9efdcbad2bc2851e2aa227cf..8aa5a694bee275ab09a84244e7846b2f551a7110 100644
--- a/compute/pzherk.c
+++ b/compute/pzherk.c
@@ -28,12 +28,12 @@
 /**
  *  Parallel tile Hermitian rank-k update - dynamic scheduling
  */
-void morse_pzherk(cham_uplo_t uplo, cham_trans_t trans,
+void chameleon_pzherk(cham_uplo_t uplo, cham_trans_t trans,
                          double alpha, CHAM_desc_t *A,
                          double beta,  CHAM_desc_t *C,
                          RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int m, n, k;
@@ -45,10 +45,10 @@ void morse_pzherk(cham_uplo_t uplo, cham_trans_t trans,
     CHAMELEON_Complex64_t zbeta;
     double dbeta;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     for (n = 0; n < C->nt; n++) {
         tempnn = n == C->nt-1 ? C->n-n*C->nb : C->nb;
@@ -168,5 +168,5 @@ void morse_pzherk(cham_uplo_t uplo, cham_trans_t trans,
             }
         }
     }
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzhetrd_he2hb.c b/compute/pzhetrd_he2hb.c
index 98b0722822e0239616f5bdb5faea6c67cf06b9fc..1aedeae6946e3e656cb3c28cf41faaf4a924ad74 100644
--- a/compute/pzhetrd_he2hb.c
+++ b/compute/pzhetrd_he2hb.c
@@ -36,11 +36,11 @@
 /**
  *  Parallel tile BAND Tridiagonal Reduction - dynamic scheduler
  */
-void morse_pzhetrd_he2hb(cham_uplo_t uplo,
+void chameleon_pzhetrd_he2hb(cham_uplo_t uplo,
                          CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *E,
                          RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     CHAM_desc_t *D  = NULL;
     CHAM_desc_t *AT = NULL;
@@ -52,11 +52,11 @@ void morse_pzhetrd_he2hb(cham_uplo_t uplo,
     int tempkm, tempkn, tempmm, tempnn, tempjj;
     int ib;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
 
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
     ib = CHAMELEON_IB;
 
     /*
@@ -87,13 +87,13 @@ void morse_pzhetrd_he2hb(cham_uplo_t uplo,
 
     /* Copy of the diagonal tiles to keep the general version of the tile all along the computation */
     D = (CHAM_desc_t*)malloc(sizeof(CHAM_desc_t));
-    morse_zdesc_alloc_diag(*D, A->mb, A->nb, chameleon_min(A->m, A->n) - A->mb, A->nb, 0, 0, chameleon_min(A->m, A->n) - A->mb, A->nb, A->p, A->q);
+    chameleon_zdesc_alloc_diag(*D, A->mb, A->nb, chameleon_min(A->m, A->n) - A->mb, A->nb, 0, 0, chameleon_min(A->m, A->n) - A->mb, A->nb, A->p, A->q);
 
     AT = (CHAM_desc_t*)malloc(sizeof(CHAM_desc_t));
-    *AT = morse_desc_init(
+    *AT = chameleon_desc_init(
         ChamComplexDouble, A->mb, A->nb, (A->mb*A->nb),
         chameleon_min(A->mt, A->nt) * A->mb, A->nb, 0, 0, chameleon_min(A->mt, A->nt) * A->mb, A->nb, 1, 1);
-    morse_desc_mat_alloc( AT );
+    chameleon_desc_mat_alloc( AT );
     RUNTIME_desc_create( AT );
 
     /* Let's extract the diagonal in a temporary copy that contains A and A' */
@@ -110,7 +110,7 @@ void morse_pzhetrd_he2hb(cham_uplo_t uplo,
 
     if (uplo == ChamLower) {
        for (k = 0; k < A->nt-1; k++){
-           RUNTIME_iteration_push(morse, k);
+           RUNTIME_iteration_push(chamctxt, k);
 
            tempkm = k+1 == A->mt-1 ? A->m-(k+1)*A->mb : A->mb;
            tempkn = k   == A->nt-1 ? A->n- k   *A->nb : A->nb;
@@ -262,12 +262,12 @@ void morse_pzhetrd_he2hb(cham_uplo_t uplo,
                options.priority = 0;
            }
 
-           RUNTIME_iteration_pop(morse);
+           RUNTIME_iteration_pop(chamctxt);
        }
     }
     else {
        for (k = 0; k < A->nt-1; k++){
-           RUNTIME_iteration_push(morse, k);
+           RUNTIME_iteration_push(chamctxt, k);
 
            tempkn = k+1 == A->nt-1 ? A->n-(k+1)*A->nb : A->nb;
            tempkm = k   == A->mt-1 ? A->m- k   *A->mb : A->mb;
@@ -416,7 +416,7 @@ void morse_pzhetrd_he2hb(cham_uplo_t uplo,
            }
            options.priority = 0;
 
-           RUNTIME_iteration_pop(morse);
+           RUNTIME_iteration_pop(chamctxt);
        }
     }
 
@@ -433,13 +433,13 @@ void morse_pzhetrd_he2hb(cham_uplo_t uplo,
 
 
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 
     CHAMELEON_Sequence_Wait(sequence);
-    morse_desc_mat_free(D);
+    chameleon_desc_mat_free(D);
     free(D);
 
-    morse_desc_mat_free(AT);
+    chameleon_desc_mat_free(AT);
     free(AT);
 
     (void)E;
diff --git a/compute/pzlacpy.c b/compute/pzlacpy.c
index 9be0a0209ac278b4a098bf71b5b039624e7cd588..29fe90bc5506e3c7c3e89be552d88b23fd3edbc3 100644
--- a/compute/pzlacpy.c
+++ b/compute/pzlacpy.c
@@ -31,20 +31,20 @@
 /**
  *
  */
-void morse_pzlacpy(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B,
+void chameleon_pzlacpy(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B,
                           RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int X, Y;
     int m, n;
     int ldam, ldbm;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     switch (uplo) {
     /*
@@ -123,5 +123,5 @@ void morse_pzlacpy(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B,
             }
         }
     }
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzlag2c.c b/compute/pzlag2c.c
index 4370143ca17bf06687a707c0c56a37eb1c443d1d..194c50afa5be2549a3d64d6c096f5120d1f6b7cf 100644
--- a/compute/pzlag2c.c
+++ b/compute/pzlag2c.c
@@ -33,20 +33,20 @@
 /**
  *
  */
-void morse_pclag2z(CHAM_desc_t *SA, CHAM_desc_t *B,
+void chameleon_pclag2z(CHAM_desc_t *SA, CHAM_desc_t *B,
                           RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int X, Y;
     int m, n;
     int ldam, ldbm;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     for(m = 0; m < SA->mt; m++) {
         X = m == SA->mt-1 ? SA->m-m*SA->mb : SA->mb;
@@ -61,5 +61,5 @@ void morse_pclag2z(CHAM_desc_t *SA, CHAM_desc_t *B,
                 B(m, n), ldbm);
         }
     }
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzlange.c b/compute/pzlange.c
index 6ef9575cc9f3029a56967d4548b22675c00a6039..5a6b15bbad1c39f75ed295f2b17ba159df04959d 100644
--- a/compute/pzlange.c
+++ b/compute/pzlange.c
@@ -34,13 +34,13 @@
 /**
  *
  */
-void morse_pzlange( cham_normtype_t norm, CHAM_desc_t *A, double *result,
+void chameleon_pzlange( cham_normtype_t norm, CHAM_desc_t *A, double *result,
                     RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
     CHAM_desc_t *VECNORMS_STEP1 = NULL;
     CHAM_desc_t *VECNORMS_STEP2 = NULL;
     CHAM_desc_t *RESULT         = NULL;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int workm, workn;
@@ -48,10 +48,10 @@ void morse_pzlange( cham_normtype_t norm, CHAM_desc_t *A, double *result,
     int ldam;
     int m, n;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     *result = 0.0;
     switch ( norm ) {
@@ -152,7 +152,7 @@ void morse_pzlange( cham_normtype_t norm, CHAM_desc_t *A, double *result,
         CHAMELEON_Desc_Flush( VECNORMS_STEP2, sequence );
         CHAMELEON_Desc_Flush( VECNORMS_STEP1, sequence );
         CHAMELEON_Desc_Flush( RESULT, sequence );
-        RUNTIME_sequence_wait(morse, sequence);
+        RUNTIME_sequence_wait(chamctxt, sequence);
         CHAMELEON_Desc_Destroy( &(VECNORMS_STEP2) );
         break;
 
@@ -272,7 +272,7 @@ void morse_pzlange( cham_normtype_t norm, CHAM_desc_t *A, double *result,
         CHAMELEON_Desc_Flush( VECNORMS_STEP2, sequence );
         CHAMELEON_Desc_Flush( VECNORMS_STEP1, sequence );
         CHAMELEON_Desc_Flush( RESULT, sequence );
-        RUNTIME_sequence_wait(morse, sequence);
+        RUNTIME_sequence_wait(chamctxt, sequence);
         CHAMELEON_Desc_Destroy( &(VECNORMS_STEP2) );
         break;
 
@@ -342,7 +342,7 @@ void morse_pzlange( cham_normtype_t norm, CHAM_desc_t *A, double *result,
 
         CHAMELEON_Desc_Flush( VECNORMS_STEP1, sequence );
         CHAMELEON_Desc_Flush( RESULT, sequence );
-        RUNTIME_sequence_wait(morse, sequence);
+        RUNTIME_sequence_wait(chamctxt, sequence);
         break;
 
         /*
@@ -405,7 +405,7 @@ void morse_pzlange( cham_normtype_t norm, CHAM_desc_t *A, double *result,
 
         CHAMELEON_Desc_Flush( VECNORMS_STEP1, sequence );
         CHAMELEON_Desc_Flush( RESULT, sequence );
-        RUNTIME_sequence_wait(morse, sequence);
+        RUNTIME_sequence_wait(chamctxt, sequence);
     }
 
     *result = *(double *)VECNORMS_STEP1->get_blkaddr(VECNORMS_STEP1, A->myrank / A->q, A->myrank % A->q );
@@ -413,5 +413,5 @@ void morse_pzlange( cham_normtype_t norm, CHAM_desc_t *A, double *result,
     CHAMELEON_Desc_Destroy( &(VECNORMS_STEP1) );
     CHAMELEON_Desc_Destroy( &(RESULT) );
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzlanhe.c b/compute/pzlanhe.c
index 4e0e7d60066fd801834a36fe571b27fd5ecd832a..e7c181296209393fd2b940d92a44238cc72c663f 100644
--- a/compute/pzlanhe.c
+++ b/compute/pzlanhe.c
@@ -36,13 +36,13 @@
 /**
  *
  */
-void morse_pzlanhe(cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A, double *result,
+void chameleon_pzlanhe(cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A, double *result,
                    RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
     CHAM_desc_t *VECNORMS_STEP1 = NULL;
     CHAM_desc_t *VECNORMS_STEP2 = NULL;
     CHAM_desc_t *RESULT         = NULL;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int workm, workn;
@@ -54,10 +54,10 @@ void morse_pzlanhe(cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A, doubl
     /* part_p = A->myrank / A->q; */
     /* part_q = A->myrank % A->q; */
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     *result = 0.0;
     switch ( norm ) {
@@ -199,7 +199,7 @@ void morse_pzlanhe(cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A, doubl
         CHAMELEON_Desc_Flush( VECNORMS_STEP2, sequence );
         CHAMELEON_Desc_Flush( VECNORMS_STEP1, sequence );
         CHAMELEON_Desc_Flush( RESULT, sequence );
-        RUNTIME_sequence_wait(morse, sequence);
+        RUNTIME_sequence_wait(chamctxt, sequence);
         *result = *(double *)VECNORMS_STEP1->get_blkaddr(VECNORMS_STEP1, A->myrank / A->q, A->myrank % A->q );
         CHAMELEON_Desc_Destroy( &(VECNORMS_STEP1) );
         CHAMELEON_Desc_Destroy( &(VECNORMS_STEP2) );
@@ -337,7 +337,7 @@ void morse_pzlanhe(cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A, doubl
 
         CHAMELEON_Desc_Flush( VECNORMS_STEP1, sequence );
         CHAMELEON_Desc_Flush( RESULT, sequence );
-        RUNTIME_sequence_wait(morse, sequence);
+        RUNTIME_sequence_wait(chamctxt, sequence);
         *result = *(double *)VECNORMS_STEP1->get_blkaddr(VECNORMS_STEP1, A->myrank / A->q, A->myrank % A->q );
         CHAMELEON_Desc_Destroy( &(VECNORMS_STEP1) );
         CHAMELEON_Desc_Destroy( &(RESULT) );
@@ -450,11 +450,11 @@ void morse_pzlanhe(cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A, doubl
 
             CHAMELEON_Desc_Flush( VECNORMS_STEP1, sequence );
             CHAMELEON_Desc_Flush( RESULT, sequence );
-            RUNTIME_sequence_wait(morse, sequence);
+            RUNTIME_sequence_wait(chamctxt, sequence);
             *result = *(double *)VECNORMS_STEP1->get_blkaddr(VECNORMS_STEP1, A->myrank / A->q, A->myrank % A->q );
             CHAMELEON_Desc_Destroy( &(VECNORMS_STEP1) );
             CHAMELEON_Desc_Destroy( &(RESULT) );
     }
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzlansy.c b/compute/pzlansy.c
index 6890ac2ffc73c9ef0e6341b7e636f9892fbb84a3..96411e26c4946c157bec2218e334b5f0bb373ad9 100644
--- a/compute/pzlansy.c
+++ b/compute/pzlansy.c
@@ -36,13 +36,13 @@
 /**
  *
  */
-void morse_pzlansy(cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A, double *result,
+void chameleon_pzlansy(cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A, double *result,
                    RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
     CHAM_desc_t *VECNORMS_STEP1 = NULL;
     CHAM_desc_t *VECNORMS_STEP2 = NULL;
     CHAM_desc_t *RESULT         = NULL;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int workm, workn;
@@ -54,10 +54,10 @@ void morse_pzlansy(cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A, doubl
     /* part_p = A->myrank / A->q; */
     /* part_q = A->myrank % A->q; */
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     *result = 0.0;
     switch ( norm ) {
@@ -199,7 +199,7 @@ void morse_pzlansy(cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A, doubl
         CHAMELEON_Desc_Flush( VECNORMS_STEP2, sequence );
         CHAMELEON_Desc_Flush( VECNORMS_STEP1, sequence );
         CHAMELEON_Desc_Flush( RESULT, sequence );
-        RUNTIME_sequence_wait(morse, sequence);
+        RUNTIME_sequence_wait(chamctxt, sequence);
         CHAMELEON_Desc_Destroy( &(VECNORMS_STEP2) );
         break;
     /*
@@ -343,7 +343,7 @@ void morse_pzlansy(cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A, doubl
 
         CHAMELEON_Desc_Flush( VECNORMS_STEP1, sequence );
         CHAMELEON_Desc_Flush( RESULT, sequence );
-        RUNTIME_sequence_wait(morse, sequence);
+        RUNTIME_sequence_wait(chamctxt, sequence);
         break;
 
     /*
@@ -453,7 +453,7 @@ void morse_pzlansy(cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A, doubl
 
         CHAMELEON_Desc_Flush( VECNORMS_STEP1, sequence );
         CHAMELEON_Desc_Flush( RESULT, sequence );
-        RUNTIME_sequence_wait(morse, sequence);
+        RUNTIME_sequence_wait(chamctxt, sequence);
     }
 
     *result = *(double *)VECNORMS_STEP1->get_blkaddr(VECNORMS_STEP1, A->myrank / A->q, A->myrank % A->q );
@@ -461,5 +461,5 @@ void morse_pzlansy(cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A, doubl
     CHAMELEON_Desc_Destroy( &(VECNORMS_STEP1) );
     CHAMELEON_Desc_Destroy( &(RESULT) );
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzlantr.c b/compute/pzlantr.c
index 427f2b7954e9c9bbbabd3252f42c8500d733868a..cbdefa954a5d97293bf9277895a499de3300a6a2 100644
--- a/compute/pzlantr.c
+++ b/compute/pzlantr.c
@@ -30,14 +30,14 @@
 /**
  *
  */
-void morse_pzlantr(cham_normtype_t norm, cham_uplo_t uplo, cham_diag_t diag,
+void chameleon_pzlantr(cham_normtype_t norm, cham_uplo_t uplo, cham_diag_t diag,
                    CHAM_desc_t *A, double *result,
                    RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
     CHAM_desc_t *VECNORMS_STEP1 = NULL;
     CHAM_desc_t *VECNORMS_STEP2 = NULL;
     CHAM_desc_t *RESULT         = NULL;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int workm, workn;
@@ -51,10 +51,10 @@ void morse_pzlantr(cham_normtype_t norm, cham_uplo_t uplo, cham_diag_t diag,
     /* part_p = A->myrank / A->q; */
     /* part_q = A->myrank % A->q; */
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     *result = 0.0;
     switch ( norm ) {
@@ -223,7 +223,7 @@ void morse_pzlantr(cham_normtype_t norm, cham_uplo_t uplo, cham_diag_t diag,
         CHAMELEON_Desc_Flush( VECNORMS_STEP2, sequence );
         CHAMELEON_Desc_Flush( VECNORMS_STEP1, sequence );
         CHAMELEON_Desc_Flush( RESULT, sequence );
-        RUNTIME_sequence_wait(morse, sequence);
+        RUNTIME_sequence_wait(chamctxt, sequence);
         *result = *(double *)VECNORMS_STEP1->get_blkaddr(VECNORMS_STEP1, A->myrank / A->q, A->myrank % A->q );
         CHAMELEON_Desc_Destroy( &(VECNORMS_STEP1) );
         CHAMELEON_Desc_Destroy( &(VECNORMS_STEP2) );
@@ -395,7 +395,7 @@ void morse_pzlantr(cham_normtype_t norm, cham_uplo_t uplo, cham_diag_t diag,
         CHAMELEON_Desc_Flush( VECNORMS_STEP2, sequence );
         CHAMELEON_Desc_Flush( VECNORMS_STEP1, sequence );
         CHAMELEON_Desc_Flush( RESULT, sequence );
-        RUNTIME_sequence_wait(morse, sequence);
+        RUNTIME_sequence_wait(chamctxt, sequence);
         *result = *(double *)VECNORMS_STEP1->get_blkaddr(VECNORMS_STEP1, A->myrank / A->q, A->myrank % A->q );
         CHAMELEON_Desc_Destroy( &(VECNORMS_STEP1) );
         CHAMELEON_Desc_Destroy( &(VECNORMS_STEP2) );
@@ -537,7 +537,7 @@ void morse_pzlantr(cham_normtype_t norm, cham_uplo_t uplo, cham_diag_t diag,
 
         CHAMELEON_Desc_Flush( VECNORMS_STEP1, sequence );
         CHAMELEON_Desc_Flush( RESULT, sequence );
-        RUNTIME_sequence_wait(morse, sequence);
+        RUNTIME_sequence_wait(chamctxt, sequence);
         *result = *(double *)VECNORMS_STEP1->get_blkaddr(VECNORMS_STEP1, A->myrank / A->q, A->myrank % A->q );
         CHAMELEON_Desc_Destroy( &(VECNORMS_STEP1) );
         CHAMELEON_Desc_Destroy( &(RESULT) );
@@ -663,11 +663,11 @@ void morse_pzlantr(cham_normtype_t norm, cham_uplo_t uplo, cham_diag_t diag,
 
             CHAMELEON_Desc_Flush( VECNORMS_STEP1, sequence );
             CHAMELEON_Desc_Flush( RESULT, sequence );
-            RUNTIME_sequence_wait(morse, sequence);
+            RUNTIME_sequence_wait(chamctxt, sequence);
             *result = *(double *)VECNORMS_STEP1->get_blkaddr(VECNORMS_STEP1, A->myrank / A->q, A->myrank % A->q );
             CHAMELEON_Desc_Destroy( &(VECNORMS_STEP1) );
             CHAMELEON_Desc_Destroy( &(RESULT) );
     }
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzlascal.c b/compute/pzlascal.c
index 17d547d6ee3baa2879d347ca7771b0fbf360cc0e..de54e477ef86fa484e5b4a5cb79231991c96227e 100644
--- a/compute/pzlascal.c
+++ b/compute/pzlascal.c
@@ -23,10 +23,10 @@
 /**
  *  Parallel scale of a matrix A
  */
-void morse_pzlascal(cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A,
+void chameleon_pzlascal(cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A,
                     RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int tempmm, tempnn, tempmn, tempnm;
@@ -34,11 +34,11 @@ void morse_pzlascal(cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *
     int ldam, ldan;
     int minmnt = chameleon_min(A->mt, A->nt);
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
 
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     switch(uplo) {
     case ChamLower:
@@ -102,5 +102,5 @@ void morse_pzlascal(cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *
             }
         }
     }
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzlaset.c b/compute/pzlaset.c
index a4bcc5c9d4f40dfa83e59737d913b749ef6894d0..f0a5f88a8d97f2b1f65a4a9d3e2c7976b4d34c2d 100644
--- a/compute/pzlaset.c
+++ b/compute/pzlaset.c
@@ -29,12 +29,12 @@
  *  Parallel initialization a 2-D array A to BETA on the diagonal and
  *  ALPHA on the offdiagonals.
  */
-void morse_pzlaset(cham_uplo_t uplo,
+void chameleon_pzlaset(cham_uplo_t uplo,
                           CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t beta,
                           CHAM_desc_t *A,
                           RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int i, j;
@@ -43,11 +43,11 @@ void morse_pzlaset(cham_uplo_t uplo,
     int tempjm, tempjn;
     int minmn = chameleon_min(A->mt, A->nt);
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
 
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     if (uplo == ChamLower) {
        for (j = 0; j < minmn; j++){
@@ -113,5 +113,5 @@ void morse_pzlaset(cham_uplo_t uplo,
                A(j, j), ldaj);
        }
     }
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzlaset2.c b/compute/pzlaset2.c
index 695b8cc20bfa1b80425029e731c497245963b607..80a836a78fe61fe563241a429653ead9d2b09b6b 100644
--- a/compute/pzlaset2.c
+++ b/compute/pzlaset2.c
@@ -29,11 +29,11 @@
  *  Parallel initializztion a 2-D array A to 
  *  ALPHA on the offdiagonals.
  */
-void morse_pzlaset2(cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, 
+void chameleon_pzlaset2(cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, 
                            CHAM_desc_t *A,
                            RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int i, j;
@@ -42,11 +42,11 @@ void morse_pzlaset2(cham_uplo_t uplo, CHAMELEON_Complex64_t alpha,
     int tempjm, tempjn;
     int minmn = chameleon_min(A->mt, A->nt);
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
 
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     if (uplo == ChamLower) {
        for (j = 0; j < minmn; j++){
@@ -103,5 +103,5 @@ void morse_pzlaset2(cham_uplo_t uplo, CHAMELEON_Complex64_t alpha,
            }
        }
     }
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzlauum.c b/compute/pzlauum.c
index 39bc093c6048fc79a0cabc06645348fdfb43c879..89ea4b72d7c2fa8ff1e0007bb06024e702164850 100644
--- a/compute/pzlauum.c
+++ b/compute/pzlauum.c
@@ -29,20 +29,20 @@
 /**
  *  Parallel UU' or L'L operation - dynamic scheduling
  */
-void morse_pzlauum(cham_uplo_t uplo, CHAM_desc_t *A,
+void chameleon_pzlauum(cham_uplo_t uplo, CHAM_desc_t *A,
                           RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int k, m, n;
     int ldak, ldam, ldan;
     int tempkm, tempkn;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
     /*
      *  ChamLower
      */
@@ -131,5 +131,5 @@ void morse_pzlauum(cham_uplo_t uplo, CHAM_desc_t *A,
                 A(k, k), ldak);
         }
     }
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzplghe.c b/compute/pzplghe.c
index 31d383c8d3d2ebd39a37ac50b94642e694c445b8..d569c1045c4073000d8470eadfa6461a96c89dad 100644
--- a/compute/pzplghe.c
+++ b/compute/pzplghe.c
@@ -28,23 +28,23 @@
 
 #define A(m,n) A,  m,  n
 /**
- *  morse_pzplghe - Generate a random hermitian (positive definite if 'bump' is large enough) half-matrix by tiles.
+ *  chameleon_pzplghe - Generate a random hermitian (positive definite if 'bump' is large enough) half-matrix by tiles.
  */
-void morse_pzplghe( double bump, cham_uplo_t uplo, CHAM_desc_t *A,
+void chameleon_pzplghe( double bump, cham_uplo_t uplo, CHAM_desc_t *A,
                     unsigned long long int seed,
                     RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int m, n;
     int ldam;
     int tempmm, tempnn;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     for (m = 0; m < A->mt; m++) {
     	tempmm = m == A->mt-1 ? A->m-m*A->mb : A->mb;
@@ -92,5 +92,5 @@ void morse_pzplghe( double bump, cham_uplo_t uplo, CHAM_desc_t *A,
             }
         }
     }
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzplgsy.c b/compute/pzplgsy.c
index ef83361ba4c3d9bff6b4c65bb3995eafee18f579..3c249177693cc314dcfc109e1a5d9bef5613ac82 100644
--- a/compute/pzplgsy.c
+++ b/compute/pzplgsy.c
@@ -28,23 +28,23 @@
 
 #define A(m,n) A,  m,  n
 /**
- *  morse_pzplgsy - Generate a random symmetric (positive definite if 'bump' is large enough) half-matrix by tiles.
+ *  chameleon_pzplgsy - Generate a random symmetric (positive definite if 'bump' is large enough) half-matrix by tiles.
  */
-void morse_pzplgsy( CHAMELEON_Complex64_t bump, cham_uplo_t uplo, CHAM_desc_t *A,
+void chameleon_pzplgsy( CHAMELEON_Complex64_t bump, cham_uplo_t uplo, CHAM_desc_t *A,
                     unsigned long long int seed,
                     RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int m, n;
     int ldam;
     int tempmm, tempnn;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     for (m = 0; m < A->mt; m++) {
         tempmm = m == A->mt-1 ? A->m-m*A->mb : A->mb;
@@ -92,5 +92,5 @@ void morse_pzplgsy( CHAMELEON_Complex64_t bump, cham_uplo_t uplo, CHAM_desc_t *A
             }
         }
     }
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzplrnt.c b/compute/pzplrnt.c
index 93b67831685931b5d956d0306bb485d780296d36..68f2fb72563c53fc64bec1e5e68bb7477222b307 100644
--- a/compute/pzplrnt.c
+++ b/compute/pzplrnt.c
@@ -25,22 +25,22 @@
 
 #define A(m, n) A,  m,  n
 /**
- *  morse_pzplghe - Generate a random matrix by tiles.
+ *  chameleon_pzplghe - Generate a random matrix by tiles.
  */
-void morse_pzplrnt( CHAM_desc_t *A, unsigned long long int seed,
+void chameleon_pzplrnt( CHAM_desc_t *A, unsigned long long int seed,
                     RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int m, n;
     int ldam;
     int tempmm, tempnn;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     for (m = 0; m < A->mt; m++) {
         tempmm = m == A->mt-1 ? A->m-m*A->mb : A->mb;
@@ -55,5 +55,5 @@ void morse_pzplrnt( CHAM_desc_t *A, unsigned long long int seed,
                 A->m, m*A->mb, n*A->nb, seed );
         }
     }
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzpotrf.c b/compute/pzpotrf.c
index 0e5700739a701169af4a608287980ab438262809..35a506b99e7bc59acdf3040b6e61606161da47ad 100644
--- a/compute/pzpotrf.c
+++ b/compute/pzpotrf.c
@@ -30,10 +30,10 @@
 /**
  *  Parallel tile Cholesky factorization - dynamic scheduling
  */
-void morse_pzpotrf(cham_uplo_t uplo, CHAM_desc_t *A,
+void chameleon_pzpotrf(cham_uplo_t uplo, CHAM_desc_t *A,
                    RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int k, m, n;
@@ -44,10 +44,10 @@ void morse_pzpotrf(cham_uplo_t uplo, CHAM_desc_t *A,
     CHAMELEON_Complex64_t zone  = (CHAMELEON_Complex64_t) 1.0;
     CHAMELEON_Complex64_t mzone = (CHAMELEON_Complex64_t)-1.0;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     RUNTIME_options_ws_alloc( &options, 0, ws_host );
 
@@ -56,7 +56,7 @@ void morse_pzpotrf(cham_uplo_t uplo, CHAM_desc_t *A,
      */
     if (uplo == ChamLower) {
         for (k = 0; k < A->mt; k++) {
-            RUNTIME_iteration_push(morse, k);
+            RUNTIME_iteration_push(chamctxt, k);
 
             tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
             ldak = BLKLDD(A, k);
@@ -108,7 +108,7 @@ void morse_pzpotrf(cham_uplo_t uplo, CHAM_desc_t *A,
                 }
                 RUNTIME_data_flush( sequence, A(n, k) );
             }
-            RUNTIME_iteration_pop(morse);
+            RUNTIME_iteration_pop(chamctxt);
         }
     }
     /*
@@ -116,7 +116,7 @@ void morse_pzpotrf(cham_uplo_t uplo, CHAM_desc_t *A,
      */
     else {
         for (k = 0; k < A->nt; k++) {
-            RUNTIME_iteration_push(morse, k);
+            RUNTIME_iteration_push(chamctxt, k);
 
             tempkm = k == A->nt-1 ? A->n-k*A->nb : A->nb;
             ldak = BLKLDD(A, k);
@@ -168,9 +168,9 @@ void morse_pzpotrf(cham_uplo_t uplo, CHAM_desc_t *A,
                 RUNTIME_data_flush( sequence, A(k, m) );
             }
 
-            RUNTIME_iteration_pop(morse);
+            RUNTIME_iteration_pop(chamctxt);
         }
     }
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzpotrimm.c b/compute/pzpotrimm.c
index d15d60bcaab57907fbdc9b19a882927a59327eea..4b7861b7cc1c72cff8909c14921bed77427f13dc 100644
--- a/compute/pzpotrimm.c
+++ b/compute/pzpotrimm.c
@@ -29,10 +29,10 @@
 /**
  *  Parallel tile Cholesky factorization - dynamic scheduling
  */
-void morse_pzpotrimm(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *C,
+void chameleon_pzpotrimm(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *C,
                      RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int k, m, n;
@@ -47,10 +47,10 @@ void morse_pzpotrimm(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc
     CHAMELEON_Complex64_t mzone = (CHAMELEON_Complex64_t)-1.0;
 
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     /*
      *  ChamLower
@@ -60,7 +60,7 @@ void morse_pzpotrimm(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc
          *  ZPOTRF
          */
         for (k = 0; k < A->mt; k++) {
-            RUNTIME_iteration_push(morse, k);
+            RUNTIME_iteration_push(chamctxt, k);
 
             tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
             ldak = BLKLDD(A, k);
@@ -106,13 +106,13 @@ void morse_pzpotrimm(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc
                 RUNTIME_data_flush( sequence, A(n, k) );
             }
 
-            RUNTIME_iteration_pop(morse);
+            RUNTIME_iteration_pop(chamctxt);
         }
         /*
          *  ZTRTRI
          */
         for (k = 0; k < A->nt; k++) {
-            RUNTIME_iteration_push(morse, A->nt + k);
+            RUNTIME_iteration_push(chamctxt, A->nt + k);
 
             tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
             ldak = BLKLDD(A, k);
@@ -156,13 +156,13 @@ void morse_pzpotrimm(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc
                 tempkn, A->mb,
                 A(k, k), ldak, A->nb*k);
 
-            RUNTIME_iteration_pop(morse);
+            RUNTIME_iteration_pop(chamctxt);
         }
         /*
          *  ZLAUUM
          */
         for (k = 0; k < A->mt; k++) {
-            RUNTIME_iteration_push(morse, 2*A->nt + k);
+            RUNTIME_iteration_push(chamctxt, 2*A->nt + k);
 
             tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
             ldak = BLKLDD(A, k);
@@ -201,13 +201,13 @@ void morse_pzpotrimm(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc
                 uplo, tempkm, A->mb,
                 A(k, k), ldak);
 
-            RUNTIME_iteration_pop(morse);
+            RUNTIME_iteration_pop(chamctxt);
         }
         /*
          *  ZSYMM Right / Lower
          */
         for (k = 0; k < C->nt; k++) {
-            RUNTIME_iteration_push(morse, 3*A->nt + k);
+            RUNTIME_iteration_push(chamctxt, 3*A->nt + k);
 
             tempkn = k == C->nt-1 ? C->n-k*C->nb : C->nb;
             ldak = BLKLDD(A, k);
@@ -258,7 +258,7 @@ void morse_pzpotrimm(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc
                 RUNTIME_data_flush( sequence, A(k, n) );
             }
 
-            RUNTIME_iteration_pop(morse);
+            RUNTIME_iteration_pop(chamctxt);
         }
     }
     /*
@@ -269,7 +269,7 @@ void morse_pzpotrimm(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc
          *  ZPOTRF
          */
         for (k = 0; k < A->nt; k++) {
-            RUNTIME_iteration_push(morse, k);
+            RUNTIME_iteration_push(chamctxt, k);
 
             tempkm = k == A->nt-1 ? A->n-k*A->nb : A->nb;
             ldak = BLKLDD(A, k);
@@ -315,13 +315,13 @@ void morse_pzpotrimm(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc
                 RUNTIME_data_flush( sequence, A(k, m) );
             }
 
-            RUNTIME_iteration_pop(morse);
+            RUNTIME_iteration_pop(chamctxt);
         }
         /*
          *  ZTRTRI
          */
         for (k = 0; k < A->mt; k++) {
-            RUNTIME_iteration_push(morse, A->nt + k);
+            RUNTIME_iteration_push(chamctxt, A->nt + k);
 
             tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
             ldak = BLKLDD(A, k);
@@ -365,13 +365,13 @@ void morse_pzpotrimm(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc
                 tempkm, A->mb,
                 A(k, k), ldak, A->mb*k);
 
-            RUNTIME_iteration_pop(morse);
+            RUNTIME_iteration_pop(chamctxt);
         }
         /*
          *  ZLAUUM
          */
         for (k = 0; k < A->mt; k++) {
-            RUNTIME_iteration_push(morse, 2*A->nt + k);
+            RUNTIME_iteration_push(chamctxt, 2*A->nt + k);
 
             tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
             ldak = BLKLDD(A, k);
@@ -412,13 +412,13 @@ void morse_pzpotrimm(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc
                 uplo, tempkn, A->mb,
                 A(k, k), ldak);
 
-            RUNTIME_iteration_pop(morse);
+            RUNTIME_iteration_pop(chamctxt);
         }
         /*
          *  ZSYMM Right / Upper
          */
         for (k = 0; k < C->nt; k++) {
-            RUNTIME_iteration_push(morse, 3*A->nt + k);
+            RUNTIME_iteration_push(chamctxt, 3*A->nt + k);
 
             tempkn = k == C->nt-1 ? C->n-k*C->nb : C->nb;
             ldak = BLKLDD(A, k);
@@ -469,9 +469,9 @@ void morse_pzpotrimm(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc
                 RUNTIME_data_flush( sequence, A(m, k) );
             }
 
-            RUNTIME_iteration_pop(morse);
+            RUNTIME_iteration_pop(chamctxt);
         }
     }
 
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzsymm.c b/compute/pzsymm.c
index 06eb8a2fcaaa1d35dd233fa1ec8ebdcd7e6736a1..c534665f5bb51acdbf6120fbc284a6cdb26fb3cb 100644
--- a/compute/pzsymm.c
+++ b/compute/pzsymm.c
@@ -29,12 +29,12 @@
 /**
  *  Parallel tile symmetric matrix-matrix multiplication - dynamic scheduling
  */
-void morse_pzsymm(cham_side_t side, cham_uplo_t uplo,
+void chameleon_pzsymm(cham_side_t side, cham_uplo_t uplo,
                           CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B,
                           CHAMELEON_Complex64_t beta, CHAM_desc_t *C,
                           RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int k, m, n;
@@ -44,10 +44,10 @@ void morse_pzsymm(cham_side_t side, cham_uplo_t uplo,
     CHAMELEON_Complex64_t zbeta;
     CHAMELEON_Complex64_t zone = (CHAMELEON_Complex64_t)1.0;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     /*
      *  ChamLeft
@@ -251,5 +251,5 @@ void morse_pzsymm(cham_side_t side, cham_uplo_t uplo,
             }
         }
     }
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzsyr2k.c b/compute/pzsyr2k.c
index 76d38f99c914cedb3bcdddd9fc21d43ec3831895..22a8ededb10bc382da57477b3dd439f6808f3b0a 100644
--- a/compute/pzsyr2k.c
+++ b/compute/pzsyr2k.c
@@ -29,12 +29,12 @@
 /**
  *  Parallel tile Hermitian rank-k update - dynamic scheduling
  */
-void morse_pzsyr2k(cham_uplo_t uplo, cham_trans_t trans,
+void chameleon_pzsyr2k(cham_uplo_t uplo, cham_trans_t trans,
                           CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B,
                           CHAMELEON_Complex64_t beta,  CHAM_desc_t *C,
                           RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int m, n, k;
@@ -45,10 +45,10 @@ void morse_pzsyr2k(cham_uplo_t uplo, cham_trans_t trans,
     CHAMELEON_Complex64_t zone   = (CHAMELEON_Complex64_t)1.0;
     CHAMELEON_Complex64_t zbeta;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     for (n = 0; n < C->nt; n++) {
         tempnn = n == C->nt-1 ? C->n-n*C->nb : C->nb;
@@ -208,5 +208,5 @@ void morse_pzsyr2k(cham_uplo_t uplo, cham_trans_t trans,
             }
         }
     }
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzsyrk.c b/compute/pzsyrk.c
index 3b03b3c4e454f9c61ff8ce4dfc6412e4a2ddfa69..8dd954a3dbe983ea1a983de7b6f5235cf2837ae0 100644
--- a/compute/pzsyrk.c
+++ b/compute/pzsyrk.c
@@ -29,12 +29,12 @@
 /**
  *  Parallel tile symmetric rank-k update - dynamic scheduling
  */
-void morse_pzsyrk(cham_uplo_t uplo, cham_trans_t trans,
+void chameleon_pzsyrk(cham_uplo_t uplo, cham_trans_t trans,
                          CHAMELEON_Complex64_t alpha, CHAM_desc_t *A,
                          CHAMELEON_Complex64_t beta,  CHAM_desc_t *C,
                          RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int m, n, k;
@@ -44,10 +44,10 @@ void morse_pzsyrk(cham_uplo_t uplo, cham_trans_t trans,
     CHAMELEON_Complex64_t zbeta;
     CHAMELEON_Complex64_t zone = (CHAMELEON_Complex64_t)1.0;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     for (n = 0; n < C->nt; n++) {
         tempnn = n == C->nt-1 ? C->n-n*C->nb : C->nb;
@@ -167,5 +167,5 @@ void morse_pzsyrk(cham_uplo_t uplo, cham_trans_t trans,
             }
         }
     }
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzsytrf.c b/compute/pzsytrf.c
index 77b9f23cba195d82319dde98360cf8c0be61554c..96456c11bc2995838bb825c68a68bb9304ce3b88 100644
--- a/compute/pzsytrf.c
+++ b/compute/pzsytrf.c
@@ -29,10 +29,10 @@
 /**
  *  Parallel tile Cholesky factorization - dynamic scheduling
  */
-void morse_pzsytrf(cham_uplo_t uplo, CHAM_desc_t *A,
+void chameleon_pzsytrf(cham_uplo_t uplo, CHAM_desc_t *A,
                    RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int k, m, n;
@@ -43,10 +43,10 @@ void morse_pzsytrf(cham_uplo_t uplo, CHAM_desc_t *A,
     CHAMELEON_Complex64_t zone  = (CHAMELEON_Complex64_t) 1.0;
     CHAMELEON_Complex64_t mzone = (CHAMELEON_Complex64_t)-1.0;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     RUNTIME_options_ws_alloc( &options, 0, ws_host );
 
@@ -55,7 +55,7 @@ void morse_pzsytrf(cham_uplo_t uplo, CHAM_desc_t *A,
      */
     if (uplo == ChamLower) {
         for (k = 0; k < A->mt; k++) {
-            RUNTIME_iteration_push(morse, k);
+            RUNTIME_iteration_push(chamctxt, k);
 
             tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
             ldak = BLKLDD(A, k);
@@ -101,7 +101,7 @@ void morse_pzsytrf(cham_uplo_t uplo, CHAM_desc_t *A,
                 RUNTIME_data_flush( sequence, A(n, k) );
             }
 
-            RUNTIME_iteration_pop(morse);
+            RUNTIME_iteration_pop(chamctxt);
         }
     }
     /*
@@ -109,7 +109,7 @@ void morse_pzsytrf(cham_uplo_t uplo, CHAM_desc_t *A,
      */
     else {
         for (k = 0; k < A->nt; k++) {
-            RUNTIME_iteration_push(morse, k);
+            RUNTIME_iteration_push(chamctxt, k);
 
             tempkm = k == A->nt-1 ? A->n-k*A->nb : A->nb;
             ldak = BLKLDD(A, k);
@@ -155,10 +155,10 @@ void morse_pzsytrf(cham_uplo_t uplo, CHAM_desc_t *A,
                 RUNTIME_data_flush( sequence, A(k, m) );
             }
 
-            RUNTIME_iteration_pop(morse);
+            RUNTIME_iteration_pop(chamctxt);
         }
     }
 
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pztile2band.c b/compute/pztile2band.c
index 2ef767eb20166741cb4bb4d35e3ac3f46df8fe75..2dbe93eeaf18d061c08279a66a9831805931766b 100644
--- a/compute/pztile2band.c
+++ b/compute/pztile2band.c
@@ -27,10 +27,10 @@
 /**
  *  Parallel copy of a band matrix from full NxN tile storage to band storage (LDABxN).
  */
-void morse_pztile2band(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B,
+void chameleon_pztile2band(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B,
                        RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int j;
@@ -38,10 +38,10 @@ void morse_pztile2band(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B,
     int tempjm, tempjn;
     int minmnt = chameleon_min(A->mt, A->nt);
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ldx = B->mb-1;
 
@@ -111,7 +111,7 @@ void morse_pztile2band(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B,
                A->nb, B(0, j), ldx);
        }
     }
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
 #undef B
 #undef A
diff --git a/compute/pztpgqrt.c b/compute/pztpgqrt.c
index 04ef6b20f7ecd80ced3df4242cb7d69a0dccaba6..4687703d6aceb576dcb71282c1ff60c18be24084 100644
--- a/compute/pztpgqrt.c
+++ b/compute/pztpgqrt.c
@@ -35,14 +35,14 @@
 /**
  *  Parallel tile QR factorization - dynamic scheduling
  */
-void morse_pztpgqrt( int L,
+void chameleon_pztpgqrt( int L,
                      CHAM_desc_t *V1, CHAM_desc_t *T1,
                      CHAM_desc_t *V2, CHAM_desc_t *T2,
                      CHAM_desc_t *Q1, CHAM_desc_t *Q2,
                      CHAM_desc_t *D,
                      RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     size_t ws_worker = 0;
     size_t ws_host = 0;
@@ -58,10 +58,10 @@ void morse_pztpgqrt( int L,
     int maxmt = (maxm % Q2->mb == 0) ? (maxm / Q2->mb) : (maxm / Q2->mb + 1);
     int maxmtk;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
     /*
@@ -84,7 +84,7 @@ void morse_pztpgqrt( int L,
     RUNTIME_options_ws_alloc( &options, ws_worker, ws_host );
 
     for (k = V1->nt-1; k >= 0; k--) {
-        RUNTIME_iteration_push(morse, k);
+        RUNTIME_iteration_push(chamctxt, k);
 
         tempkm = k == V1->mt-1 ? V1->m-k*V1->mb : V1->mb;
         tempkk = k == V1->nt-1 ? V1->n-k*V1->nb : V1->nb;
@@ -157,10 +157,10 @@ void morse_pztpgqrt( int L,
                 Q1(k, n), ldqk);
         }
 
-        RUNTIME_iteration_pop(morse);
+        RUNTIME_iteration_pop(chamctxt);
     }
 
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
     (void)D;
 }
diff --git a/compute/pztpqrt.c b/compute/pztpqrt.c
index 7b2a7b87e8303c245b66e70738dc423c17f384be..4b2ac340ec4540ed5c73afc9fa6c3bdf79649bd7 100644
--- a/compute/pztpqrt.c
+++ b/compute/pztpqrt.c
@@ -27,10 +27,10 @@
 /**
  *  Parallel tile QR factorization - dynamic scheduling
  */
-void morse_pztpqrt( int L, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T,
+void chameleon_pztpqrt( int L, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T,
                     RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     size_t ws_worker = 0;
     size_t ws_host = 0;
@@ -44,10 +44,10 @@ void morse_pztpqrt( int L, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T,
     int maxm  = chameleon_max( B->m - L, 1 );
     int maxmt = (maxm % B->mb == 0) ? (maxm / B->mb) : (maxm / B->mb + 1);
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
 
@@ -72,7 +72,7 @@ void morse_pztpqrt( int L, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T,
     RUNTIME_options_ws_alloc( &options, ws_worker, ws_host );
 
     for (k = 0; k < A->nt; k++) {
-        RUNTIME_iteration_push(morse, k);
+        RUNTIME_iteration_push(chamctxt, k);
 
         tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
         tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
@@ -105,9 +105,9 @@ void morse_pztpqrt( int L, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T,
 
         maxmt = chameleon_min( B->mt, maxmt+1 );
 
-        RUNTIME_iteration_pop(morse);
+        RUNTIME_iteration_pop(chamctxt);
     }
 
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pztradd.c b/compute/pztradd.c
index 40294f24dd84f6493f4b658a0d748da11bca0103..cb5528562f5a13874d6aacc5457a95674a2695d4 100644
--- a/compute/pztradd.c
+++ b/compute/pztradd.c
@@ -28,22 +28,22 @@
 /**
  *  Parallel tile matrix-matrix multiplication - dynamic scheduling
  */
-void morse_pztradd(cham_uplo_t uplo, cham_trans_t trans,
+void chameleon_pztradd(cham_uplo_t uplo, cham_trans_t trans,
                    CHAMELEON_Complex64_t alpha, CHAM_desc_t *A,
                    CHAMELEON_Complex64_t beta,  CHAM_desc_t *B,
                    RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int tempmm, tempnn, tempmn, tempnm;
     int m, n;
     int ldam, ldan, ldbm, ldbn;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     switch(uplo){
     case ChamLower:
@@ -188,5 +188,5 @@ void morse_pztradd(cham_uplo_t uplo, cham_trans_t trans,
         }
     }
 
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pztrmm.c b/compute/pztrmm.c
index 49943a38ab0b2ea0090ee85e45a32b1733f89522..3f9e136d4b75b3c878fe35d98a92488956130214 100644
--- a/compute/pztrmm.c
+++ b/compute/pztrmm.c
@@ -31,12 +31,12 @@
 /**
  *  Parallel tile triangular matrix-matrix multiplication - dynamic scheduling
  */
-void morse_pztrmm(cham_side_t side, cham_uplo_t uplo,
+void chameleon_pztrmm(cham_side_t side, cham_uplo_t uplo,
                          cham_trans_t trans, cham_diag_t diag,
                          CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B,
                          RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int k, m, n;
@@ -45,10 +45,10 @@ void morse_pztrmm(cham_side_t side, cham_uplo_t uplo,
 
     CHAMELEON_Complex64_t zone = (CHAMELEON_Complex64_t)1.0;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
     /*
      *  ChamLeft / ChamUpper / ChamNoTrans
      */
@@ -306,5 +306,5 @@ void morse_pztrmm(cham_side_t side, cham_uplo_t uplo,
         }
     }
 
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pztrsm.c b/compute/pztrsm.c
index 1aa6a9cf3e22c9bc729b472213b4faa112ff5e7f..dccac48893fdc3273c124fcc78a31aab031c5e2d 100644
--- a/compute/pztrsm.c
+++ b/compute/pztrsm.c
@@ -30,11 +30,11 @@
 /**
  *  Parallel tile triangular solve - dynamic scheduling
  */
-void morse_pztrsm(cham_side_t side, cham_uplo_t uplo, cham_trans_t trans, cham_diag_t diag,
+void chameleon_pztrsm(cham_side_t side, cham_uplo_t uplo, cham_trans_t trans, cham_diag_t diag,
                          CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B,
                          RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int k, m, n;
@@ -46,10 +46,10 @@ void morse_pztrsm(cham_side_t side, cham_uplo_t uplo, cham_trans_t trans, cham_d
     CHAMELEON_Complex64_t minvalpha  = (CHAMELEON_Complex64_t)-1.0 / alpha;
     CHAMELEON_Complex64_t lalpha;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
     /*
      *  ChamLeft / ChamUpper / ChamNoTrans
      */
@@ -365,5 +365,5 @@ void morse_pztrsm(cham_side_t side, cham_uplo_t uplo, cham_trans_t trans, cham_d
             }
         }
     }
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pztrsmpl.c b/compute/pztrsmpl.c
index 89fd4529959af224f8d4e39ee4fe1fd32cc09895..c2a7601d6f6677c7082b66432f813a14dc5fb26a 100644
--- a/compute/pztrsmpl.c
+++ b/compute/pztrsmpl.c
@@ -32,10 +32,10 @@
 /**
  *  Parallel forward substitution for tile LU - dynamic scheduling
  */
-void morse_pztrsmpl( CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *L, int *IPIV,
+void chameleon_pztrsmpl( CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *L, int *IPIV,
                      RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int k, m, n;
@@ -43,10 +43,10 @@ void morse_pztrsmpl( CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *L, int *IPIV,
     int tempkm, tempnn, tempkmin, tempmm, tempkn;
     int ib;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
     for (k = 0; k < chameleon_min(A->mt, A->nt); k++) {
@@ -82,5 +82,5 @@ void morse_pztrsmpl( CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *L, int *IPIV,
             }
         }
     }
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pztrtri.c b/compute/pztrtri.c
index 33071608ade8895f242b244aa0168db8b41245c1..062808bbcdb8d79275334127b3b02ee16fb63694 100644
--- a/compute/pztrtri.c
+++ b/compute/pztrtri.c
@@ -29,10 +29,10 @@
 /**
  *  Parallel tile triangular matrix inverse - dynamic scheduling
  */
-void morse_pztrtri(cham_uplo_t uplo, cham_diag_t diag, CHAM_desc_t *A,
+void chameleon_pztrtri(cham_uplo_t uplo, cham_diag_t diag, CHAM_desc_t *A,
                           RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
 
     int k, m, n;
@@ -42,16 +42,16 @@ void morse_pztrtri(cham_uplo_t uplo, cham_diag_t diag, CHAM_desc_t *A,
     CHAMELEON_Complex64_t zone  = (CHAMELEON_Complex64_t) 1.0;
     CHAMELEON_Complex64_t mzone = (CHAMELEON_Complex64_t)-1.0;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
     /*
      *  ChamLower
      */
     if (uplo == ChamLower) {
         for (k = 0; k < A->nt; k++) {
-            RUNTIME_iteration_push(morse, k);
+            RUNTIME_iteration_push(chamctxt, k);
 
             tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
             ldak = BLKLDD(A, k);
@@ -95,7 +95,7 @@ void morse_pztrtri(cham_uplo_t uplo, cham_diag_t diag, CHAM_desc_t *A,
                 tempkn, A->mb,
                 A(k, k), ldak, A->nb*k);
 
-            RUNTIME_iteration_pop(morse);
+            RUNTIME_iteration_pop(chamctxt);
         }
     }
     /*
@@ -103,7 +103,7 @@ void morse_pztrtri(cham_uplo_t uplo, cham_diag_t diag, CHAM_desc_t *A,
      */
     else {
         for (k = 0; k < A->mt; k++) {
-            RUNTIME_iteration_push(morse, k);
+            RUNTIME_iteration_push(chamctxt, k);
 
             tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
             ldak = BLKLDD(A, k);
@@ -147,8 +147,8 @@ void morse_pztrtri(cham_uplo_t uplo, cham_diag_t diag, CHAM_desc_t *A,
                 tempkm, A->mb,
                 A(k, k), ldak, A->mb*k);
 
-            RUNTIME_iteration_pop(morse);
+            RUNTIME_iteration_pop(chamctxt);
         }
     }
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzunglq.c b/compute/pzunglq.c
index 13d332fa6dd7b28ccee99ff96af11428d4e2ca66..2a0ae4cbfaa2f0ee6c04ddec70ff3e9e2e4519eb 100644
--- a/compute/pzunglq.c
+++ b/compute/pzunglq.c
@@ -37,10 +37,10 @@
 /**
  *  Parallel construction of Q using tile V (application to identity) - dynamic scheduling
  */
-void morse_pzunglq(CHAM_desc_t *A, CHAM_desc_t *Q, CHAM_desc_t *T, CHAM_desc_t *D,
+void chameleon_pzunglq(CHAM_desc_t *A, CHAM_desc_t *Q, CHAM_desc_t *T, CHAM_desc_t *D,
                    RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     size_t ws_worker = 0;
     size_t ws_host = 0;
@@ -51,10 +51,10 @@ void morse_pzunglq(CHAM_desc_t *A, CHAM_desc_t *Q, CHAM_desc_t *T, CHAM_desc_t *
     int tempAkm, tempAkn;
     int ib, minMT;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
 
@@ -90,7 +90,7 @@ void morse_pzunglq(CHAM_desc_t *A, CHAM_desc_t *Q, CHAM_desc_t *T, CHAM_desc_t *
     RUNTIME_options_ws_alloc( &options, ws_worker, ws_host );
 
     for (k = minMT-1; k >= 0; k--) {
-        RUNTIME_iteration_push(morse, k);
+        RUNTIME_iteration_push(chamctxt, k);
 
         tempAkm  = k == A->mt-1 ? A->m-k*A->mb : A->mb;
         tempAkn  = k == A->nt-1 ? A->n-k*A->nb : A->nb;
@@ -151,9 +151,9 @@ void morse_pzunglq(CHAM_desc_t *A, CHAM_desc_t *Q, CHAM_desc_t *T, CHAM_desc_t *
         RUNTIME_data_flush( sequence, D(k)    );
         RUNTIME_data_flush( sequence, T(k, k) );
 
-        RUNTIME_iteration_pop(morse);
+        RUNTIME_iteration_pop(chamctxt);
     }
 
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzunglq_param.c b/compute/pzunglq_param.c
index af53cfbdc9c3d08d1539221adfe70748f7786c98..44ef7f86e2769dfa04c16f2ee5bcfd78e67ae6c7 100644
--- a/compute/pzunglq_param.c
+++ b/compute/pzunglq_param.c
@@ -29,11 +29,11 @@
 /**
  *  Parallel construction of Q using tile V - dynamic scheduling
  */
-void morse_pzunglq_param(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *Q,
+void chameleon_pzunglq_param(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *Q,
                          CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *D,
                          RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     CHAM_desc_t *T;
     size_t ws_worker = 0;
@@ -46,10 +46,10 @@ void morse_pzunglq_param(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_
     int ib;
     int *tiles;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
 
@@ -85,7 +85,7 @@ void morse_pzunglq_param(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_
     K = chameleon_min(A->mt, A->nt);
 
     for (k = K-1; k >= 0; k--) {
-        RUNTIME_iteration_push(morse, k);
+        RUNTIME_iteration_push(chamctxt, k);
 
         tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
         ldak = BLKLDD(A, k);
@@ -171,10 +171,10 @@ void morse_pzunglq_param(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_
             RUNTIME_data_flush( sequence, T(k, p) );
         }
 
-        RUNTIME_iteration_pop(morse);
+        RUNTIME_iteration_pop(chamctxt);
     }
 
     free(tiles);
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzunglqrh.c b/compute/pzunglqrh.c
index 6f319c776a7f5f4dca495aba335dbd1b3bfda47e..40e9d6cffffa86654d85960a937251410487fdf4 100644
--- a/compute/pzunglqrh.c
+++ b/compute/pzunglqrh.c
@@ -38,11 +38,11 @@
  *  Parallel construction of Q using tile V (application to identity;
  *  reduction Householder) - dynamic scheduling
  */
-void morse_pzunglqrh(CHAM_desc_t *A, CHAM_desc_t *Q,
+void chameleon_pzunglqrh(CHAM_desc_t *A, CHAM_desc_t *Q,
                      CHAM_desc_t *T, CHAM_desc_t *D, int BS,
                      RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     size_t ws_worker = 0;
     size_t ws_host = 0;
@@ -54,10 +54,10 @@ void morse_pzunglqrh(CHAM_desc_t *A, CHAM_desc_t *Q,
     int tempkm, tempkmin, tempNn, tempnn, tempmm, tempNRDn;
     int ib;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
 
@@ -84,7 +84,7 @@ void morse_pzunglqrh(CHAM_desc_t *A, CHAM_desc_t *Q,
 
     K = chameleon_min(A->mt, A->nt);
     for (k = K-1; k >= 0; k--) {
-        RUNTIME_iteration_push(morse, k);
+        RUNTIME_iteration_push(chamctxt, k);
 
         tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
         ldak = BLKLDD(A, k);
@@ -180,10 +180,10 @@ void morse_pzunglqrh(CHAM_desc_t *A, CHAM_desc_t *Q,
             RUNTIME_data_flush( sequence, D(k, N) );
             RUNTIME_data_flush( sequence, T(k, N) );
         }
-        RUNTIME_iteration_pop(morse);
+        RUNTIME_iteration_pop(chamctxt);
     }
 
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
     (void)D;
 }
diff --git a/compute/pzungqr.c b/compute/pzungqr.c
index fcf5b10ab4386a5ed8804f21bb89c14522398738..61c81f1a9348d8a63a35b16055081716c9bee40d 100644
--- a/compute/pzungqr.c
+++ b/compute/pzungqr.c
@@ -37,10 +37,10 @@
 /**
  *  Parallel construction of Q using tile V (application to identity) - dynamic scheduling
  */
-void morse_pzungqr(CHAM_desc_t *A, CHAM_desc_t *Q, CHAM_desc_t *T, CHAM_desc_t *D,
+void chameleon_pzungqr(CHAM_desc_t *A, CHAM_desc_t *Q, CHAM_desc_t *T, CHAM_desc_t *D,
                    RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     size_t ws_worker = 0;
     size_t ws_host = 0;
@@ -51,10 +51,10 @@ void morse_pzungqr(CHAM_desc_t *A, CHAM_desc_t *Q, CHAM_desc_t *T, CHAM_desc_t *
     int tempAkm, tempAkn;
     int ib, minMT;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
 
@@ -90,7 +90,7 @@ void morse_pzungqr(CHAM_desc_t *A, CHAM_desc_t *Q, CHAM_desc_t *T, CHAM_desc_t *
     RUNTIME_options_ws_alloc( &options, ws_worker, ws_host );
 
     for (k = minMT-1; k >= 0; k--) {
-        RUNTIME_iteration_push(morse, k);
+        RUNTIME_iteration_push(chamctxt, k);
 
         tempAkm  = k == A->mt-1 ? A->m-k*A->mb : A->mb;
         tempAkn  = k == A->nt-1 ? A->n-k*A->nb : A->nb;
@@ -154,9 +154,9 @@ void morse_pzungqr(CHAM_desc_t *A, CHAM_desc_t *Q, CHAM_desc_t *T, CHAM_desc_t *
         RUNTIME_data_flush( sequence, D(k) );
         RUNTIME_data_flush( sequence, T(k, k) );
 
-        RUNTIME_iteration_pop(morse);
+        RUNTIME_iteration_pop(chamctxt);
     }
 
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzungqr_param.c b/compute/pzungqr_param.c
index e343c88b9030a60a7bcf2d75e4d0a5bccbb41757..3f24a50fccc6e239805f451236e0c6b5a4c2d388 100644
--- a/compute/pzungqr_param.c
+++ b/compute/pzungqr_param.c
@@ -29,12 +29,12 @@
 /**
  *  Parallel construction of Q using tile V (application to identity) - dynamic scheduling
  */
-void morse_pzungqr_param(const libhqr_tree_t *qrtree,
+void chameleon_pzungqr_param(const libhqr_tree_t *qrtree,
                          CHAM_desc_t *A, CHAM_desc_t *Q,
                          CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *D,
                          RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     CHAM_desc_t *T;
     size_t ws_worker = 0;
@@ -46,10 +46,10 @@ void morse_pzungqr_param(const libhqr_tree_t *qrtree,
     int ib, minMT;
     int *tiles;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
 
@@ -89,7 +89,7 @@ void morse_pzungqr_param(const libhqr_tree_t *qrtree,
     RUNTIME_options_ws_alloc( &options, ws_worker, ws_host );
 
     for (k = minMT-1; k >= 0; k--) {
-        RUNTIME_iteration_push(morse, k);
+        RUNTIME_iteration_push(chamctxt, k);
 
         tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
 
@@ -180,10 +180,10 @@ void morse_pzungqr_param(const libhqr_tree_t *qrtree,
             RUNTIME_data_flush( sequence, T(m, k) );
         }
 
-        RUNTIME_iteration_pop(morse);
+        RUNTIME_iteration_pop(chamctxt);
     }
 
     free(tiles);
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzungqrrh.c b/compute/pzungqrrh.c
index 7630995932c27264eaab6d2256af153b90ffaa14..e899e32dd186b0de74714a3c042d308711696568 100644
--- a/compute/pzungqrrh.c
+++ b/compute/pzungqrrh.c
@@ -40,11 +40,11 @@
  *  Parallel construction of Q using tile V (application to identity;
  *  reduction Householder) - dynamic scheduling
  */
-void morse_pzungqrrh(CHAM_desc_t *A, CHAM_desc_t *Q,
+void chameleon_pzungqrrh(CHAM_desc_t *A, CHAM_desc_t *Q,
                      CHAM_desc_t *T,  CHAM_desc_t *D, int BS,
                      RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     size_t ws_worker = 0;
     size_t ws_host = 0;
@@ -56,10 +56,10 @@ void morse_pzungqrrh(CHAM_desc_t *A, CHAM_desc_t *Q,
     int tempkn, tempMm, tempnn, tempmm, tempMRDm, tempkmin;
     int ib;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
 
@@ -86,7 +86,7 @@ void morse_pzungqrrh(CHAM_desc_t *A, CHAM_desc_t *Q,
 
     K = chameleon_min(A->mt, A->nt);
     for (k = K-1; k >= 0; k--) {
-        RUNTIME_iteration_push(morse, k);
+        RUNTIME_iteration_push(chamctxt, k);
 
         tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
         lastRD = 0;
@@ -186,10 +186,10 @@ void morse_pzungqrrh(CHAM_desc_t *A, CHAM_desc_t *Q,
             RUNTIME_data_flush( sequence, D(M, k) );
             RUNTIME_data_flush( sequence, T(M, k) );
         }
-        RUNTIME_iteration_pop(morse);
+        RUNTIME_iteration_pop(chamctxt);
     }
 
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
     (void)D;
 }
diff --git a/compute/pzunmlq.c b/compute/pzunmlq.c
index e362d56f6e5c8ae895a295c9da7ae212bb4cd68f..c618a3d7e608098e146732bb19aa47ce44b91506 100644
--- a/compute/pzunmlq.c
+++ b/compute/pzunmlq.c
@@ -38,11 +38,11 @@
 /**
  *  Parallel application of Q using tile V - LQ factorization - dynamic scheduling
  */
-void morse_pzunmlq(cham_side_t side, cham_trans_t trans,
+void chameleon_pzunmlq(cham_side_t side, cham_trans_t trans,
                    CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T, CHAM_desc_t *D,
                    RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     size_t ws_worker = 0;
     size_t ws_host = 0;
@@ -52,10 +52,10 @@ void morse_pzunmlq(cham_side_t side, cham_trans_t trans,
     int tempmm, tempnn, tempkn, tempkm, tempkmin;
     int ib, minMT, minM;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
 
@@ -97,7 +97,7 @@ void morse_pzunmlq(cham_side_t side, cham_trans_t trans,
              *  ChamLeft / ChamNoTrans
              */
             for (k = 0; k < minMT; k++) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkm   = k == B->mt-1 ? B->m-k*B->mb : B->mb;
                 tempkmin = k == minMT-1 ? minM-k*A->nb : A->nb;
@@ -161,7 +161,7 @@ void morse_pzunmlq(cham_side_t side, cham_trans_t trans,
                                           B->get_rankof( B, k, n ) );
                 }
 
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         }
         /*
@@ -169,7 +169,7 @@ void morse_pzunmlq(cham_side_t side, cham_trans_t trans,
          */
         else {
             for (k = minMT-1; k >= 0; k--) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkm   = k == B->mt-1 ? B->m-k*B->mb : B->mb;
                 tempkmin = k == minMT-1 ? minM-k*A->nb : A->nb;
@@ -228,7 +228,7 @@ void morse_pzunmlq(cham_side_t side, cham_trans_t trans,
                 }
                 RUNTIME_data_flush( sequence, D(k)    );
                 RUNTIME_data_flush( sequence, T(k, k) );
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         }
     }
@@ -238,7 +238,7 @@ void morse_pzunmlq(cham_side_t side, cham_trans_t trans,
     else {
         if (trans == ChamNoTrans) {
             for (k = minMT-1; k >= 0; k--) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkn   = k == B->nt - 1 ? B->n - k * B->nb : B->nb;
                 tempkmin = k == minMT - 1 ? minM - k * A->nb : A->nb;
@@ -299,7 +299,7 @@ void morse_pzunmlq(cham_side_t side, cham_trans_t trans,
                 RUNTIME_data_flush( sequence, D(k)    );
                 RUNTIME_data_flush( sequence, T(k, k) );
 
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         }
         /*
@@ -307,7 +307,7 @@ void morse_pzunmlq(cham_side_t side, cham_trans_t trans,
          */
         else {
             for (k = 0; k < minMT; k++) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkn   = k == B->nt-1 ? B->n-k*B->nb : B->nb;
                 tempkmin = k == minMT-1 ? minM-k*A->mb : A->mb;
@@ -371,11 +371,11 @@ void morse_pzunmlq(cham_side_t side, cham_trans_t trans,
                                           B->get_rankof( B, m, k ) );
                 }
 
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         }
     }
 
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzunmlq_param.c b/compute/pzunmlq_param.c
index 22ca68f39f00e82914b7980bd6245fedbfdc9d86..5f752ff848dce6f09c1c7796a8bcfcb9b1722117 100644
--- a/compute/pzunmlq_param.c
+++ b/compute/pzunmlq_param.c
@@ -29,13 +29,13 @@
 /**
  *  Parallel application of Q using tile V - LQ factorization - dynamic scheduling
  */
-void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
+void chameleon_pzunmlq_param(const libhqr_tree_t *qrtree,
                          cham_side_t side, cham_trans_t trans,
                          CHAM_desc_t *A, CHAM_desc_t *B,
                          CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *D,
                          RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     CHAM_desc_t *T;
     size_t ws_worker = 0;
@@ -47,10 +47,10 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
     int ib, K, L;
     int *tiles;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
 
@@ -90,7 +90,7 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
              *  ChamLeft / ChamNoTrans
              */
             for (k = 0; k < K; k++) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
                 ldak = BLKLDD(A, k);
@@ -180,7 +180,7 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
                                           B->get_rankof( B, k, n ) );
                 }
 
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         }
         /*
@@ -188,7 +188,7 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
          */
         else {
             for (k = K-1; k >= 0; k--) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
                 ldak = BLKLDD(A, k);
@@ -276,7 +276,7 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
                     RUNTIME_data_flush( sequence, T(k, p) );
                 }
 
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         }
     }
@@ -286,7 +286,7 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
     else {
         if (trans == ChamNoTrans) {
             for (k = K-1; k >= 0; k--) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
                 ldak = BLKLDD(A, k);
@@ -373,7 +373,7 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
                     RUNTIME_data_flush( sequence, T(k, p) );
                 }
 
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         }
         /*
@@ -381,7 +381,7 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
          */
         else {
             for (k = 0; k < K; k++) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
                 ldak = BLKLDD(A, k);
@@ -465,12 +465,12 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree,
                     RUNTIME_data_flush( sequence, T(k, n) );
                 }
 
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         }
     }
 
     free(tiles);
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzunmlqrh.c b/compute/pzunmlqrh.c
index 45d7cf27b4801510d5d9109982e24b04baaa2a83..ec25a26fe316a7b80a48fe241680c9442f2b91cc 100644
--- a/compute/pzunmlqrh.c
+++ b/compute/pzunmlqrh.c
@@ -40,11 +40,11 @@
  *  Parallel application of Q using tile V - LQ factorization (reduction
  *  Householder) - dynamic scheduling
  */
-void morse_pzunmlqrh(cham_side_t side, cham_trans_t trans,
+void chameleon_pzunmlqrh(cham_side_t side, cham_trans_t trans,
                      CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T, CHAM_desc_t *D, int BS,
                      RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     size_t ws_worker = 0;
     size_t ws_host = 0;
@@ -55,10 +55,10 @@ void morse_pzunmlqrh(cham_side_t side, cham_trans_t trans,
     int tempNn, tempkm, tempnn, tempmm, tempNRDn, tempkmin;
     int ib;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
 
@@ -90,7 +90,7 @@ void morse_pzunmlqrh(cham_side_t side, cham_trans_t trans,
              *  ChamLeft / ChamNoTrans
              */
             for (k = 0; k < K; k++) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
                 ldak = BLKLDD(A, k);
@@ -184,14 +184,14 @@ void morse_pzunmlqrh(cham_side_t side, cham_trans_t trans,
                                           B->get_rankof( B, k, n ) );
                 }
 
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         } else {
             /*
              *  ChamLeft / ChamConjTrans
              */
             for (k = K-1; k >= 0; k--) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
                 ldak = BLKLDD(A, k);
@@ -285,7 +285,7 @@ void morse_pzunmlqrh(cham_side_t side, cham_trans_t trans,
                     RUNTIME_data_flush( sequence, D(k, N) );
                     RUNTIME_data_flush( sequence, T(k, N) );
                 }
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         }
     }
@@ -295,7 +295,7 @@ void morse_pzunmlqrh(cham_side_t side, cham_trans_t trans,
              *  ChamRight / ChamNoTrans
              */
             for (k = K-1; k >= 0; k--) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
                 ldak = BLKLDD(A, k);
@@ -389,14 +389,14 @@ void morse_pzunmlqrh(cham_side_t side, cham_trans_t trans,
                     RUNTIME_data_flush( sequence, T(k, N) );
                 }
 
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         } else {
             /*
              *  ChamRight / ChamConjTrans
              */
             for (k = 0; k < K; k++) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkm = k == A->mt-1 ? A->m-k*A->mb : A->mb;
                 ldak = BLKLDD(A, k);
@@ -490,12 +490,12 @@ void morse_pzunmlqrh(cham_side_t side, cham_trans_t trans,
                                           B->get_rankof( B, m, k ) );
                 }
 
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         }
     }
 
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
     (void)D;
 }
diff --git a/compute/pzunmqr.c b/compute/pzunmqr.c
index e73fb0b6ca563e2ab27e2bc1edb69e3fa9962938..c971933c9d8fce6f5490fd59a2806b22744f2c93 100644
--- a/compute/pzunmqr.c
+++ b/compute/pzunmqr.c
@@ -38,11 +38,11 @@
 /**
  *  Parallel application of Q using tile V - QR factorization - dynamic scheduling
  */
-void morse_pzunmqr(cham_side_t side, cham_trans_t trans,
+void chameleon_pzunmqr(cham_side_t side, cham_trans_t trans,
                    CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T, CHAM_desc_t *D,
                    RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     size_t ws_worker = 0;
     size_t ws_host = 0;
@@ -52,10 +52,10 @@ void morse_pzunmqr(cham_side_t side, cham_trans_t trans,
     int tempkm, tempnn, tempkmin, tempmm, tempkn;
     int ib, minMT, minM;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
 
@@ -97,7 +97,7 @@ void morse_pzunmqr(cham_side_t side, cham_trans_t trans,
              *  ChamLeft / ChamConjTrans
              */
             for (k = 0; k < minMT; k++) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkm   = k == B->mt-1 ? B->m-k*B->mb : B->mb;
                 tempkmin = k == minMT-1 ? minM-k*A->nb : A->nb;
@@ -162,7 +162,7 @@ void morse_pzunmqr(cham_side_t side, cham_trans_t trans,
                                           B->get_rankof( B, k, n ) );
                 }
 
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         }
         /*
@@ -170,7 +170,7 @@ void morse_pzunmqr(cham_side_t side, cham_trans_t trans,
          */
         else {
             for (k = minMT-1; k >= 0; k--) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkm   = k == B->mt-1 ? B->m-k*B->mb : B->mb;
                 tempkmin = k == minMT-1 ? minM-k*A->nb : A->nb;
@@ -230,7 +230,7 @@ void morse_pzunmqr(cham_side_t side, cham_trans_t trans,
                 }
                 RUNTIME_data_flush( sequence, D(k)    );
                 RUNTIME_data_flush( sequence, T(k, k) );
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         }
     }
@@ -240,7 +240,7 @@ void morse_pzunmqr(cham_side_t side, cham_trans_t trans,
     else {
         if (trans == ChamConjTrans) {
             for (k = minMT-1; k >= 0; k--) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkn   = k == B->nt - 1 ? B->n - k * B->nb : B->nb;
                 tempkmin = k == minMT - 1 ? minM - k * A->nb : A->nb;
@@ -302,7 +302,7 @@ void morse_pzunmqr(cham_side_t side, cham_trans_t trans,
                 RUNTIME_data_flush( sequence, D(k)    );
                 RUNTIME_data_flush( sequence, T(k, k) );
 
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         }
         /*
@@ -310,7 +310,7 @@ void morse_pzunmqr(cham_side_t side, cham_trans_t trans,
          */
         else {
             for (k = 0; k < minMT; k++) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkn   = k == B->nt-1 ? B->n-k*B->nb : B->nb;
                 tempkmin = k == minMT-1 ? minM-k*A->nb : A->nb;
@@ -375,11 +375,11 @@ void morse_pzunmqr(cham_side_t side, cham_trans_t trans,
                                           B->get_rankof( B, m, k ) );
                 }
 
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         }
     }
 
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzunmqr_param.c b/compute/pzunmqr_param.c
index 5f96cb1631c48221f5ac872bc6c86c3234f4499f..8aaf0f3fc153e3d834dba67330ac220d8e372de8 100644
--- a/compute/pzunmqr_param.c
+++ b/compute/pzunmqr_param.c
@@ -29,13 +29,13 @@
 /**
  *  Parallel application of Q using tile V - QR factorization - dynamic scheduling
  */
-void morse_pzunmqr_param(const libhqr_tree_t *qrtree,
+void chameleon_pzunmqr_param(const libhqr_tree_t *qrtree,
                          cham_side_t side, cham_trans_t trans,
                          CHAM_desc_t *A, CHAM_desc_t *B,
                          CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *D,
                          RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     CHAM_desc_t *T;
     size_t ws_worker = 0;
@@ -47,10 +47,10 @@ void morse_pzunmqr_param(const libhqr_tree_t *qrtree,
     int ib, K, L;
     int *tiles;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
 
@@ -90,7 +90,7 @@ void morse_pzunmqr_param(const libhqr_tree_t *qrtree,
              *  ChamLeft / ChamConjTrans
              */
             for (k = 0; k < K; k++) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
 
@@ -180,7 +180,7 @@ void morse_pzunmqr_param(const libhqr_tree_t *qrtree,
                                           B->get_rankof( B, k, n ) );
                 }
 
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         }
         /*
@@ -188,7 +188,7 @@ void morse_pzunmqr_param(const libhqr_tree_t *qrtree,
          */
         else {
             for (k = K-1; k >= 0; k--) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
 
@@ -277,7 +277,7 @@ void morse_pzunmqr_param(const libhqr_tree_t *qrtree,
                     RUNTIME_data_flush( sequence, T(m, k) );
                 }
 
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         }
     }
@@ -287,7 +287,7 @@ void morse_pzunmqr_param(const libhqr_tree_t *qrtree,
     else {
         if (trans == ChamConjTrans) {
             for (k = K-1; k >= 0; k--) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkn = k == A->nt-1 ? A->n - k*A->nb : A->nb;
 
@@ -374,7 +374,7 @@ void morse_pzunmqr_param(const libhqr_tree_t *qrtree,
                     RUNTIME_data_flush( sequence, D(n, k) );
                     RUNTIME_data_flush( sequence, T(n, k) );
                 }
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         }
         /*
@@ -382,7 +382,7 @@ void morse_pzunmqr_param(const libhqr_tree_t *qrtree,
          */
         else {
             for (k = 0; k < K; k++) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkn = k == B->nt-1 ? B->n-k*B->nb : B->nb;
 
@@ -466,12 +466,12 @@ void morse_pzunmqr_param(const libhqr_tree_t *qrtree,
                     RUNTIME_data_flush( sequence, T(n, k) );
                 }
 
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         }
     }
 
     free(tiles);
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
 }
diff --git a/compute/pzunmqrrh.c b/compute/pzunmqrrh.c
index e06b2f5e5ef3668905489784f1cf7d017287c46a..f0ffa1e80a62bdd5cc0063cbdaea3b5a4e5febcc 100644
--- a/compute/pzunmqrrh.c
+++ b/compute/pzunmqrrh.c
@@ -40,11 +40,11 @@
  *  Parallel application of Q using tile V - QR factorization (reduction
  *  Householder) - dynamic scheduling
  */
-void morse_pzunmqrrh( cham_side_t side, cham_trans_t trans,
+void chameleon_pzunmqrrh( cham_side_t side, cham_trans_t trans,
                       CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T, CHAM_desc_t *D, int BS,
                       RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_option_t options;
     size_t ws_worker = 0;
     size_t ws_host = 0;
@@ -56,10 +56,10 @@ void morse_pzunmqrrh( cham_side_t side, cham_trans_t trans,
     int tempMm, tempkn, tempnn, tempmm, tempMRDm, tempkmin;
     int ib;
 
-    morse = morse_context_self();
+    chamctxt = chameleon_context_self();
     if (sequence->status != CHAMELEON_SUCCESS)
         return;
-    RUNTIME_options_init(&options, morse, sequence, request);
+    RUNTIME_options_init(&options, chamctxt, sequence, request);
 
     ib = CHAMELEON_IB;
 
@@ -91,7 +91,7 @@ void morse_pzunmqrrh( cham_side_t side, cham_trans_t trans,
              *  ChamLeft / ChamConjTrans
              */
             for (k = 0; k < K; k++) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
                 for (M = k; M < A->mt; M += BS) {
@@ -185,14 +185,14 @@ void morse_pzunmqrrh( cham_side_t side, cham_trans_t trans,
                                           B->get_rankof( B, k, n ) );
                 }
 
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         } else {
             /*
              *  ChamLeft / ChamNoTrans
              */
             for (k = K-1; k >= 0; k--) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
                 lastRD = 0;
@@ -284,7 +284,7 @@ void morse_pzunmqrrh( cham_side_t side, cham_trans_t trans,
                     RUNTIME_data_flush( sequence, D(M, k) );
                     RUNTIME_data_flush( sequence, T(M, k) );
                 }
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         }
     }
@@ -294,7 +294,7 @@ void morse_pzunmqrrh( cham_side_t side, cham_trans_t trans,
              *  ChamRight / ChamConjTrans
              */
             for (k = K-1; k >= 0; k--) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
                 lastRD = 0;
@@ -387,14 +387,14 @@ void morse_pzunmqrrh( cham_side_t side, cham_trans_t trans,
                     RUNTIME_data_flush( sequence, T(M, k) );
                 }
 
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         } else {
             /*
              *  ChamRight / ChamNoTrans
              */
             for (k = 0; k < K; k++) {
-                RUNTIME_iteration_push(morse, k);
+                RUNTIME_iteration_push(chamctxt, k);
 
                 tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb;
                 for (M = k; M < A->mt; M += BS) {
@@ -487,12 +487,12 @@ void morse_pzunmqrrh( cham_side_t side, cham_trans_t trans,
                                           B->get_rankof( B, m, k ) );
                 }
 
-                RUNTIME_iteration_pop(morse);
+                RUNTIME_iteration_pop(chamctxt);
             }
         }
     }
 
     RUNTIME_options_ws_free(&options);
-    RUNTIME_options_finalize(&options, morse);
+    RUNTIME_options_finalize(&options, chamctxt);
     (void)D;
 }
diff --git a/compute/zbuild.c b/compute/zbuild.c
index 59b59bf3644355f4c580e68c7f60500bf3e42cf8..ae792fe48176797bfe2aa99f162b96b3da6663ba 100644
--- a/compute/zbuild.c
+++ b/compute/zbuild.c
@@ -85,27 +85,27 @@ int CHAMELEON_zbuild( cham_uplo_t uplo, int M, int N,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zbuild", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zbuild", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if (M < 0) {
-        morse_error("CHAMELEON_zbuild", "illegal value of M");
+        chameleon_error("CHAMELEON_zbuild", "illegal value of M");
         return -1;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zbuild", "illegal value of N");
+        chameleon_error("CHAMELEON_zbuild", "illegal value of N");
         return -2;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zbuild", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zbuild", "illegal value of LDA");
         return -4;
     }
     /* Quick return */
@@ -113,34 +113,34 @@ int CHAMELEON_zbuild( cham_uplo_t uplo, int M, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGEMM, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGEMM, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zbuild", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zbuild", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescOutput, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescOutput, uplo,
                      A, NB, NB, LDA, N, M, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zbuild_Tile_Async( uplo, &descAt, user_data, user_build_callback, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescOutput, uplo, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
 
     return status;
 }
@@ -190,25 +190,25 @@ int CHAMELEON_zbuild( cham_uplo_t uplo, int M, int N,
 int CHAMELEON_zbuild_Tile( cham_uplo_t uplo, CHAM_desc_t *A,
                        void *user_data, void* user_build_callback )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zbuild_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zbuild_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zbuild_Tile_Async( uplo, A, user_data, user_build_callback, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -260,19 +260,19 @@ int CHAMELEON_zbuild_Tile_Async( cham_uplo_t uplo, CHAM_desc_t     *A,
                              RUNTIME_sequence_t *sequence,
                              RUNTIME_request_t  *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zbuild_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zbuild_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zbuild_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zbuild_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zbuild_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zbuild_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -280,13 +280,13 @@ int CHAMELEON_zbuild_Tile_Async( cham_uplo_t uplo, CHAM_desc_t     *A,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zbuild_Tile", "invalid descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zbuild_Tile", "invalid descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     /* Quick return */
@@ -294,7 +294,7 @@ int CHAMELEON_zbuild_Tile_Async( cham_uplo_t uplo, CHAM_desc_t     *A,
         return CHAMELEON_SUCCESS;
     }
 
-    morse_pzbuild( uplo, A, user_data, user_build_callback, sequence, request );
+    chameleon_pzbuild( uplo, A, user_data, user_build_callback, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zgeadd.c b/compute/zgeadd.c
index 708e80d01409c9a6120557448fae8d9369cd2c12..65dec44d82efbe8f4d9c411c8aeceae41fc27cd5 100644
--- a/compute/zgeadd.c
+++ b/compute/zgeadd.c
@@ -95,19 +95,19 @@ int CHAMELEON_zgeadd( cham_trans_t trans, int M, int N,
     int status;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgeadd", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgeadd", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if ((trans < ChamNoTrans) || (trans > ChamConjTrans)) {
-        morse_error("CHAMELEON_zgeadd", "illegal value of trans");
+        chameleon_error("CHAMELEON_zgeadd", "illegal value of trans");
         return -1;
     }
     if ( trans == ChamNoTrans ) {
@@ -116,19 +116,19 @@ int CHAMELEON_zgeadd( cham_trans_t trans, int M, int N,
         Am = N; An = M;
     }
     if (M < 0) {
-        morse_error("CHAMELEON_zgeadd", "illegal value of M");
+        chameleon_error("CHAMELEON_zgeadd", "illegal value of M");
         return -2;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zgeadd", "illegal value of N");
+        chameleon_error("CHAMELEON_zgeadd", "illegal value of N");
         return -3;
     }
     if (LDA < chameleon_max(1, Am)) {
-        morse_error("CHAMELEON_zgeadd", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zgeadd", "illegal value of LDA");
         return -6;
     }
     if (LDB < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zgeadd", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zgeadd", "illegal value of LDB");
         return -9;
     }
 
@@ -138,40 +138,40 @@ int CHAMELEON_zgeadd( cham_trans_t trans, int M, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZGEMM, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGEMM, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgeadd", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zgeadd", "chameleon_tune() failed");
         return status;
     }
 
     /* Set MT & NT & KT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamUpperLower,
                      A, NB, NB, LDA, An, Am, An, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, ChamUpperLower,
                      B, NB, NB, LDB, N, M, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zgeadd_Tile_Async( trans, alpha, &descAt, beta, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -227,26 +227,26 @@ int CHAMELEON_zgeadd_Tile( cham_trans_t trans,
                        CHAMELEON_Complex64_t alpha, CHAM_desc_t *A,
                        CHAMELEON_Complex64_t beta,  CHAM_desc_t *B )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgeadd_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgeadd_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zgeadd_Tile_Async( trans, alpha, A, beta, B, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -284,21 +284,21 @@ int CHAMELEON_zgeadd_Tile_Async( cham_trans_t trans,
                              CHAMELEON_Complex64_t beta,  CHAM_desc_t *B,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     int M, N;
     int Am, An, Ai, Aj, Amb, Anb;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgeadd_Tile_Async", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgeadd_Tile_Async", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zgeadd_Tile_Async", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zgeadd_Tile_Async", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zgeadd_Tile_Async", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zgeadd_Tile_Async", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -306,22 +306,22 @@ int CHAMELEON_zgeadd_Tile_Async( cham_trans_t trans,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgeadd_Tile_Async", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgeadd_Tile_Async", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgeadd_Tile_Async", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgeadd_Tile_Async", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if ((trans < ChamNoTrans) || (trans > ChamConjTrans)) {
-        morse_error("CHAMELEON_zgeadd_Tile_Async", "illegal value of trans");
-        return morse_request_fail(sequence, request, -1);
+        chameleon_error("CHAMELEON_zgeadd_Tile_Async", "illegal value of trans");
+        return chameleon_request_fail(sequence, request, -1);
     }
 
     if ( trans == ChamNoTrans ) {
@@ -341,16 +341,16 @@ int CHAMELEON_zgeadd_Tile_Async( cham_trans_t trans,
     }
 
     if ( (Amb != B->mb) || (Anb != B->nb) ) {
-        morse_error("CHAMELEON_zgeadd_Tile_Async", "tile sizes have to match");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgeadd_Tile_Async", "tile sizes have to match");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (Am != B->m) || (An != B->n) ) {
-        morse_error("CHAMELEON_zgeadd_Tile_Async", "sizes of matrices have to match");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgeadd_Tile_Async", "sizes of matrices have to match");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (Ai != B->i) || (Aj != B->j) ) {
-        morse_error("CHAMELEON_zgeadd_Tile_Async", "start indexes have to match");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgeadd_Tile_Async", "start indexes have to match");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     M = B->m;
@@ -363,7 +363,7 @@ int CHAMELEON_zgeadd_Tile_Async( cham_trans_t trans,
         return CHAMELEON_SUCCESS;
     }
 
-    morse_pztradd( ChamUpperLower, trans, alpha, A, beta, B, sequence, request );
+    chameleon_pztradd( ChamUpperLower, trans, alpha, A, beta, B, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zgelqf.c b/compute/zgelqf.c
index 3b4c43af23a6695ba67f31b886e9ea75597540a7..d6dfbee953810fa8126a373fc1f31cbc2c423563 100644
--- a/compute/zgelqf.c
+++ b/compute/zgelqf.c
@@ -76,28 +76,28 @@ int CHAMELEON_zgelqf( int M, int N,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgelqf", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgelqf", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if (M < 0) {
-        morse_error("CHAMELEON_zgelqf", "illegal value of M");
+        chameleon_error("CHAMELEON_zgelqf", "illegal value of M");
         return -1;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zgelqf", "illegal value of N");
+        chameleon_error("CHAMELEON_zgelqf", "illegal value of N");
         return -2;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zgelqf", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zgelqf", "illegal value of LDA");
         return -4;
     }
 
@@ -106,36 +106,36 @@ int CHAMELEON_zgelqf( int M, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on M, N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZGELS, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGELS, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgelqf", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zgelqf", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, ChamUpperLower,
                      A, NB, NB, LDA, N, M, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zgelqf_Tile_Async( &descAt, descT, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descT, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -180,26 +180,26 @@ int CHAMELEON_zgelqf( int M, int N,
  */
 int CHAMELEON_zgelqf_Tile( CHAM_desc_t *A, CHAM_desc_t *T )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgelqf_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgelqf_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zgelqf_Tile_Async( A, T, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( T, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -235,20 +235,20 @@ int CHAMELEON_zgelqf_Tile( CHAM_desc_t *A, CHAM_desc_t *T )
 int CHAMELEON_zgelqf_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgelqf_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgelqf_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zgelqf_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zgelqf_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zgelqf_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zgelqf_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -256,22 +256,22 @@ int CHAMELEON_zgelqf_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgelqf_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgelqf_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(T) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgelqf_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(T) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgelqf_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_zgelqf_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgelqf_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return */
     /*
@@ -281,23 +281,23 @@ int CHAMELEON_zgelqf_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T,
 #if defined(CHAMELEON_COPY_DIAG)
     {
         int m = chameleon_min(A->mt, A->nt) * A->mb;
-        morse_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
+        chameleon_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
         Dptr = &D;
     }
 #endif
 
-    if (morse->householder == ChamFlatHouseholder) {
-        morse_pzgelqf( A, T, Dptr, sequence, request );
+    if (chamctxt->householder == ChamFlatHouseholder) {
+        chameleon_pzgelqf( A, T, Dptr, sequence, request );
     }
     else {
-        morse_pzgelqfrh( A, T, Dptr, CHAMELEON_RHBLK, sequence, request );
+        chameleon_pzgelqfrh( A, T, Dptr, CHAMELEON_RHBLK, sequence, request );
     }
     if (Dptr != NULL) {
         CHAMELEON_Desc_Flush( A, sequence );
         CHAMELEON_Desc_Flush( T, sequence );
         CHAMELEON_Desc_Flush( Dptr, sequence );
-        morse_sequence_wait( morse, sequence );
-        morse_desc_mat_free( Dptr );
+        chameleon_sequence_wait( chamctxt, sequence );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/zgelqf_param.c b/compute/zgelqf_param.c
index 36f7175bb4dd310bb44e30d11ac732db1d034fbb..a86809cf45fa7cb864465563d66764dfe6030e3e 100644
--- a/compute/zgelqf_param.c
+++ b/compute/zgelqf_param.c
@@ -74,28 +74,28 @@ int CHAMELEON_zgelqf_param( const libhqr_tree_t *qrtree, int M, int N,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgelqf_param", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgelqf_param", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if (M < 0) {
-        morse_error("CHAMELEON_zgelqf_param", "illegal value of M");
+        chameleon_error("CHAMELEON_zgelqf_param", "illegal value of M");
         return -1;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zgelqf_param", "illegal value of N");
+        chameleon_error("CHAMELEON_zgelqf_param", "illegal value of N");
         return -2;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zgelqf_param", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zgelqf_param", "illegal value of LDA");
         return -4;
     }
 
@@ -104,37 +104,37 @@ int CHAMELEON_zgelqf_param( const libhqr_tree_t *qrtree, int M, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on M, N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZGELS, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGELS, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgelqf_param", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zgelqf_param", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, ChamUpperLower,
                      A, NB, NB, LDA, N, M, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zgelqf_param_Tile_Async( qrtree, &descAt, descTS, descTT, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descTS, sequence );
     CHAMELEON_Desc_Flush( descTT, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -179,17 +179,17 @@ int CHAMELEON_zgelqf_param( const libhqr_tree_t *qrtree, int M, int N,
  */
 int CHAMELEON_zgelqf_param_Tile( const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgelqf_param_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgelqf_param_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zgelqf_param_Tile_Async( qrtree, A, TS, TT, sequence, &request );
 
@@ -197,9 +197,9 @@ int CHAMELEON_zgelqf_param_Tile( const libhqr_tree_t *qrtree, CHAM_desc_t *A, CH
     CHAMELEON_Desc_Flush( TS, sequence );
     CHAMELEON_Desc_Flush( TT, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -235,20 +235,20 @@ int CHAMELEON_zgelqf_param_Tile( const libhqr_tree_t *qrtree, CHAM_desc_t *A, CH
 int CHAMELEON_zgelqf_param_Tile_Async( const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT,
                                    RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgelqf_param_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgelqf_param_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zgelqf_param_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zgelqf_param_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zgelqf_param_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zgelqf_param_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -256,26 +256,26 @@ int CHAMELEON_zgelqf_param_Tile_Async( const libhqr_tree_t *qrtree, CHAM_desc_t
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgelqf_param_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgelqf_param_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(TS) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgelqf_param_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(TS) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgelqf_param_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(TT) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgelqf_param_Tile", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(TT) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgelqf_param_Tile", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_zgelqf_param_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgelqf_param_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return */
     /*
@@ -285,19 +285,19 @@ int CHAMELEON_zgelqf_param_Tile_Async( const libhqr_tree_t *qrtree, CHAM_desc_t
 #if defined(CHAMELEON_COPY_DIAG)
     {
         int m = chameleon_min(A->mt, A->nt) * A->mb;
-        morse_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
+        chameleon_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
         Dptr = &D;
     }
 #endif
 
-    morse_pzgelqf_param( qrtree, A, TS, TT, Dptr, sequence, request );
+    chameleon_pzgelqf_param( qrtree, A, TS, TT, Dptr, sequence, request );
     if (Dptr != NULL) {
         CHAMELEON_Desc_Flush( A, sequence );
         CHAMELEON_Desc_Flush( TS, sequence );
         CHAMELEON_Desc_Flush( TT, sequence );
         CHAMELEON_Desc_Flush( Dptr, sequence );
-        morse_sequence_wait( morse, sequence );
-        morse_desc_mat_free( Dptr );
+        chameleon_sequence_wait( chamctxt, sequence );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/zgelqs.c b/compute/zgelqs.c
index 965903283d916c80a0071104b96cce5d9efab8c5..4b74ebf46e68bd104707545aa641e4c831cdee54 100644
--- a/compute/zgelqs.c
+++ b/compute/zgelqs.c
@@ -83,37 +83,37 @@ int CHAMELEON_zgelqs( int M, int N, int NRHS,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgelqs", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgelqs", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if (M < 0) {
-        morse_error("CHAMELEON_zgelqs", "illegal value of M");
+        chameleon_error("CHAMELEON_zgelqs", "illegal value of M");
         return -1;
     }
     if (N < 0 || M > N) {
-        morse_error("CHAMELEON_zgelqs", "illegal value of N");
+        chameleon_error("CHAMELEON_zgelqs", "illegal value of N");
         return -2;
     }
     if (NRHS < 0) {
-        morse_error("CHAMELEON_zgelqs", "illegal value of N");
+        chameleon_error("CHAMELEON_zgelqs", "illegal value of N");
         return -3;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zgelqs", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zgelqs", "illegal value of LDA");
         return -5;
     }
     if (LDB < chameleon_max(1, chameleon_max(1, N))) {
-        morse_error("CHAMELEON_zgelqs", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zgelqs", "illegal value of LDB");
         return -8;
     }
     /* Quick return */
@@ -122,41 +122,41 @@ int CHAMELEON_zgelqs( int M, int N, int NRHS,
     }
 
     /* Tune NB & IB depending on M, N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZGELS, M, N, NRHS);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGELS, M, N, NRHS);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgelqs", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zgelqs", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamUpperLower,
                      A, NB, NB, LDA, N, M, N, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, ChamUpperLower,
                      B, NB, NB, LDB, NRHS, N, NRHS, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zgelqs_Tile_Async( &descAt, descT, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descT, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -201,17 +201,17 @@ int CHAMELEON_zgelqs( int M, int N, int NRHS,
  */
 int CHAMELEON_zgelqs_Tile( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgelqs_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgelqs_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zgelqs_Tile_Async( A, T, B, sequence, &request );
 
@@ -219,9 +219,9 @@ int CHAMELEON_zgelqs_Tile( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B )
     CHAMELEON_Desc_Flush( T, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -260,20 +260,20 @@ int CHAMELEON_zgelqs_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B,
 {
     CHAM_desc_t *subB;
     CHAM_desc_t *subA;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgelqs_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgelqs_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zgelqs_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zgelqs_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zgelqs_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zgelqs_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -281,26 +281,26 @@ int CHAMELEON_zgelqs_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgelqs_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgelqs_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(T) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgelqs_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(T) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgelqs_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgelqs_Tile", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgelqs_Tile", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || B->nb != B->mb) {
-        morse_error("CHAMELEON_zgelqs_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgelqs_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return */
     /*
@@ -308,29 +308,29 @@ int CHAMELEON_zgelqs_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B,
      return CHAMELEON_SUCCESS;
      }
      */
-    /* subB = morse_desc_submatrix(B, A->m, 0, A->n-A->m, B->n);
-     morse_pzlaset( ChamUpperLower, 0., 0., subB, sequence, request );
+    /* subB = chameleon_desc_submatrix(B, A->m, 0, A->n-A->m, B->n);
+     chameleon_pzlaset( ChamUpperLower, 0., 0., subB, sequence, request );
      free(subB); */
 
-    subB = morse_desc_submatrix(B, 0, 0, A->m, B->n);
-    subA = morse_desc_submatrix(A, 0, 0, A->m, A->m);
-    morse_pztrsm( ChamLeft, ChamLower, ChamNoTrans, ChamNonUnit, 1.0, subA, subB, sequence, request );
+    subB = chameleon_desc_submatrix(B, 0, 0, A->m, B->n);
+    subA = chameleon_desc_submatrix(A, 0, 0, A->m, A->m);
+    chameleon_pztrsm( ChamLeft, ChamLower, ChamNoTrans, ChamNonUnit, 1.0, subA, subB, sequence, request );
     free(subA);
     free(subB);
 
 #if defined(CHAMELEON_COPY_DIAG)
     {
         int m = chameleon_min(A->mt, A->nt) * A->mb;
-        morse_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
+        chameleon_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
         Dptr = &D;
     }
 #endif
 
-    if (morse->householder == ChamFlatHouseholder) {
-        morse_pzunmlq( ChamLeft, ChamConjTrans, A, B, T, Dptr, sequence, request );
+    if (chamctxt->householder == ChamFlatHouseholder) {
+        chameleon_pzunmlq( ChamLeft, ChamConjTrans, A, B, T, Dptr, sequence, request );
     }
     else {
-        morse_pzunmlqrh( ChamLeft, ChamConjTrans, A, B, T, Dptr, CHAMELEON_RHBLK, sequence, request );
+        chameleon_pzunmlqrh( ChamLeft, ChamConjTrans, A, B, T, Dptr, CHAMELEON_RHBLK, sequence, request );
     }
 
     if (Dptr != NULL) {
@@ -338,8 +338,8 @@ int CHAMELEON_zgelqs_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B,
         CHAMELEON_Desc_Flush( B, sequence );
         CHAMELEON_Desc_Flush( T, sequence );
         CHAMELEON_Desc_Flush( Dptr, sequence );
-        morse_sequence_wait( morse, sequence );
-        morse_desc_mat_free( Dptr );
+        chameleon_sequence_wait( chamctxt, sequence );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/zgelqs_param.c b/compute/zgelqs_param.c
index ec11d6b75e0d65a58c64d7fcf8449ed828b3eaae..997117abd463de6e8c1b05b0dafb656ca238947b 100644
--- a/compute/zgelqs_param.c
+++ b/compute/zgelqs_param.c
@@ -85,37 +85,37 @@ int CHAMELEON_zgelqs_param( const libhqr_tree_t *qrtree, int M, int N, int NRHS,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgelqs_param", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgelqs_param", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if (M < 0) {
-        morse_error("CHAMELEON_zgelqs_param", "illegal value of M");
+        chameleon_error("CHAMELEON_zgelqs_param", "illegal value of M");
         return -1;
     }
     if (N < 0 || M > N) {
-        morse_error("CHAMELEON_zgelqs_param", "illegal value of N");
+        chameleon_error("CHAMELEON_zgelqs_param", "illegal value of N");
         return -2;
     }
     if (NRHS < 0) {
-        morse_error("CHAMELEON_zgelqs_param", "illegal value of N");
+        chameleon_error("CHAMELEON_zgelqs_param", "illegal value of N");
         return -3;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zgelqs_param", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zgelqs_param", "illegal value of LDA");
         return -5;
     }
     if (LDB < chameleon_max(1, chameleon_max(1, N))) {
-        morse_error("CHAMELEON_zgelqs_param", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zgelqs_param", "illegal value of LDB");
         return -8;
     }
     /* Quick return */
@@ -124,42 +124,42 @@ int CHAMELEON_zgelqs_param( const libhqr_tree_t *qrtree, int M, int N, int NRHS,
     }
 
     /* Tune NB & IB depending on M, N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZGELS, M, N, NRHS);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGELS, M, N, NRHS);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgelqs_param", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zgelqs_param", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamUpperLower,
                      A, NB, NB, LDA, N, M, N, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, ChamUpperLower,
                      B, NB, NB, LDB, NRHS, N, NRHS, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zgelqs_param_Tile_Async( qrtree, &descAt, descTS, descTT, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descTS, sequence );
     CHAMELEON_Desc_Flush( descTT, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -208,17 +208,17 @@ int CHAMELEON_zgelqs_param( const libhqr_tree_t *qrtree, int M, int N, int NRHS,
 int CHAMELEON_zgelqs_param_Tile( const libhqr_tree_t *qrtree, CHAM_desc_t *A,
                              CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *B )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgelqs_param_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgelqs_param_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zgelqs_param_Tile_Async( qrtree, A, TS, TT, B, sequence, &request );
 
@@ -227,9 +227,9 @@ int CHAMELEON_zgelqs_param_Tile( const libhqr_tree_t *qrtree, CHAM_desc_t *A,
     CHAMELEON_Desc_Flush( TT, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -268,20 +268,20 @@ int CHAMELEON_zgelqs_param_Tile_Async( const libhqr_tree_t *qrtree, CHAM_desc_t
 {
     CHAM_desc_t *subB;
     CHAM_desc_t *subA;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgelqs_param_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgelqs_param_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zgelqs_param_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zgelqs_param_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zgelqs_param_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zgelqs_param_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -289,30 +289,30 @@ int CHAMELEON_zgelqs_param_Tile_Async( const libhqr_tree_t *qrtree, CHAM_desc_t
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgelqs_param_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgelqs_param_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(TS) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgelqs_param_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(TS) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgelqs_param_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(TT) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgelqs_param_Tile", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(TT) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgelqs_param_Tile", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgelqs_param_Tile", "invalid fourth descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgelqs_param_Tile", "invalid fourth descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || B->nb != B->mb) {
-        morse_error("CHAMELEON_zgelqs_param_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgelqs_param_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return */
     /*
@@ -320,33 +320,33 @@ int CHAMELEON_zgelqs_param_Tile_Async( const libhqr_tree_t *qrtree, CHAM_desc_t
      return CHAMELEON_SUCCESS;
      }
      */
-    /* subB = morse_desc_submatrix(B, A->m, 0, A->n-A->m, B->n);
-     morse_pzlaset( ChamUpperLower, 0., 0., subB, sequence, request );
+    /* subB = chameleon_desc_submatrix(B, A->m, 0, A->n-A->m, B->n);
+     chameleon_pzlaset( ChamUpperLower, 0., 0., subB, sequence, request );
      free(subB); */
 
-    subB = morse_desc_submatrix(B, 0, 0, A->m, B->n);
-    subA = morse_desc_submatrix(A, 0, 0, A->m, A->m);
-    morse_pztrsm( ChamLeft, ChamLower, ChamNoTrans, ChamNonUnit, 1.0, subA, subB, sequence, request );
+    subB = chameleon_desc_submatrix(B, 0, 0, A->m, B->n);
+    subA = chameleon_desc_submatrix(A, 0, 0, A->m, A->m);
+    chameleon_pztrsm( ChamLeft, ChamLower, ChamNoTrans, ChamNonUnit, 1.0, subA, subB, sequence, request );
     free(subA);
     free(subB);
 
 #if defined(CHAMELEON_COPY_DIAG)
     {
         int m = chameleon_min(A->mt, A->nt) * A->mb;
-        morse_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
+        chameleon_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
         Dptr = &D;
     }
 #endif
 
-    morse_pzunmlq_param( qrtree, ChamLeft, ChamConjTrans, A, B, TS, TT, Dptr, sequence, request );
+    chameleon_pzunmlq_param( qrtree, ChamLeft, ChamConjTrans, A, B, TS, TT, Dptr, sequence, request );
     if (Dptr != NULL) {
         CHAMELEON_Desc_Flush( A, sequence );
         CHAMELEON_Desc_Flush( B, sequence );
         CHAMELEON_Desc_Flush( TS, sequence );
         CHAMELEON_Desc_Flush( TT, sequence );
         CHAMELEON_Desc_Flush( Dptr, sequence );
-        morse_sequence_wait( morse, sequence );
-        morse_desc_mat_free( Dptr );
+        chameleon_sequence_wait( chamctxt, sequence );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/zgels.c b/compute/zgels.c
index c7455bbc163bb8a33df48f0d3321ea019162b622..cd75e4513051fd7e48fb3cb2d75fa903c0696365 100644
--- a/compute/zgels.c
+++ b/compute/zgels.c
@@ -110,41 +110,41 @@ int CHAMELEON_zgels( cham_trans_t trans, int M, int N, int NRHS,
     int i, j;
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgels", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgels", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if (trans != ChamNoTrans) {
-        morse_error("CHAMELEON_zgels", "only ChamNoTrans supported");
+        chameleon_error("CHAMELEON_zgels", "only ChamNoTrans supported");
         return CHAMELEON_ERR_NOT_SUPPORTED;
     }
     if (M < 0) {
-        morse_error("CHAMELEON_zgels", "illegal value of M");
+        chameleon_error("CHAMELEON_zgels", "illegal value of M");
         return -2;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zgels", "illegal value of N");
+        chameleon_error("CHAMELEON_zgels", "illegal value of N");
         return -3;
     }
     if (NRHS < 0) {
-        morse_error("CHAMELEON_zgels", "illegal value of NRHS");
+        chameleon_error("CHAMELEON_zgels", "illegal value of NRHS");
         return -4;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zgels", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zgels", "illegal value of LDA");
         return -6;
     }
     if (LDB < chameleon_max(1, chameleon_max(M, N))) {
-        morse_error("CHAMELEON_zgels", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zgels", "illegal value of LDB");
         return -9;
     }
     /* Quick return */
@@ -156,28 +156,28 @@ int CHAMELEON_zgels( cham_trans_t trans, int M, int N, int NRHS,
     }
 
     /* Tune NB & IB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGELS, M, N, NRHS);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGELS, M, N, NRHS);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgels", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zgels", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
     if ( M >= N ) {
-        morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, ChamUpperLower,
+        chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, ChamUpperLower,
                          A, NB, NB, LDA, N, M, N, sequence, &request );
-        morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, ChamUpperLower,
+        chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, ChamUpperLower,
                          B, NB, NB, LDB, NRHS, M, NRHS, sequence, &request );
     } else {
         /* Submit the matrix conversion */
-        morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, ChamUpperLower,
+        chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, ChamUpperLower,
                          A, NB, NB, LDA, N, M, N, sequence, &request );
-        morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, ChamUpperLower,
+        chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, ChamUpperLower,
                          B, NB, NB, LDB, NRHS, N, NRHS, sequence, &request );
     }
 
@@ -185,20 +185,20 @@ int CHAMELEON_zgels( cham_trans_t trans, int M, int N, int NRHS,
     CHAMELEON_zgels_Tile_Async( ChamNoTrans, &descAt, descT, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descT, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -259,17 +259,17 @@ int CHAMELEON_zgels( cham_trans_t trans, int M, int N, int NRHS,
 int CHAMELEON_zgels_Tile( cham_trans_t trans, CHAM_desc_t *A,
                       CHAM_desc_t *T, CHAM_desc_t *B )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgels_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgels_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zgels_Tile_Async( trans, A, T, B, sequence, &request );
 
@@ -277,9 +277,9 @@ int CHAMELEON_zgels_Tile( cham_trans_t trans, CHAM_desc_t *A,
     CHAMELEON_Desc_Flush( T, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -318,20 +318,20 @@ int CHAMELEON_zgels_Tile_Async( cham_trans_t trans, CHAM_desc_t *A,
 {
     CHAM_desc_t *subA;
     CHAM_desc_t *subB;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgels_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgels_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zgels_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zgels_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zgels_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zgels_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -339,30 +339,30 @@ int CHAMELEON_zgels_Tile_Async( cham_trans_t trans, CHAM_desc_t *A,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgels_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgels_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(T) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgels_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(T) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgels_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgels_Tile", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgels_Tile", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || B->nb != B->mb) {
-        morse_error("CHAMELEON_zgels_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgels_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if (trans != ChamNoTrans) {
-        morse_error("CHAMELEON_zgels_Tile", "only ChamNoTrans supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_NOT_SUPPORTED);
+        chameleon_error("CHAMELEON_zgels_Tile", "only ChamNoTrans supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_NOT_SUPPORTED);
     }
     /* Quick return  - currently NOT equivalent to LAPACK's:
      if (chameleon_min(M, chameleon_min(N, NRHS)) == 0) {
@@ -377,52 +377,52 @@ int CHAMELEON_zgels_Tile_Async( cham_trans_t trans, CHAM_desc_t *A,
 #if defined(CHAMELEON_COPY_DIAG)
         {
             int n = chameleon_min(A->mt, A->nt) * A->nb;
-            morse_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
+            chameleon_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
             Dptr = &D;
         }
 #endif
-        if (morse->householder == ChamFlatHouseholder) {
+        if (chamctxt->householder == ChamFlatHouseholder) {
 
-            morse_pzgeqrf( A, T, Dptr, sequence, request );
+            chameleon_pzgeqrf( A, T, Dptr, sequence, request );
 
-            morse_pzunmqr( ChamLeft, ChamConjTrans, A, B, T, Dptr, sequence, request );
+            chameleon_pzunmqr( ChamLeft, ChamConjTrans, A, B, T, Dptr, sequence, request );
         }
         else {
-            morse_pzgeqrfrh( A, T, Dptr, CHAMELEON_RHBLK, sequence, request );
+            chameleon_pzgeqrfrh( A, T, Dptr, CHAMELEON_RHBLK, sequence, request );
 
-            morse_pzunmqrrh( ChamLeft, ChamConjTrans, A, B, T, Dptr, CHAMELEON_RHBLK, sequence, request );
+            chameleon_pzunmqrrh( ChamLeft, ChamConjTrans, A, B, T, Dptr, CHAMELEON_RHBLK, sequence, request );
         }
-        subB = morse_desc_submatrix(B, 0, 0, A->n, B->n);
-        subA = morse_desc_submatrix(A, 0, 0, A->n, A->n);
-        morse_pztrsm( ChamLeft, ChamUpper, ChamNoTrans, ChamNonUnit, 1.0, subA, subB, sequence, request );
+        subB = chameleon_desc_submatrix(B, 0, 0, A->n, B->n);
+        subA = chameleon_desc_submatrix(A, 0, 0, A->n, A->n);
+        chameleon_pztrsm( ChamLeft, ChamUpper, ChamNoTrans, ChamNonUnit, 1.0, subA, subB, sequence, request );
 
     }
     else {
-        /* subB = morse_desc_submatrix(B, A->m, 0, A->n-A->m, B->n);
-         morse_pzlaset( ChamUpperLower, 0., 0., subB, sequence, request );
+        /* subB = chameleon_desc_submatrix(B, A->m, 0, A->n-A->m, B->n);
+         chameleon_pzlaset( ChamUpperLower, 0., 0., subB, sequence, request );
          free(subB); */
 #if defined(CHAMELEON_COPY_DIAG)
         {
             int m = chameleon_min(A->mt, A->nt) * A->mb;
-            morse_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
+            chameleon_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
             Dptr = &D;
         }
 #endif
-        if (morse->householder == ChamFlatHouseholder) {
-            morse_pzgelqf( A, T, Dptr, sequence, request );
+        if (chamctxt->householder == ChamFlatHouseholder) {
+            chameleon_pzgelqf( A, T, Dptr, sequence, request );
         }
         else {
-            morse_pzgelqfrh( A, T, Dptr, CHAMELEON_RHBLK, sequence, request );
+            chameleon_pzgelqfrh( A, T, Dptr, CHAMELEON_RHBLK, sequence, request );
         }
-        subB = morse_desc_submatrix(B, 0, 0, A->m, B->n);
-        subA = morse_desc_submatrix(A, 0, 0, A->m, A->m);
-        morse_pztrsm( ChamLeft, ChamLower, ChamNoTrans, ChamNonUnit, 1.0, subA, subB, sequence, request );
+        subB = chameleon_desc_submatrix(B, 0, 0, A->m, B->n);
+        subA = chameleon_desc_submatrix(A, 0, 0, A->m, A->m);
+        chameleon_pztrsm( ChamLeft, ChamLower, ChamNoTrans, ChamNonUnit, 1.0, subA, subB, sequence, request );
 
-        if (morse->householder == ChamFlatHouseholder) {
-            morse_pzunmlq( ChamLeft, ChamConjTrans, A, B, T, Dptr, sequence, request );
+        if (chamctxt->householder == ChamFlatHouseholder) {
+            chameleon_pzunmlq( ChamLeft, ChamConjTrans, A, B, T, Dptr, sequence, request );
         }
         else {
-            morse_pzunmlqrh( ChamLeft, ChamConjTrans, A, B, T, Dptr, CHAMELEON_RHBLK, sequence, request );
+            chameleon_pzunmlqrh( ChamLeft, ChamConjTrans, A, B, T, Dptr, CHAMELEON_RHBLK, sequence, request );
         }
     }
 
@@ -434,8 +434,8 @@ int CHAMELEON_zgels_Tile_Async( cham_trans_t trans, CHAM_desc_t *A,
         CHAMELEON_Desc_Flush( T, sequence );
         CHAMELEON_Desc_Flush( B, sequence );
         CHAMELEON_Desc_Flush( Dptr, sequence );
-        morse_sequence_wait( morse, sequence );
-        morse_desc_mat_free( Dptr );
+        chameleon_sequence_wait( chamctxt, sequence );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/zgels_param.c b/compute/zgels_param.c
index de86b23af9f3f26fb6649decd2ed10548af00cad..6547a537102a5eb7b3195a513ceaea2854ba3310 100644
--- a/compute/zgels_param.c
+++ b/compute/zgels_param.c
@@ -113,41 +113,41 @@ int CHAMELEON_zgels_param( const libhqr_tree_t *qrtree, cham_trans_t trans, int
     int i, j;
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgels_param", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgels_param", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if (trans != ChamNoTrans) {
-        morse_error("CHAMELEON_zgels_param", "only ChamNoTrans supported");
+        chameleon_error("CHAMELEON_zgels_param", "only ChamNoTrans supported");
         return CHAMELEON_ERR_NOT_SUPPORTED;
     }
     if (M < 0) {
-        morse_error("CHAMELEON_zgels_param", "illegal value of M");
+        chameleon_error("CHAMELEON_zgels_param", "illegal value of M");
         return -2;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zgels_param", "illegal value of N");
+        chameleon_error("CHAMELEON_zgels_param", "illegal value of N");
         return -3;
     }
     if (NRHS < 0) {
-        morse_error("CHAMELEON_zgels_param", "illegal value of NRHS");
+        chameleon_error("CHAMELEON_zgels_param", "illegal value of NRHS");
         return -4;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zgels_param", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zgels_param", "illegal value of LDA");
         return -6;
     }
     if (LDB < chameleon_max(1, chameleon_max(M, N))) {
-        morse_error("CHAMELEON_zgels_param", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zgels_param", "illegal value of LDB");
         return -9;
     }
     /* Quick return */
@@ -159,27 +159,27 @@ int CHAMELEON_zgels_param( const libhqr_tree_t *qrtree, cham_trans_t trans, int
     }
 
     /* Tune NB & IB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGELS, M, N, NRHS);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGELS, M, N, NRHS);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgels_param", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zgels_param", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
     if ( M >= N ) {
-        morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, ChamUpperLower,
+        chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, ChamUpperLower,
                          A, NB, NB, LDA, N, M, N, sequence, &request );
-        morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, ChamUpperLower,
+        chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, ChamUpperLower,
                          B, NB, NB, LDB, NRHS, M, NRHS, sequence, &request );
     } else {
-        morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, ChamUpperLower,
+        chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, ChamUpperLower,
                          A, NB, NB, LDA, N, M, N, sequence, &request );
-        morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, ChamUpperLower,
+        chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, ChamUpperLower,
                          B, NB, NB, LDB, NRHS, N, NRHS, sequence, &request );
     }
 
@@ -187,21 +187,21 @@ int CHAMELEON_zgels_param( const libhqr_tree_t *qrtree, cham_trans_t trans, int
     CHAMELEON_zgels_param_Tile_Async( qrtree, ChamNoTrans, &descAt, descTS, descTT, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descTS, sequence );
     CHAMELEON_Desc_Flush( descTT, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -265,17 +265,17 @@ int CHAMELEON_zgels_param( const libhqr_tree_t *qrtree, cham_trans_t trans, int
 int CHAMELEON_zgels_param_Tile( const libhqr_tree_t *qrtree, cham_trans_t trans, CHAM_desc_t *A,
                             CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *B )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgels_param_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgels_param_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zgels_param_Tile_Async( qrtree, trans, A, TS, TT, B, sequence, &request );
 
@@ -284,9 +284,9 @@ int CHAMELEON_zgels_param_Tile( const libhqr_tree_t *qrtree, cham_trans_t trans,
     CHAMELEON_Desc_Flush( TT, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -325,20 +325,20 @@ int CHAMELEON_zgels_param_Tile_Async( const libhqr_tree_t *qrtree, cham_trans_t
 {
     CHAM_desc_t *subA;
     CHAM_desc_t *subB;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgels_param_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgels_param_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zgels_param_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zgels_param_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zgels_param_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zgels_param_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -346,34 +346,34 @@ int CHAMELEON_zgels_param_Tile_Async( const libhqr_tree_t *qrtree, cham_trans_t
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgels_param_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgels_param_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(TS) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgels_param_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(TS) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgels_param_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(TT) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgels_param_Tile", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(TT) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgels_param_Tile", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgels_param_Tile", "invalid fourth descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgels_param_Tile", "invalid fourth descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || B->nb != B->mb) {
-        morse_error("CHAMELEON_zgels_param_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgels_param_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if (trans != ChamNoTrans) {
-        morse_error("CHAMELEON_zgels_param_Tile", "only ChamNoTrans supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_NOT_SUPPORTED);
+        chameleon_error("CHAMELEON_zgels_param_Tile", "only ChamNoTrans supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_NOT_SUPPORTED);
     }
     /* Quick return  - currently NOT equivalent to LAPACK's:
      if (chameleon_min(M, chameleon_min(N, NRHS)) == 0) {
@@ -388,33 +388,33 @@ int CHAMELEON_zgels_param_Tile_Async( const libhqr_tree_t *qrtree, cham_trans_t
 #if defined(CHAMELEON_COPY_DIAG)
         {
             int n = chameleon_min(A->mt, A->nt) * A->nb;
-            morse_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
+            chameleon_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
             Dptr = &D;
         }
 #endif
 
-        subB = morse_desc_submatrix(B, 0, 0, A->n, B->n);
-        subA = morse_desc_submatrix(A, 0, 0, A->n, A->n);
+        subB = chameleon_desc_submatrix(B, 0, 0, A->n, B->n);
+        subA = chameleon_desc_submatrix(A, 0, 0, A->n, A->n);
 
-        morse_pzgeqrf_param( qrtree, A, TS, TT, Dptr, sequence, request );
-        morse_pzunmqr_param( qrtree, ChamLeft, ChamConjTrans, A, B, TS, TT, Dptr, sequence, request );
-        morse_pztrsm( ChamLeft, ChamUpper, ChamNoTrans, ChamNonUnit, 1.0, subA, subB, sequence, request );
+        chameleon_pzgeqrf_param( qrtree, A, TS, TT, Dptr, sequence, request );
+        chameleon_pzunmqr_param( qrtree, ChamLeft, ChamConjTrans, A, B, TS, TT, Dptr, sequence, request );
+        chameleon_pztrsm( ChamLeft, ChamUpper, ChamNoTrans, ChamNonUnit, 1.0, subA, subB, sequence, request );
     }
     else {
 #if defined(CHAMELEON_COPY_DIAG)
         {
             int m = chameleon_min(A->mt, A->nt) * A->mb;
-            morse_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
+            chameleon_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
             Dptr = &D;
         }
 #endif
 
-        subB = morse_desc_submatrix(B, 0, 0, A->m, B->n);
-        subA = morse_desc_submatrix(A, 0, 0, A->m, A->m);
+        subB = chameleon_desc_submatrix(B, 0, 0, A->m, B->n);
+        subA = chameleon_desc_submatrix(A, 0, 0, A->m, A->m);
 
-        morse_pzgelqf_param( qrtree, A, TS, TT, Dptr, sequence, request );
-        morse_pztrsm( ChamLeft, ChamLower, ChamNoTrans, ChamNonUnit, 1.0, subA, subB, sequence, request );
-        morse_pzunmlq_param( qrtree, ChamLeft, ChamConjTrans, A, B, TS, TT, Dptr, sequence, request );
+        chameleon_pzgelqf_param( qrtree, A, TS, TT, Dptr, sequence, request );
+        chameleon_pztrsm( ChamLeft, ChamLower, ChamNoTrans, ChamNonUnit, 1.0, subA, subB, sequence, request );
+        chameleon_pzunmlq_param( qrtree, ChamLeft, ChamConjTrans, A, B, TS, TT, Dptr, sequence, request );
     }
 
     free(subA);
@@ -426,8 +426,8 @@ int CHAMELEON_zgels_param_Tile_Async( const libhqr_tree_t *qrtree, cham_trans_t
         CHAMELEON_Desc_Flush( TS, sequence );
         CHAMELEON_Desc_Flush( TT, sequence );
         CHAMELEON_Desc_Flush( Dptr, sequence );
-        morse_sequence_wait( morse, sequence );
-        morse_desc_mat_free( Dptr );
+        chameleon_sequence_wait( chamctxt, sequence );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/zgemm.c b/compute/zgemm.c
index 183e8dedcd9f2568c072ff8fc58f8b754053ec8b..9f13d6a44ace996bf409a5710e3ce768f79dcaf1 100644
--- a/compute/zgemm.c
+++ b/compute/zgemm.c
@@ -136,23 +136,23 @@ int CHAMELEON_zgemm( cham_trans_t transA, cham_trans_t transB, int M, int N, int
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
     CHAM_desc_t descCl, descCt;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgemm", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgemm", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if ((transA < ChamNoTrans) || (transA > ChamConjTrans)) {
-        morse_error("CHAMELEON_zgemm", "illegal value of transA");
+        chameleon_error("CHAMELEON_zgemm", "illegal value of transA");
         return -1;
     }
     if ((transB < ChamNoTrans) || (transB > ChamConjTrans)) {
-        morse_error("CHAMELEON_zgemm", "illegal value of transB");
+        chameleon_error("CHAMELEON_zgemm", "illegal value of transB");
         return -2;
     }
     if ( transA == ChamNoTrans ) {
@@ -166,27 +166,27 @@ int CHAMELEON_zgemm( cham_trans_t transA, cham_trans_t transB, int M, int N, int
         Bm = N; Bn = K;
     }
     if (M < 0) {
-        morse_error("CHAMELEON_zgemm", "illegal value of M");
+        chameleon_error("CHAMELEON_zgemm", "illegal value of M");
         return -3;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zgemm", "illegal value of N");
+        chameleon_error("CHAMELEON_zgemm", "illegal value of N");
         return -4;
     }
     if (K < 0) {
-        morse_error("CHAMELEON_zgemm", "illegal value of N");
+        chameleon_error("CHAMELEON_zgemm", "illegal value of N");
         return -5;
     }
     if (LDA < chameleon_max(1, Am)) {
-        morse_error("CHAMELEON_zgemm", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zgemm", "illegal value of LDA");
         return -8;
     }
     if (LDB < chameleon_max(1, Bm)) {
-        morse_error("CHAMELEON_zgemm", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zgemm", "illegal value of LDB");
         return -10;
     }
     if (LDC < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zgemm", "illegal value of LDC");
+        chameleon_error("CHAMELEON_zgemm", "illegal value of LDC");
         return -13;
     }
 
@@ -196,45 +196,45 @@ int CHAMELEON_zgemm( cham_trans_t transA, cham_trans_t transB, int M, int N, int
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZGEMM, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGEMM, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgemm", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zgemm", "chameleon_tune() failed");
         return status;
     }
 
     /* Set MT & NT & KT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamUpperLower,
                      A, NB, NB, LDA, An, Am, An, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInput, ChamUpperLower,
                      B, NB, NB, LDB, Bn, Bm, Bn, sequence, &request );
-    morse_zlap2tile( morse, &descCl, &descCt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descCl, &descCt, ChamDescInout, ChamUpperLower,
                      C, NB, NB, LDC, N, M,  N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zgemm_Tile_Async( transA, transB, alpha, &descAt, &descBt, beta, &descCt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInput, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descCl, &descCt,
+    chameleon_ztile2lap( chamctxt, &descCl, &descCt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
-    morse_ztile2lap_cleanup( morse, &descCl, &descCt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descCl, &descCt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -299,17 +299,17 @@ int CHAMELEON_zgemm_Tile( cham_trans_t transA, cham_trans_t transB,
                       CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B,
                       CHAMELEON_Complex64_t beta,  CHAM_desc_t *C )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgemm_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgemm_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zgemm_Tile_Async( transA, transB, alpha, A, B, beta, C, sequence, &request );
 
@@ -317,9 +317,9 @@ int CHAMELEON_zgemm_Tile( cham_trans_t transA, cham_trans_t transB,
     CHAMELEON_Desc_Flush( B, sequence );
     CHAMELEON_Desc_Flush( C, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -356,22 +356,22 @@ int CHAMELEON_zgemm_Tile_Async( cham_trans_t transA, cham_trans_t transB,
                             CHAMELEON_Complex64_t beta,  CHAM_desc_t *C,
                             RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     int M, N, K;
     int Am, An, Ai, Aj, Amb, Anb;
     int Bm, Bn, Bi, Bj, Bmb, Bnb;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgemm_Tile_Async", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgemm_Tile_Async", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zgemm_Tile_Async", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zgemm_Tile_Async", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zgemm_Tile_Async", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zgemm_Tile_Async", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -379,30 +379,30 @@ int CHAMELEON_zgemm_Tile_Async( cham_trans_t transA, cham_trans_t transB,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgemm_Tile_Async", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgemm_Tile_Async", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgemm_Tile_Async", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgemm_Tile_Async", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(C) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgemm_Tile_Async", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(C) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgemm_Tile_Async", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if ((transA < ChamNoTrans) || (transA > ChamConjTrans)) {
-        morse_error("CHAMELEON_zgemm_Tile_Async", "illegal value of transA");
-        return morse_request_fail(sequence, request, -1);
+        chameleon_error("CHAMELEON_zgemm_Tile_Async", "illegal value of transA");
+        return chameleon_request_fail(sequence, request, -1);
     }
     if ((transB < ChamNoTrans) || (transB > ChamConjTrans)) {
-        morse_error("CHAMELEON_zgemm_Tile_Async", "illegal value of transB");
-        return morse_request_fail(sequence, request, -2);
+        chameleon_error("CHAMELEON_zgemm_Tile_Async", "illegal value of transB");
+        return chameleon_request_fail(sequence, request, -2);
     }
 
     if ( transA == ChamNoTrans ) {
@@ -438,16 +438,16 @@ int CHAMELEON_zgemm_Tile_Async( cham_trans_t transA, cham_trans_t transB,
     }
 
     if ( (Amb != C->mb) || (Anb != Bmb) || (Bnb != C->nb) ) {
-        morse_error("CHAMELEON_zgemm_Tile_Async", "tile sizes have to match");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgemm_Tile_Async", "tile sizes have to match");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (Am != C->m) || (An != Bm) || (Bn != C->n) ) {
-        morse_error("CHAMELEON_zgemm_Tile_Async", "sizes of matrices have to match");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgemm_Tile_Async", "sizes of matrices have to match");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (Ai != C->i) || (Aj != Bi) || (Bj != C->j) ) {
-        morse_error("CHAMELEON_zgemm_Tile_Async", "start indexes have to match");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgemm_Tile_Async", "start indexes have to match");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     M = C->m;
@@ -461,7 +461,7 @@ int CHAMELEON_zgemm_Tile_Async( cham_trans_t transA, cham_trans_t transB,
         return CHAMELEON_SUCCESS;
     }
 
-    morse_pzgemm( transA, transB, alpha, A, B, beta, C, sequence, request );
+    chameleon_pzgemm( transA, transB, alpha, A, B, beta, C, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zgeqrf.c b/compute/zgeqrf.c
index 8b5131ca2769821c7bf14c2e317d5dfa22d40fad..67679772b664b810ebc1924919dda4cbe3fe4899 100644
--- a/compute/zgeqrf.c
+++ b/compute/zgeqrf.c
@@ -75,28 +75,28 @@ int CHAMELEON_zgeqrf( int M, int N,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgeqrf", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgeqrf", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if (M < 0) {
-        morse_error("CHAMELEON_zgeqrf", "illegal value of M");
+        chameleon_error("CHAMELEON_zgeqrf", "illegal value of M");
         return -1;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zgeqrf", "illegal value of N");
+        chameleon_error("CHAMELEON_zgeqrf", "illegal value of N");
         return -2;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zgeqrf", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zgeqrf", "illegal value of LDA");
         return -4;
     }
 
@@ -105,36 +105,36 @@ int CHAMELEON_zgeqrf( int M, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on M, N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZGELS, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGELS, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgeqrf", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zgeqrf", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, ChamUpperLower,
                      A, NB, NB, LDA, N, M, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zgeqrf_Tile_Async( &descAt, descT, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descT, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -179,26 +179,26 @@ int CHAMELEON_zgeqrf( int M, int N,
  */
 int CHAMELEON_zgeqrf_Tile( CHAM_desc_t *A, CHAM_desc_t *T )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgeqrf_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgeqrf_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zgeqrf_Tile_Async( A, T, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( T, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -234,20 +234,20 @@ int CHAMELEON_zgeqrf_Tile( CHAM_desc_t *A, CHAM_desc_t *T )
 int CHAMELEON_zgeqrf_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_zgeqrf_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_zgeqrf_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zgeqrf_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zgeqrf_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zgeqrf_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zgeqrf_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -255,22 +255,22 @@ int CHAMELEON_zgeqrf_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgeqrf_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgeqrf_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(T) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgeqrf_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(T) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgeqrf_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_zgeqrf_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgeqrf_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return */
     /*
@@ -280,23 +280,23 @@ int CHAMELEON_zgeqrf_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T,
 #if defined(CHAMELEON_COPY_DIAG)
     {
         int n = chameleon_min(A->mt, A->nt) * A->nb;
-        morse_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
+        chameleon_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
         Dptr = &D;
     }
 #endif
 
-    if (morse->householder == ChamFlatHouseholder) {
-        morse_pzgeqrf( A, T, Dptr, sequence, request );
+    if (chamctxt->householder == ChamFlatHouseholder) {
+        chameleon_pzgeqrf( A, T, Dptr, sequence, request );
     }
     else {
-        morse_pzgeqrfrh( A, T, Dptr, CHAMELEON_RHBLK, sequence, request );
+        chameleon_pzgeqrfrh( A, T, Dptr, CHAMELEON_RHBLK, sequence, request );
     }
     if (Dptr != NULL) {
         CHAMELEON_Desc_Flush( A, sequence );
         CHAMELEON_Desc_Flush( T, sequence );
         CHAMELEON_Desc_Flush( Dptr, sequence );
-        morse_sequence_wait( morse, sequence );
-        morse_desc_mat_free( Dptr );
+        chameleon_sequence_wait( chamctxt, sequence );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/zgeqrf_param.c b/compute/zgeqrf_param.c
index 094d043fd7b108e2d93ca5c38df637662dc07a61..cb728042234d6d746cef095c0613da40ad221315 100644
--- a/compute/zgeqrf_param.c
+++ b/compute/zgeqrf_param.c
@@ -79,28 +79,28 @@ int CHAMELEON_zgeqrf_param( const libhqr_tree_t *qrtree, int M, int N,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgeqrf_param", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgeqrf_param", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if (M < 0) {
-        morse_error("CHAMELEON_zgeqrf_param", "illegal value of M");
+        chameleon_error("CHAMELEON_zgeqrf_param", "illegal value of M");
         return -1;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zgeqrf_param", "illegal value of N");
+        chameleon_error("CHAMELEON_zgeqrf_param", "illegal value of N");
         return -2;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zgeqrf_param", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zgeqrf_param", "illegal value of LDA");
         return -4;
     }
 
@@ -109,37 +109,37 @@ int CHAMELEON_zgeqrf_param( const libhqr_tree_t *qrtree, int M, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on M, N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZGELS, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGELS, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgeqrf_param", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zgeqrf_param", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, ChamUpperLower,
                      A, NB, NB, LDA, N, M, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zgeqrf_param_Tile_Async( qrtree, &descAt, descTS, descTT, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descTS, sequence );
     CHAMELEON_Desc_Flush( descTT, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -188,17 +188,17 @@ int CHAMELEON_zgeqrf_param( const libhqr_tree_t *qrtree, int M, int N,
  */
 int CHAMELEON_zgeqrf_param_Tile( const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgeqrf_param_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgeqrf_param_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zgeqrf_param_Tile_Async( qrtree, A, TS, TT, sequence, &request );
 
@@ -206,9 +206,9 @@ int CHAMELEON_zgeqrf_param_Tile( const libhqr_tree_t *qrtree, CHAM_desc_t *A, CH
     CHAMELEON_Desc_Flush( TS, sequence );
     CHAMELEON_Desc_Flush( TT, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -244,20 +244,20 @@ int CHAMELEON_zgeqrf_param_Tile( const libhqr_tree_t *qrtree, CHAM_desc_t *A, CH
 int CHAMELEON_zgeqrf_param_Tile_Async( const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT,
                                    RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_zgeqrf_param_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_zgeqrf_param_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zgeqrf_param_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zgeqrf_param_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zgeqrf_param_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zgeqrf_param_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -265,26 +265,26 @@ int CHAMELEON_zgeqrf_param_Tile_Async( const libhqr_tree_t *qrtree, CHAM_desc_t
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgeqrf_param_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgeqrf_param_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(TS) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgeqrf_param_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(TS) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgeqrf_param_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(TT) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgeqrf_param_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(TT) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgeqrf_param_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_zgeqrf_param_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgeqrf_param_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return */
     /*
@@ -294,20 +294,20 @@ int CHAMELEON_zgeqrf_param_Tile_Async( const libhqr_tree_t *qrtree, CHAM_desc_t
 #if defined(CHAMELEON_COPY_DIAG)
     {
         int n = chameleon_min(A->mt, A->nt) * A->nb;
-        morse_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
+        chameleon_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
         Dptr = &D;
     }
 #endif
 
-    morse_pzgeqrf_param( qrtree, A, TS, TT, Dptr, sequence, request );
+    chameleon_pzgeqrf_param( qrtree, A, TS, TT, Dptr, sequence, request );
 
     if (Dptr != NULL) {
         CHAMELEON_Desc_Flush( A, sequence );
         CHAMELEON_Desc_Flush( TS, sequence );
         CHAMELEON_Desc_Flush( TT, sequence );
         CHAMELEON_Desc_Flush( Dptr, sequence );
-        morse_sequence_wait( morse, sequence );
-        morse_desc_mat_free( Dptr );
+        chameleon_sequence_wait( chamctxt, sequence );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/zgeqrs.c b/compute/zgeqrs.c
index 86c5dc2e9d71b23c264b999bc8e734cdd34a7dea..4d79422695e0420e4d590fc63c15486d432539de 100644
--- a/compute/zgeqrs.c
+++ b/compute/zgeqrs.c
@@ -83,37 +83,37 @@ int CHAMELEON_zgeqrs( int M, int N, int NRHS,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgeqrs", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgeqrs", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if (M < 0) {
-        morse_error("CHAMELEON_zgeqrs", "illegal value of M");
+        chameleon_error("CHAMELEON_zgeqrs", "illegal value of M");
         return -1;
     }
     if (N < 0 || N > M) {
-        morse_error("CHAMELEON_zgeqrs", "illegal value of N");
+        chameleon_error("CHAMELEON_zgeqrs", "illegal value of N");
         return -2;
     }
     if (NRHS < 0) {
-        morse_error("CHAMELEON_zgeqrs", "illegal value of N");
+        chameleon_error("CHAMELEON_zgeqrs", "illegal value of N");
         return -3;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zgeqrs", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zgeqrs", "illegal value of LDA");
         return -5;
     }
     if (LDB < chameleon_max(1, chameleon_max(1, M))) {
-        morse_error("CHAMELEON_zgeqrs", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zgeqrs", "illegal value of LDB");
         return -8;
     }
     /* Quick return */
@@ -122,41 +122,41 @@ int CHAMELEON_zgeqrs( int M, int N, int NRHS,
     }
 
     /* Tune NB & IB depending on M, N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZGELS, M, N, NRHS);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGELS, M, N, NRHS);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgeqrs", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zgeqrs", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamUpperLower,
                      A, NB, NB, LDA, N, M, N, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, ChamUpperLower,
                      B, NB, NB, LDB, NRHS, M, NRHS, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zgeqrs_Tile_Async( &descAt, descT, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descT, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -200,17 +200,17 @@ int CHAMELEON_zgeqrs( int M, int N, int NRHS,
  */
 int CHAMELEON_zgeqrs_Tile( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgeqrs_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgeqrs_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zgeqrs_Tile_Async( A, T, B, sequence, &request );
 
@@ -218,9 +218,9 @@ int CHAMELEON_zgeqrs_Tile( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B )
     CHAMELEON_Desc_Flush( T, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -259,20 +259,20 @@ int CHAMELEON_zgeqrs_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B,
 {
     CHAM_desc_t *subA;
     CHAM_desc_t *subB;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgeqrs_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgeqrs_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zgeqrs_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zgeqrs_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zgeqrs_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zgeqrs_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -280,26 +280,26 @@ int CHAMELEON_zgeqrs_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgeqrs_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgeqrs_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(T) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgeqrs_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(T) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgeqrs_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgeqrs_Tile", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgeqrs_Tile", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || B->nb != B->mb) {
-        morse_error("CHAMELEON_zgeqrs_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgeqrs_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return */
     /*
@@ -310,21 +310,21 @@ int CHAMELEON_zgeqrs_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B,
 #if defined(CHAMELEON_COPY_DIAG)
     {
         int n = chameleon_min(A->mt, A->nt) * A->nb;
-        morse_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
+        chameleon_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
         Dptr = &D;
     }
 #endif
 
-    if (morse->householder == ChamFlatHouseholder) {
-        morse_pzunmqr( ChamLeft, ChamConjTrans, A, B, T, Dptr, sequence, request );
+    if (chamctxt->householder == ChamFlatHouseholder) {
+        chameleon_pzunmqr( ChamLeft, ChamConjTrans, A, B, T, Dptr, sequence, request );
     }
     else {
-        morse_pzunmqrrh( ChamLeft, ChamConjTrans, A, B, T, Dptr, CHAMELEON_RHBLK, sequence, request );
+        chameleon_pzunmqrrh( ChamLeft, ChamConjTrans, A, B, T, Dptr, CHAMELEON_RHBLK, sequence, request );
     }
 
-    subB = morse_desc_submatrix(B, 0, 0, A->n, B->n);
-    subA = morse_desc_submatrix(A, 0, 0, A->n, A->n);
-    morse_pztrsm( ChamLeft, ChamUpper, ChamNoTrans, ChamNonUnit, 1.0, subA, subB, sequence, request );
+    subB = chameleon_desc_submatrix(B, 0, 0, A->n, B->n);
+    subA = chameleon_desc_submatrix(A, 0, 0, A->n, A->n);
+    chameleon_pztrsm( ChamLeft, ChamUpper, ChamNoTrans, ChamNonUnit, 1.0, subA, subB, sequence, request );
     free(subA);
     free(subB);
 
@@ -333,8 +333,8 @@ int CHAMELEON_zgeqrs_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *B,
         CHAMELEON_Desc_Flush( B, sequence );
         CHAMELEON_Desc_Flush( T, sequence );
         CHAMELEON_Desc_Flush( Dptr, sequence );
-        morse_sequence_wait( morse, sequence );
-        morse_desc_mat_free( Dptr );
+        chameleon_sequence_wait( chamctxt, sequence );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/zgeqrs_param.c b/compute/zgeqrs_param.c
index 1cb8f9c261895518cf173fe3170b0bd4bb570530..66db5b743dc6105af8bff4794e40cd5993db04ec 100644
--- a/compute/zgeqrs_param.c
+++ b/compute/zgeqrs_param.c
@@ -79,37 +79,37 @@ int CHAMELEON_zgeqrs_param( const libhqr_tree_t *qrtree, int M, int N, int NRHS,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgeqrs_param", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgeqrs_param", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if (M < 0) {
-        morse_error("CHAMELEON_zgeqrs_param", "illegal value of M");
+        chameleon_error("CHAMELEON_zgeqrs_param", "illegal value of M");
         return -1;
     }
     if (N < 0 || N > M) {
-        morse_error("CHAMELEON_zgeqrs_param", "illegal value of N");
+        chameleon_error("CHAMELEON_zgeqrs_param", "illegal value of N");
         return -2;
     }
     if (NRHS < 0) {
-        morse_error("CHAMELEON_zgeqrs_param", "illegal value of N");
+        chameleon_error("CHAMELEON_zgeqrs_param", "illegal value of N");
         return -3;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zgeqrs_param", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zgeqrs_param", "illegal value of LDA");
         return -5;
     }
     if (LDB < chameleon_max(1, chameleon_max(1, M))) {
-        morse_error("CHAMELEON_zgeqrs_param", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zgeqrs_param", "illegal value of LDB");
         return -8;
     }
     /* Quick return */
@@ -118,42 +118,42 @@ int CHAMELEON_zgeqrs_param( const libhqr_tree_t *qrtree, int M, int N, int NRHS,
     }
 
     /* Tune NB & IB depending on M, N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZGELS, M, N, NRHS);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGELS, M, N, NRHS);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgeqrs_param", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zgeqrs_param", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamUpperLower,
                      A, NB, NB, LDA, N, M, N, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, ChamUpperLower,
                      B, NB, NB, LDB, NRHS, M, NRHS, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zgeqrs_param_Tile_Async( qrtree, &descAt, descTS, descTT, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descTS, sequence );
     CHAMELEON_Desc_Flush( descTT, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -198,17 +198,17 @@ int CHAMELEON_zgeqrs_param( const libhqr_tree_t *qrtree, int M, int N, int NRHS,
 int CHAMELEON_zgeqrs_param_Tile( const libhqr_tree_t *qrtree, CHAM_desc_t *A,
                              CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *B )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgeqrs_param_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgeqrs_param_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zgeqrs_param_Tile_Async( qrtree, A, TS, TT, B, sequence, &request );
 
@@ -217,9 +217,9 @@ int CHAMELEON_zgeqrs_param_Tile( const libhqr_tree_t *qrtree, CHAM_desc_t *A,
     CHAMELEON_Desc_Flush( TT, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -259,20 +259,20 @@ int CHAMELEON_zgeqrs_param_Tile_Async( const libhqr_tree_t *qrtree,
 {
     CHAM_desc_t *subA;
     CHAM_desc_t *subB;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgeqrs_param_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgeqrs_param_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zgeqrs_param_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zgeqrs_param_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zgeqrs_param_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zgeqrs_param_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -280,30 +280,30 @@ int CHAMELEON_zgeqrs_param_Tile_Async( const libhqr_tree_t *qrtree,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgeqrs_param_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgeqrs_param_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(TS) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgeqrs_param_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(TS) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgeqrs_param_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(TT) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgeqrs_param_Tile", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(TT) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgeqrs_param_Tile", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgeqrs_param_Tile", "invalid fourth descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgeqrs_param_Tile", "invalid fourth descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || B->nb != B->mb) {
-        morse_error("CHAMELEON_zgeqrs_param_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgeqrs_param_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return */
     /*
@@ -314,16 +314,16 @@ int CHAMELEON_zgeqrs_param_Tile_Async( const libhqr_tree_t *qrtree,
 #if defined(CHAMELEON_COPY_DIAG)
     {
         int n = chameleon_min(A->mt, A->nt) * A->nb;
-        morse_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
+        chameleon_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
         Dptr = &D;
     }
 #endif
 
-    subB = morse_desc_submatrix(B, 0, 0, A->n, B->n);
-    subA = morse_desc_submatrix(A, 0, 0, A->n, A->n);
+    subB = chameleon_desc_submatrix(B, 0, 0, A->n, B->n);
+    subA = chameleon_desc_submatrix(A, 0, 0, A->n, A->n);
 
-    morse_pzunmqr_param( qrtree, ChamLeft, ChamConjTrans, A, B, TS, TT, Dptr, sequence, request );
-    morse_pztrsm( ChamLeft, ChamUpper, ChamNoTrans, ChamNonUnit, 1.0, subA, subB, sequence, request );
+    chameleon_pzunmqr_param( qrtree, ChamLeft, ChamConjTrans, A, B, TS, TT, Dptr, sequence, request );
+    chameleon_pztrsm( ChamLeft, ChamUpper, ChamNoTrans, ChamNonUnit, 1.0, subA, subB, sequence, request );
 
     free(subA);
     free(subB);
@@ -334,8 +334,8 @@ int CHAMELEON_zgeqrs_param_Tile_Async( const libhqr_tree_t *qrtree,
         CHAMELEON_Desc_Flush( TS, sequence );
         CHAMELEON_Desc_Flush( TT, sequence );
         CHAMELEON_Desc_Flush( Dptr, sequence );
-        morse_sequence_wait( morse, sequence );
-        morse_desc_mat_free( Dptr );
+        chameleon_sequence_wait( chamctxt, sequence );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/zgesv_incpiv.c b/compute/zgesv_incpiv.c
index b3da516df5a40082a26af680c2eb7b3917809841..90a800eb15bbfd355c3563b9639d3b58b43a2a7a 100644
--- a/compute/zgesv_incpiv.c
+++ b/compute/zgesv_incpiv.c
@@ -89,32 +89,32 @@ int CHAMELEON_zgesv_incpiv( int N, int NRHS,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_zgesv_incpiv", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_zgesv_incpiv", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if (N < 0) {
-        morse_error("CHAMELEON_zgesv_incpiv", "illegal value of N");
+        chameleon_error("CHAMELEON_zgesv_incpiv", "illegal value of N");
         return -1;
     }
     if (NRHS < 0) {
-        morse_error("CHAMELEON_zgesv_incpiv", "illegal value of NRHS");
+        chameleon_error("CHAMELEON_zgesv_incpiv", "illegal value of NRHS");
         return -2;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zgesv_incpiv", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zgesv_incpiv", "illegal value of LDA");
         return -4;
     }
     if (LDB < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zgesv_incpiv", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zgesv_incpiv", "illegal value of LDB");
         return -8;
     }
     /* Quick return */
@@ -122,41 +122,41 @@ int CHAMELEON_zgesv_incpiv( int N, int NRHS,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGESV, N, N, NRHS);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGESV, N, N, NRHS);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgesv_incpiv", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zgesv_incpiv", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT & NTRHS */
     NB    = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, ChamUpperLower,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, ChamUpperLower,
                      B, NB, NB, LDB, NRHS, N, NRHS, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zgesv_incpiv_Tile_Async( &descAt, descL, IPIV, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descL, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 /**
@@ -206,17 +206,17 @@ int CHAMELEON_zgesv_incpiv( int N, int NRHS,
  */
 int CHAMELEON_zgesv_incpiv_Tile( CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV, CHAM_desc_t *B )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgesv_incpiv_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgesv_incpiv_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zgesv_incpiv_Tile_Async( A, L, IPIV, B, sequence, &request );
 
@@ -224,9 +224,9 @@ int CHAMELEON_zgesv_incpiv_Tile( CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV, CHAM
     CHAMELEON_Desc_Flush( L, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -263,20 +263,20 @@ int CHAMELEON_zgesv_incpiv_Tile( CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV, CHAM
 int CHAMELEON_zgesv_incpiv_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV, CHAM_desc_t *B,
                                    RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgesv_incpiv_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgesv_incpiv_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zgesv_incpiv_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zgesv_incpiv_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zgesv_incpiv_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zgesv_incpiv_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -284,26 +284,26 @@ int CHAMELEON_zgesv_incpiv_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgesv_incpiv_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgesv_incpiv_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(L) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgesv_incpiv_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(L) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgesv_incpiv_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgesv_incpiv_Tile", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgesv_incpiv_Tile", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || B->nb != B->mb) {
-        morse_error("CHAMELEON_zgesv_incpiv_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgesv_incpiv_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return */
     /*
@@ -314,24 +314,24 @@ int CHAMELEON_zgesv_incpiv_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV
 #if defined(CHAMELEON_COPY_DIAG)
     {
         int n = chameleon_min(A->mt, A->nt) * A->nb;
-        morse_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
+        chameleon_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
         Dptr = &D;
     }
 #endif
 
-    morse_pzgetrf_incpiv( A, L, Dptr, IPIV, sequence, request );
+    chameleon_pzgetrf_incpiv( A, L, Dptr, IPIV, sequence, request );
 
-    morse_pztrsmpl( A, B, L, IPIV, sequence, request );
+    chameleon_pztrsmpl( A, B, L, IPIV, sequence, request );
 
-    morse_pztrsm( ChamLeft, ChamUpper, ChamNoTrans, ChamNonUnit, (CHAMELEON_Complex64_t)1.0, A, B, sequence, request );
+    chameleon_pztrsm( ChamLeft, ChamUpper, ChamNoTrans, ChamNonUnit, (CHAMELEON_Complex64_t)1.0, A, B, sequence, request );
 
     if (Dptr != NULL) {
         CHAMELEON_Desc_Flush( A, sequence );
         CHAMELEON_Desc_Flush( L, sequence );
         CHAMELEON_Desc_Flush( Dptr, sequence );
         CHAMELEON_Desc_Flush( B, sequence );
-        morse_sequence_wait( morse, sequence );
-        morse_desc_mat_free( Dptr );
+        chameleon_sequence_wait( chamctxt, sequence );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/zgesv_nopiv.c b/compute/zgesv_nopiv.c
index b011dfa1e191f9ef41c4c78ffead042ce1937714..78d7706561d93c0ce828f7909336ff45d845afc9 100644
--- a/compute/zgesv_nopiv.c
+++ b/compute/zgesv_nopiv.c
@@ -87,32 +87,32 @@ int CHAMELEON_zgesv_nopiv( int N, int NRHS,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_zgesv_nopiv", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_zgesv_nopiv", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if (N < 0) {
-        morse_error("CHAMELEON_zgesv_nopiv", "illegal value of N");
+        chameleon_error("CHAMELEON_zgesv_nopiv", "illegal value of N");
         return -1;
     }
     if (NRHS < 0) {
-        morse_error("CHAMELEON_zgesv_nopiv", "illegal value of NRHS");
+        chameleon_error("CHAMELEON_zgesv_nopiv", "illegal value of NRHS");
         return -2;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zgesv_nopiv", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zgesv_nopiv", "illegal value of LDA");
         return -4;
     }
     if (LDB < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zgesv_nopiv", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zgesv_nopiv", "illegal value of LDB");
         return -8;
     }
     /* Quick return */
@@ -120,40 +120,40 @@ int CHAMELEON_zgesv_nopiv( int N, int NRHS,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGESV, N, N, NRHS);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGESV, N, N, NRHS);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgesv_nopiv", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zgesv_nopiv", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT & NTRHS */
     NB    = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, ChamUpperLower,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, ChamUpperLower,
                      B, NB, NB, LDB, NRHS, N, NRHS, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zgesv_nopiv_Tile_Async( &descAt, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 /**
@@ -196,26 +196,26 @@ int CHAMELEON_zgesv_nopiv( int N, int NRHS,
  */
 int CHAMELEON_zgesv_nopiv_Tile( CHAM_desc_t *A, CHAM_desc_t *B )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgesv_nopiv_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgesv_nopiv_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zgesv_nopiv_Tile_Async( A, B, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -252,19 +252,19 @@ int CHAMELEON_zgesv_nopiv_Tile( CHAM_desc_t *A, CHAM_desc_t *B )
 int CHAMELEON_zgesv_nopiv_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *B,
                                   RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgesv_nopiv_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgesv_nopiv_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zgesv_nopiv_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zgesv_nopiv_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zgesv_nopiv_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zgesv_nopiv_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -272,22 +272,22 @@ int CHAMELEON_zgesv_nopiv_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *B,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgesv_nopiv_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgesv_nopiv_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgesv_nopiv_Tile", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgesv_nopiv_Tile", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || B->nb != B->mb) {
-        morse_error("CHAMELEON_zgesv_nopiv_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgesv_nopiv_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return */
     /*
@@ -295,11 +295,11 @@ int CHAMELEON_zgesv_nopiv_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *B,
      return CHAMELEON_SUCCESS;
      */
 
-    morse_pzgetrf_nopiv( A, sequence, request );
+    chameleon_pzgetrf_nopiv( A, sequence, request );
 
-    morse_pztrsm( ChamLeft, ChamLower, ChamNoTrans, ChamUnit, (CHAMELEON_Complex64_t)1.0, A, B, sequence, request );
+    chameleon_pztrsm( ChamLeft, ChamLower, ChamNoTrans, ChamUnit, (CHAMELEON_Complex64_t)1.0, A, B, sequence, request );
 
-    morse_pztrsm( ChamLeft, ChamUpper, ChamNoTrans, ChamNonUnit, (CHAMELEON_Complex64_t)1.0, A, B, sequence, request );
+    chameleon_pztrsm( ChamLeft, ChamUpper, ChamNoTrans, ChamNonUnit, (CHAMELEON_Complex64_t)1.0, A, B, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zgesvd.c b/compute/zgesvd.c
index a9c8ec2344fe13b8df80f71e500abc789ea54399..de759169c0cc9071b4f8f2acdafc954c42983bc3 100644
--- a/compute/zgesvd.c
+++ b/compute/zgesvd.c
@@ -152,44 +152,44 @@ int CHAMELEON_zgesvd( cham_job_t jobu, cham_job_t jobvt,
 {
     int NB;
     int status;
-    CHAM_context_t  *morse;
+    CHAM_context_t  *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t   request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgesvd", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgesvd", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if (jobu != ChamNoVec  && jobu != ChamVec) {
-        morse_error("CHAMELEON_zgesvd", "illegal value of jobu");
+        chameleon_error("CHAMELEON_zgesvd", "illegal value of jobu");
         return -1;
     }
     if (jobvt != ChamNoVec && jobvt != ChamVec) {
-        morse_error("CHAMELEON_zgesvd", "illegal value of jobvt");
+        chameleon_error("CHAMELEON_zgesvd", "illegal value of jobvt");
         return -2;
     }
     if (M < 0) {
-        morse_error("CHAMELEON_zgesvd", "illegal value of M");
+        chameleon_error("CHAMELEON_zgesvd", "illegal value of M");
         return -3;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zgesvd", "illegal value of N");
+        chameleon_error("CHAMELEON_zgesvd", "illegal value of N");
         return -4;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zgesvd", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zgesvd", "illegal value of LDA");
         return -6;
     }
     if (LDU < 1) {
-        morse_error("CHAMELEON_zgesvd", "illegal value of LDU");
+        chameleon_error("CHAMELEON_zgesvd", "illegal value of LDU");
         return -9;
     }
     if (LDVT < 1) {
-        morse_error("CHAMELEON_zgesvd", "illegal value of LDVT");
+        chameleon_error("CHAMELEON_zgesvd", "illegal value of LDVT");
         return -11;
     }
     /* Quick return */
@@ -198,35 +198,35 @@ int CHAMELEON_zgesvd( cham_job_t jobu, cham_job_t jobvt,
     }
 
     /* Tune NB & IB depending on M & N; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGESVD, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGESVD, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgesvd", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zgesvd", "chameleon_tune() failed");
         return status;
     }
 
     /* Set MT, NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, ChamUpperLower,
                      A, NB, NB,  LDA, N, M, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zgesvd_Tile_Async( jobu, jobvt, &descAt, S, descT, U, LDU, VT, LDVT, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -337,26 +337,26 @@ int CHAMELEON_zgesvd_Tile( cham_job_t jobu, cham_job_t jobvt,
                        CHAMELEON_Complex64_t *U, int LDU,
                        CHAMELEON_Complex64_t *VT, int LDVT )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgesvd_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgesvd_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zgesvd_Tile_Async( jobu, jobvt, A, S, T, U, LDU, VT, LDVT, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( T, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -411,19 +411,19 @@ int CHAMELEON_zgesvd_Tile_Async( cham_job_t jobu, cham_job_t jobvt,
     int info = 0;
     char gbbrd_vect;
 
-    CHAM_context_t *morse;
-    morse = morse_context_self();
+    CHAM_context_t *chamctxt;
+    chamctxt = chameleon_context_self();
 
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgesvd_Tile_Async", "CHAMELEON not initialized");
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgesvd_Tile_Async", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zgesvd_Tile_Async", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zgesvd_Tile_Async", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zgesvd_Tile_Async", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zgesvd_Tile_Async", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -431,34 +431,34 @@ int CHAMELEON_zgesvd_Tile_Async( cham_job_t jobu, cham_job_t jobvt,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgesvd_Tile_Async", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgesvd_Tile_Async", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     } else {
         descA = *A;
     }
-    if (morse_desc_check(T) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgesvd_Tile_Async", "invalid fourth descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(T) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgesvd_Tile_Async", "invalid fourth descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     } else {
         descT = *T;
     }
     /* Check input arguments */
     if (jobu != ChamNoVec  && jobu != ChamVec) {
-        morse_error("CHAMELEON_zgesvd_Tile_Async", "illegal value of jobu");
+        chameleon_error("CHAMELEON_zgesvd_Tile_Async", "illegal value of jobu");
         return CHAMELEON_ERR_NOT_SUPPORTED;
     }
     if (jobvt != ChamNoVec && jobvt != ChamVec) {
-        morse_error("CHAMELEON_zgesvd_Tile_Async", "illegal value of jobvt");
+        chameleon_error("CHAMELEON_zgesvd_Tile_Async", "illegal value of jobvt");
         return CHAMELEON_ERR_NOT_SUPPORTED;
     }
     if (descA.nb != descA.mb) {
-        morse_error("CHAMELEON_zgesvd_Tile_Async", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgesvd_Tile_Async", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     M     = descA.m;
@@ -470,16 +470,16 @@ int CHAMELEON_zgesvd_Tile_Async( cham_job_t jobu, cham_job_t jobvt,
 
 #if defined(CHAMELEON_COPY_DIAG)
     {
-        morse_zdesc_alloc(D, A->mb, A->nb, A->m, A->n, 0, 0, A->m, A->n, );
+        chameleon_zdesc_alloc(D, A->mb, A->nb, A->m, A->n, 0, 0, A->m, A->n, );
         Dptr = &D;
     }
 #endif
     /* Reduction to band */
-    morse_pzgebrd_ge2gb( &descA, &descT, Dptr,
+    chameleon_pzgebrd_ge2gb( &descA, &descT, Dptr,
                          sequence, request );
 
     /* Allocate band structure */
-    morse_zdesc_alloc_diag( descAB,
+    chameleon_zdesc_alloc_diag( descAB,
                             LDAB, NB,
                             LDAB, MINMN,
                             0, 0,
@@ -487,13 +487,13 @@ int CHAMELEON_zgesvd_Tile_Async( cham_job_t jobu, cham_job_t jobvt,
                             1, 1 );
 
     /* Convert matrix to band form */
-    morse_pztile2band( uplo,
+    chameleon_pztile2band( uplo,
                        &descA, &descAB,
                        sequence, request );
 
     E = malloc( MINMN * sizeof(double) );
     if (E == NULL) {
-        morse_error("CHAMELEON_zheevd_Tile_Async", "malloc(E) failed");
+        chameleon_error("CHAMELEON_zheevd_Tile_Async", "malloc(E) failed");
         free(E);
         return CHAMELEON_ERR_OUT_OF_RESOURCES;
     }
@@ -535,7 +535,7 @@ int CHAMELEON_zgesvd_Tile_Async( cham_job_t jobu, cham_job_t jobvt,
         }
     }
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     info = LAPACKE_zgbbrd( LAPACK_COL_MAJOR,
                            gbbrd_vect,
@@ -550,72 +550,72 @@ int CHAMELEON_zgesvd_Tile_Async( cham_job_t jobu, cham_job_t jobvt,
         fprintf(stderr, "CHAMELEON_zgesvd_Tile_Async: LAPACKE_zgbbrd = %d\n", info );
     }
 #else
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 #endif /* !defined(CHAMELEON_SIMULATION) */
 
-    morse_desc_mat_free( &descAB );
+    chameleon_desc_mat_free( &descAB );
 
     subA = NULL;
     subT = NULL;
     subUVT = NULL;
 
     if ( jobu != ChamNoVec ) {
-        morse_zlap2tile( morse, &descUl, &descUt, ChamDescInout, ChamUpperLower,
+        chameleon_zlap2tile( chamctxt, &descUl, &descUt, ChamDescInout, ChamUpperLower,
                          U, NB, NB, LDU, M, M, M, sequence, request );
 
         if ( M < N ){
-            subA   = morse_desc_submatrix(&descA,  descA.mb,  0, descA.m -descA.mb,  descA.n-descA.nb);
-            subUVT = morse_desc_submatrix(&descUt, descUt.mb, 0, descUt.m-descUt.mb, descUt.n);
-            subT   = morse_desc_submatrix(&descT,  descT.mb,  0, descT.m -descT.mb,  descT.n-descT.nb);
+            subA   = chameleon_desc_submatrix(&descA,  descA.mb,  0, descA.m -descA.mb,  descA.n-descA.nb);
+            subUVT = chameleon_desc_submatrix(&descUt, descUt.mb, 0, descUt.m-descUt.mb, descUt.n);
+            subT   = chameleon_desc_submatrix(&descT,  descT.mb,  0, descT.m -descT.mb,  descT.n-descT.nb);
 
-            morse_pzunmqr( ChamLeft, ChamNoTrans,
+            chameleon_pzunmqr( ChamLeft, ChamNoTrans,
                            subA, subUVT, subT, Dptr,
                            sequence, request );
 
             free(subA); free(subUVT); free(subT);
         }
         else {
-            morse_pzunmqr( ChamLeft, ChamNoTrans,
+            chameleon_pzunmqr( ChamLeft, ChamNoTrans,
                            &descA, &descUt, &descT, Dptr,
                            sequence, request );
         }
 
-        morse_ztile2lap( morse, &descUl, &descUt,
+        chameleon_ztile2lap( chamctxt, &descUl, &descUt,
                          ChamDescInout, ChamUpperLower, sequence, request );
     }
 
     if ( jobvt != ChamNoVec ) {
-        morse_zlap2tile( morse, &descVTl, &descVTt, ChamDescInout, ChamUpperLower,
+        chameleon_zlap2tile( chamctxt, &descVTl, &descVTt, ChamDescInout, ChamUpperLower,
                          VT, NB, NB, LDVT, N, N, N, sequence, request );
 
         if ( M < N ){
-            morse_pzunmlq( ChamRight, ChamNoTrans,
+            chameleon_pzunmlq( ChamRight, ChamNoTrans,
                            &descA, &descVTt, &descT, Dptr,
                            sequence, request );
         }
         else {
-            subA   = morse_desc_submatrix(&descA,   0, descA.nb,   descA.m-descA.mb, descA.n  -descA.nb  );
-            subUVT = morse_desc_submatrix(&descVTt, 0, descVTt.nb, descVTt.m,        descVTt.n-descVTt.nb);
-            subT   = morse_desc_submatrix(&descT,   0, descT.nb,   descT.m-descT.mb, descT.n  -descT.nb  );
+            subA   = chameleon_desc_submatrix(&descA,   0, descA.nb,   descA.m-descA.mb, descA.n  -descA.nb  );
+            subUVT = chameleon_desc_submatrix(&descVTt, 0, descVTt.nb, descVTt.m,        descVTt.n-descVTt.nb);
+            subT   = chameleon_desc_submatrix(&descT,   0, descT.nb,   descT.m-descT.mb, descT.n  -descT.nb  );
 
-            morse_pzunmlq( ChamRight, ChamNoTrans,
+            chameleon_pzunmlq( ChamRight, ChamNoTrans,
                            subA, subUVT, subT, Dptr,
                            sequence, request );
 
             free(subA); free(subUVT); free(subT);
         }
 
-        morse_ztile2lap( morse, &descVTl, &descVTt,
+        chameleon_ztile2lap( chamctxt, &descVTl, &descVTt,
                          ChamDescInout, ChamUpperLower, sequence, request );
     }
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
     if ( jobu != ChamNoVec ) {
-        morse_ztile2lap_cleanup( morse, &descUl,  &descUt  );
+        chameleon_ztile2lap_cleanup( chamctxt, &descUl,  &descUt  );
     }
     if ( jobvt != ChamNoVec ) {
-        morse_ztile2lap_cleanup( morse, &descVTl, &descVTt );
+        chameleon_ztile2lap_cleanup( chamctxt, &descVTl, &descVTt );
     }
 
     /* Solve the bidiagonal SVD problem */
@@ -632,7 +632,7 @@ int CHAMELEON_zgesvd_Tile_Async( cham_job_t jobu, cham_job_t jobvt,
 
     free(E);
     if ( Dptr ) {
-        morse_desc_mat_free( Dptr );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/zgetrf_incpiv.c b/compute/zgetrf_incpiv.c
index deece1b6a7af0c04557496e3011acc3f3c457150..bdd9c476cf94eb46bf1b4d923df1a8ec7b35bfb6 100644
--- a/compute/zgetrf_incpiv.c
+++ b/compute/zgetrf_incpiv.c
@@ -79,27 +79,27 @@ int CHAMELEON_zgetrf_incpiv( int M, int N,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgetrf_incpiv", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgetrf_incpiv", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if (M < 0) {
-        morse_error("CHAMELEON_zgetrf_incpiv", "illegal value of M");
+        chameleon_error("CHAMELEON_zgetrf_incpiv", "illegal value of M");
         return -1;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zgetrf_incpiv", "illegal value of N");
+        chameleon_error("CHAMELEON_zgetrf_incpiv", "illegal value of N");
         return -2;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zgetrf_incpiv", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zgetrf_incpiv", "illegal value of LDA");
         return -4;
     }
     /* Quick return */
@@ -107,36 +107,36 @@ int CHAMELEON_zgetrf_incpiv( int M, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on M, N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZGESV, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGESV, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgetrf_incpiv", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zgetrf_incpiv", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT & NTRHS */
     NB   = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, ChamUpperLower,
                      A, NB, NB, LDA, N, M, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zgetrf_incpiv_Tile_Async( &descAt, descL, IPIV, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descL, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -184,26 +184,26 @@ int CHAMELEON_zgetrf_incpiv( int M, int N,
  */
 int CHAMELEON_zgetrf_incpiv_Tile( CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgetrf_incpiv_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgetrf_incpiv_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zgetrf_incpiv_Tile_Async( A, L, IPIV, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( L, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -239,20 +239,20 @@ int CHAMELEON_zgetrf_incpiv_Tile( CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV )
 int CHAMELEON_zgetrf_incpiv_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV,
                                     RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgetrf_incpiv_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgetrf_incpiv_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zgetrf_incpiv_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zgetrf_incpiv_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zgetrf_incpiv_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zgetrf_incpiv_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -260,22 +260,22 @@ int CHAMELEON_zgetrf_incpiv_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *L, int *IPI
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgetrf_incpiv_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgetrf_incpiv_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(L) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgetrf_incpiv_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(L) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgetrf_incpiv_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_zgetrf_incpiv_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgetrf_incpiv_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return */
     /*
@@ -286,19 +286,19 @@ int CHAMELEON_zgetrf_incpiv_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *L, int *IPI
 #if defined(CHAMELEON_COPY_DIAG)
     {
         int n = chameleon_min(A->mt, A->nt) * A->nb;
-        morse_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
+        chameleon_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
         Dptr = &D;
     }
 #endif
 
-    morse_pzgetrf_incpiv( A, L, Dptr, IPIV, sequence, request );
+    chameleon_pzgetrf_incpiv( A, L, Dptr, IPIV, sequence, request );
 
     if (Dptr != NULL) {
         CHAMELEON_Desc_Flush( A, sequence );
         CHAMELEON_Desc_Flush( L, sequence );
         CHAMELEON_Desc_Flush( Dptr, sequence );
-        morse_sequence_wait( morse, sequence );
-        morse_desc_mat_free( Dptr );
+        chameleon_sequence_wait( chamctxt, sequence );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/zgetrf_nopiv.c b/compute/zgetrf_nopiv.c
index ffc5c9d9f6ee2909208fc18e2589e5c3385026d4..bcb7d27cc525d1bb94dc4a4a1733f2bc2fd4a25a 100644
--- a/compute/zgetrf_nopiv.c
+++ b/compute/zgetrf_nopiv.c
@@ -73,26 +73,26 @@ int CHAMELEON_zgetrf_nopiv( int M, int N,
     int NB;
     int status;
     CHAM_desc_t descAl, descAt;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgetrf_nopiv", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgetrf_nopiv", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if (M < 0) {
-        morse_error("CHAMELEON_zgetrf_nopiv", "illegal value of M");
+        chameleon_error("CHAMELEON_zgetrf_nopiv", "illegal value of M");
         return -1;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zgetrf_nopiv", "illegal value of N");
+        chameleon_error("CHAMELEON_zgetrf_nopiv", "illegal value of N");
         return -2;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zgetrf_nopiv", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zgetrf_nopiv", "illegal value of LDA");
         return -4;
     }
     /* Quick return */
@@ -100,35 +100,35 @@ int CHAMELEON_zgetrf_nopiv( int M, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on M, N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZGESV, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGESV, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgetrf_nopiv", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zgetrf_nopiv", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT & NTRHS */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, ChamUpperLower,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zgetrf_nopiv_Tile_Async( &descAt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
 
     return status;
 }
@@ -169,25 +169,25 @@ int CHAMELEON_zgetrf_nopiv( int M, int N,
  */
 int CHAMELEON_zgetrf_nopiv_Tile( CHAM_desc_t *A )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgetrf_nopiv_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgetrf_nopiv_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zgetrf_nopiv_Tile_Async( A, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -228,19 +228,19 @@ int CHAMELEON_zgetrf_nopiv_Tile_Async( CHAM_desc_t *A,
                                    RUNTIME_sequence_t *sequence,
                                    RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgetrf_nopiv_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgetrf_nopiv_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zgetrf_nopiv_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zgetrf_nopiv_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zgetrf_nopiv_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zgetrf_nopiv_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -248,22 +248,22 @@ int CHAMELEON_zgetrf_nopiv_Tile_Async( CHAM_desc_t *A,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgetrf_nopiv_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgetrf_nopiv_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_zgetrf_nopiv_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgetrf_nopiv_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
-    morse_pzgetrf_nopiv( A, sequence, request );
+    chameleon_pzgetrf_nopiv( A, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zgetrs_incpiv.c b/compute/zgetrs_incpiv.c
index caa4c5a792a8afaaf3565dc22f337b979d6e7db1..b9abc9cdff7d4770347479aef828228113269fb1 100644
--- a/compute/zgetrs_incpiv.c
+++ b/compute/zgetrs_incpiv.c
@@ -90,36 +90,36 @@ int CHAMELEON_zgetrs_incpiv( cham_trans_t trans, int N, int NRHS,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgetrs_incpiv", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgetrs_incpiv", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if (trans != ChamNoTrans) {
-        morse_error("CHAMELEON_zgetrs_incpiv", "only ChamNoTrans supported");
+        chameleon_error("CHAMELEON_zgetrs_incpiv", "only ChamNoTrans supported");
         return CHAMELEON_ERR_NOT_SUPPORTED;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zgetrs_incpiv", "illegal value of N");
+        chameleon_error("CHAMELEON_zgetrs_incpiv", "illegal value of N");
         return -2;
     }
     if (NRHS < 0) {
-        morse_error("CHAMELEON_zgetrs_incpiv", "illegal value of NRHS");
+        chameleon_error("CHAMELEON_zgetrs_incpiv", "illegal value of NRHS");
         return -3;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zgetrs_incpiv", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zgetrs_incpiv", "illegal value of LDA");
         return -5;
     }
     if (LDB < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zgetrs_incpiv", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zgetrs_incpiv", "illegal value of LDB");
         return -9;
     }
     /* Quick return */
@@ -127,41 +127,41 @@ int CHAMELEON_zgetrs_incpiv( cham_trans_t trans, int N, int NRHS,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZGESV, N, N, NRHS);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGESV, N, N, NRHS);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgetrs_incpiv", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zgetrs_incpiv", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT & NTRHS */
     NB    = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamUpperLower,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, ChamUpperLower,
                      B, NB, NB, LDB, NRHS, N, NRHS, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zgetrs_incpiv_Tile_Async( &descAt, descL, IPIV, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descL, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -209,17 +209,17 @@ int CHAMELEON_zgetrs_incpiv( cham_trans_t trans, int N, int NRHS,
  */
 int CHAMELEON_zgetrs_incpiv_Tile( CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV, CHAM_desc_t *B )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgetrs_incpiv_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgetrs_incpiv_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zgetrs_incpiv_Tile_Async( A, L, IPIV, B, sequence, &request );
 
@@ -227,9 +227,9 @@ int CHAMELEON_zgetrs_incpiv_Tile( CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV, CHA
     CHAMELEON_Desc_Flush( L, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -266,19 +266,19 @@ int CHAMELEON_zgetrs_incpiv_Tile( CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV, CHA
 int CHAMELEON_zgetrs_incpiv_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV, CHAM_desc_t *B,
                                     RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgetrs_incpiv_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgetrs_incpiv_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zgetrs_incpiv_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zgetrs_incpiv_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zgetrs_incpiv_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zgetrs_incpiv_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -286,35 +286,35 @@ int CHAMELEON_zgetrs_incpiv_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *L, int *IPI
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgetrs_incpiv_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgetrs_incpiv_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(L) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgetrs_incpiv_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(L) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgetrs_incpiv_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgetrs_incpiv_Tile", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgetrs_incpiv_Tile", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || B->nb != B->mb) {
-        morse_error("CHAMELEON_zgetrs_incpiv_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgetrs_incpiv_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return */
     /*
      if (chameleon_min(N, NRHS) == 0)
      return CHAMELEON_SUCCESS;
      */
-    morse_pztrsmpl( A, B, L, IPIV, sequence, request );
+    chameleon_pztrsmpl( A, B, L, IPIV, sequence, request );
 
-    morse_pztrsm( ChamLeft, ChamUpper, ChamNoTrans, ChamNonUnit, 1.0, A, B, sequence, request );
+    chameleon_pztrsm( ChamLeft, ChamUpper, ChamNoTrans, ChamNonUnit, 1.0, A, B, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zgetrs_nopiv.c b/compute/zgetrs_nopiv.c
index 84942e8614c4c356490bde5096ff8e8a256c48ab..f38fb1025e806f920c9f658191a7a15f758f218f 100644
--- a/compute/zgetrs_nopiv.c
+++ b/compute/zgetrs_nopiv.c
@@ -84,36 +84,36 @@ int CHAMELEON_zgetrs_nopiv( cham_trans_t trans, int N, int NRHS,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgetrs_nopiv", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgetrs_nopiv", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if (trans != ChamNoTrans) {
-        morse_error("CHAMELEON_zgetrs_nopiv", "only ChamNoTrans supported");
+        chameleon_error("CHAMELEON_zgetrs_nopiv", "only ChamNoTrans supported");
         return CHAMELEON_ERR_NOT_SUPPORTED;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zgetrs_nopiv", "illegal value of N");
+        chameleon_error("CHAMELEON_zgetrs_nopiv", "illegal value of N");
         return -2;
     }
     if (NRHS < 0) {
-        morse_error("CHAMELEON_zgetrs_nopiv", "illegal value of NRHS");
+        chameleon_error("CHAMELEON_zgetrs_nopiv", "illegal value of NRHS");
         return -3;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zgetrs_nopiv", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zgetrs_nopiv", "illegal value of LDA");
         return -5;
     }
     if (LDB < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zgetrs_nopiv", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zgetrs_nopiv", "illegal value of LDB");
         return -9;
     }
     /* Quick return */
@@ -121,40 +121,40 @@ int CHAMELEON_zgetrs_nopiv( cham_trans_t trans, int N, int NRHS,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZGESV, N, N, NRHS);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGESV, N, N, NRHS);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgetrs_nopiv", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zgetrs_nopiv", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT & NTRHS */
     NB    = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamUpperLower,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, ChamUpperLower,
                      B, NB, NB, LDB, NRHS, N, NRHS, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zgetrs_nopiv_Tile_Async( &descAt, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -196,26 +196,26 @@ int CHAMELEON_zgetrs_nopiv( cham_trans_t trans, int N, int NRHS,
  */
 int CHAMELEON_zgetrs_nopiv_Tile( CHAM_desc_t *A, CHAM_desc_t *B )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgetrs_nopiv_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgetrs_nopiv_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zgetrs_nopiv_Tile_Async( A, B, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -252,19 +252,19 @@ int CHAMELEON_zgetrs_nopiv_Tile( CHAM_desc_t *A, CHAM_desc_t *B )
 int CHAMELEON_zgetrs_nopiv_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *B,
                                    RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zgetrs_nopiv_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zgetrs_nopiv_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zgetrs_nopiv_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zgetrs_nopiv_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zgetrs_nopiv_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zgetrs_nopiv_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -272,31 +272,31 @@ int CHAMELEON_zgetrs_nopiv_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *B,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgetrs_nopiv_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgetrs_nopiv_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zgetrs_nopiv_Tile", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zgetrs_nopiv_Tile", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || B->nb != B->mb) {
-        morse_error("CHAMELEON_zgetrs_nopiv_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zgetrs_nopiv_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return */
     /*
      if (chameleon_min(N, NRHS) == 0)
      return CHAMELEON_SUCCESS;
      */
-    morse_pztrsm( ChamLeft, ChamLower, ChamNoTrans, ChamUnit, (CHAMELEON_Complex64_t)1.0, A, B, sequence, request );
+    chameleon_pztrsm( ChamLeft, ChamLower, ChamNoTrans, ChamUnit, (CHAMELEON_Complex64_t)1.0, A, B, sequence, request );
 
-    morse_pztrsm( ChamLeft, ChamUpper, ChamNoTrans, ChamNonUnit, (CHAMELEON_Complex64_t)1.0, A, B, sequence, request );
+    chameleon_pztrsm( ChamLeft, ChamUpper, ChamNoTrans, ChamNonUnit, (CHAMELEON_Complex64_t)1.0, A, B, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zheevd.c b/compute/zheevd.c
index 147ef29d50b74a8df5b86dcecb995dc65843784c..a203a877cd56b10f0753a7d22faac68aa2bf13ae 100644
--- a/compute/zheevd.c
+++ b/compute/zheevd.c
@@ -102,32 +102,32 @@ int CHAMELEON_zheevd( cham_job_t jobz, cham_uplo_t uplo, int N,
 {
     int NB;
     int status;
-    CHAM_context_t  *morse;
+    CHAM_context_t  *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t   request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zheevd", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zheevd", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if (jobz != ChamNoVec && jobz != ChamVec) {
-        morse_error("CHAMELEON_zheevd", "illegal value of jobz");
+        chameleon_error("CHAMELEON_zheevd", "illegal value of jobz");
         return -1;
     }
     if ((uplo != ChamLower) && (uplo != ChamUpper)) {
-        morse_error("CHAMELEON_zheevd", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zheevd", "illegal value of uplo");
         return -2;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zheevd", "illegal value of N");
+        chameleon_error("CHAMELEON_zheevd", "illegal value of N");
         return -3;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zheevd", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zheevd", "illegal value of LDA");
         return -5;
     }
 
@@ -136,35 +136,35 @@ int CHAMELEON_zheevd( cham_job_t jobz, cham_uplo_t uplo, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on N; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZHEEVD, N, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZHEEVD, N, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zheevd", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zheevd", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, uplo,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zheevd_Tile_Async( jobz, uplo, &descAt, W, descT, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, uplo, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 /**
@@ -238,26 +238,26 @@ int CHAMELEON_zheevd( cham_job_t jobz, cham_uplo_t uplo, int N,
 int CHAMELEON_zheevd_Tile( cham_job_t jobz, cham_uplo_t uplo,
                        CHAM_desc_t *A, double *W, CHAM_desc_t *T )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zheevd_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zheevd_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zheevd_Tile_Async( jobz, uplo, A, W, T, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( T, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -331,7 +331,7 @@ int CHAMELEON_zheevd_Tile_Async( cham_job_t jobz, cham_uplo_t uplo,
                              CHAM_desc_t *A, double *W, CHAM_desc_t *T,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t descA;
     CHAM_desc_t descT;
     CHAM_desc_t D, *Dptr = NULL;
@@ -343,17 +343,17 @@ int CHAMELEON_zheevd_Tile_Async( cham_job_t jobz, cham_uplo_t uplo,
     CHAM_desc_t descVl, descVt;
     CHAM_desc_t *subA, *subQ, *subT;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zheevd_Tile_Async", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zheevd_Tile_Async", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zheevd_Tile_Async", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zheevd_Tile_Async", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zheevd_Tile_Async", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zheevd_Tile_Async", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -361,38 +361,38 @@ int CHAMELEON_zheevd_Tile_Async( cham_job_t jobz, cham_uplo_t uplo,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zheevd_Tile_Async", "invalid descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zheevd_Tile_Async", "invalid descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     } else {
         descA = *A;
     }
-    if (morse_desc_check(T) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zheevd_Tile_Async", "invalid descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(T) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zheevd_Tile_Async", "invalid descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     } else {
         descT = *T;
     }
     /* Check input arguments */
     if (jobz != ChamNoVec && jobz != ChamVec) {
-        morse_error("CHAMELEON_zheevd_Tile_Async", "illegal value of jobz");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zheevd_Tile_Async", "illegal value of jobz");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((uplo != ChamLower) && (uplo != ChamUpper)) {
-        morse_error("CHAMELEON_zheevd_Tile_Async", "illegal value of uplo");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zheevd_Tile_Async", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if (descA.m != descA.n) {
-        morse_error("CHAMELEON_zheevd_Tile_Async", "matrix need to be square");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zheevd_Tile_Async", "matrix need to be square");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if (descA.nb != descA.mb) {
-        morse_error("CHAMELEON_zheevd_Tile_Async", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zheevd_Tile_Async", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     N  = descA.m;
@@ -401,7 +401,7 @@ int CHAMELEON_zheevd_Tile_Async( cham_job_t jobz, cham_uplo_t uplo,
     /* Allocate data structures for reduction to tridiagonal form */
     E = malloc( (N - 1) * sizeof(double) );
     if (E == NULL) {
-        morse_error("CHAMELEON_zheevd_Tile_Async", "malloc(E) failed");
+        chameleon_error("CHAMELEON_zheevd_Tile_Async", "malloc(E) failed");
         free(E);
         return CHAMELEON_ERR_OUT_OF_RESOURCES;
     }
@@ -418,18 +418,18 @@ int CHAMELEON_zheevd_Tile_Async( cham_job_t jobz, cham_uplo_t uplo,
                                       Q2, N,
                                       sequence, request );
     if (status != 0) {
-        morse_error("CHAMELEON_zheevd_Tile", "CHAMELEON_zhetrd failed");
+        chameleon_error("CHAMELEON_zheevd_Tile", "CHAMELEON_zhetrd failed");
     }
 
     if (jobz == ChamNoVec){
 #if !defined(CHAMELEON_SIMULATION)
         /* Tridiagonal eigensolver */
         status = LAPACKE_zstedc( LAPACK_COL_MAJOR,
-                                 morse_lapack_const(jobz),
+                                 chameleon_lapack_const(jobz),
                                  N, W, E,
                                  NULL, N );
         if (status != 0) {
-            morse_error("CHAMELEON_zheevd_Tile_Async", "LAPACKE_zstedc failed");
+            chameleon_error("CHAMELEON_zheevd_Tile_Async", "LAPACKE_zstedc failed");
         }
 #endif /* !defined(CHAMELEON_SIMULATION) */
         free(E);
@@ -438,7 +438,7 @@ int CHAMELEON_zheevd_Tile_Async( cham_job_t jobz, cham_uplo_t uplo,
 
     V = malloc( N * N * sizeof(CHAMELEON_Complex64_t) );
     if (V == NULL) {
-        morse_error("CHAMELEON_zheevd_Tile_Async", "malloc(V) failed");
+        chameleon_error("CHAMELEON_zheevd_Tile_Async", "malloc(V) failed");
         free(V);
         return CHAMELEON_ERR_OUT_OF_RESOURCES;
     }
@@ -451,11 +451,11 @@ int CHAMELEON_zheevd_Tile_Async( cham_job_t jobz, cham_uplo_t uplo,
      */
 #if !defined(CHAMELEON_SIMULATION)
     status = LAPACKE_zstedc( LAPACK_COL_MAJOR,
-                             morse_lapack_const(ChamIvec),
+                             chameleon_lapack_const(ChamIvec),
                              N, W, E,
                              V, N );
     if (status != 0) {
-        morse_error("CHAMELEON_zheevd_Tile_Async", "LAPACKE_zstedc failed");
+        chameleon_error("CHAMELEON_zheevd_Tile_Async", "LAPACKE_zstedc failed");
     }
 #endif /* !defined(CHAMELEON_SIMULATION) */
 
@@ -464,10 +464,10 @@ int CHAMELEON_zheevd_Tile_Async( cham_job_t jobz, cham_uplo_t uplo,
     /* Q   from CHAMELEON_zhetrd   refers to Q2 (lapack layout) */
     /* V   from LAPACKE_zstedc refers to V  (lapack layout) */
     /* The final eigenvectors are (Q1 Q2 V) or (Q1^h Q2 V)  */
-    morse_zlap2tile( morse, &descQ2l, &descQ2t, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descQ2l, &descQ2t, ChamDescInput, ChamUpperLower,
                      Q2, NB, NB, N, N, N, N, sequence, request );
 
-    morse_zlap2tile( morse, &descVl, &descVt, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descVl, &descVt, ChamDescInput, ChamUpperLower,
                      V, NB, NB, N, N, N, N, sequence, request );
 
     if (uplo == ChamLower)
@@ -475,21 +475,21 @@ int CHAMELEON_zheevd_Tile_Async( cham_job_t jobz, cham_uplo_t uplo,
 #if defined(CHAMELEON_COPY_DIAG)
         {
             int n = chameleon_min(A->mt, A->nt) * A->nb;
-            morse_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
+            chameleon_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
             Dptr = &D;
         }
 #endif
-        subA = morse_desc_submatrix(&descA,   descA.mb,   0, descA.m  -descA.mb,   descA.n-descA.nb);
-        subQ = morse_desc_submatrix(&descQ2t, descQ2t.mb, 0, descQ2t.m-descQ2t.mb, descQ2t.n );
-        subT = morse_desc_submatrix(&descT,   descT.mb,   0, descT.m  -descT.mb,   descT.n-descT.nb);
+        subA = chameleon_desc_submatrix(&descA,   descA.mb,   0, descA.m  -descA.mb,   descA.n-descA.nb);
+        subQ = chameleon_desc_submatrix(&descQ2t, descQ2t.mb, 0, descQ2t.m-descQ2t.mb, descQ2t.n );
+        subT = chameleon_desc_submatrix(&descT,   descT.mb,   0, descT.m  -descT.mb,   descT.n-descT.nb);
 
         /* Compute Q2 = Q1 * Q2 */
-        morse_pzunmqr( ChamLeft, ChamNoTrans,
+        chameleon_pzunmqr( ChamLeft, ChamNoTrans,
                        subA, subQ, subT, Dptr,
                        sequence, request );
 
         /* Compute the final eigenvectors A = (Q1 * Q2) * V */
-        morse_pzgemm( ChamNoTrans, ChamNoTrans,
+        chameleon_pzgemm( ChamNoTrans, ChamNoTrans,
                       1.0, &descQ2t, &descVt,
                       0.0, &descA,
                       sequence, request );
@@ -499,43 +499,43 @@ int CHAMELEON_zheevd_Tile_Async( cham_job_t jobz, cham_uplo_t uplo,
 #if defined(CHAMELEON_COPY_DIAG)
         {
             int m = chameleon_min(A->mt, A->nt) * A->mb;
-            morse_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
+            chameleon_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
             Dptr = &D;
         }
 #endif
-        subA = morse_desc_submatrix(&descA,   0,   descA.nb, descA.m  -descA.mb,   descA.n -descA.nb );
-        subQ = morse_desc_submatrix(&descQ2t, descQ2t.mb, 0, descQ2t.m-descQ2t.mb, descQ2t.n );
-        subT = morse_desc_submatrix(&descT,   0,   descT.nb, descT.m  -descT.mb,   descT.n -descT.nb );
+        subA = chameleon_desc_submatrix(&descA,   0,   descA.nb, descA.m  -descA.mb,   descA.n -descA.nb );
+        subQ = chameleon_desc_submatrix(&descQ2t, descQ2t.mb, 0, descQ2t.m-descQ2t.mb, descQ2t.n );
+        subT = chameleon_desc_submatrix(&descT,   0,   descT.nb, descT.m  -descT.mb,   descT.n -descT.nb );
 
         /* Compute Q2 = Q1^h * Q2 */
-        morse_pzunmlq( ChamLeft, ChamConjTrans,
+        chameleon_pzunmlq( ChamLeft, ChamConjTrans,
                        subA, subQ, subT, Dptr,
                        sequence, request );
 
         /* Compute the final eigenvectors A =  (Q1^h * Q2) * V */
-        morse_pzgemm( ChamNoTrans, ChamNoTrans,
+        chameleon_pzgemm( ChamNoTrans, ChamNoTrans,
                       1.0, &descQ2t, &descVt,
                       0.0, &descA,
                       sequence, request );
     }
 
-    morse_ztile2lap( morse, &descQ2l, &descQ2t,
+    chameleon_ztile2lap( chamctxt, &descQ2l, &descQ2t,
                      ChamDescInput, ChamUpperLower, sequence, request );
-    morse_ztile2lap( morse, &descVl, &descVt,
+    chameleon_ztile2lap( chamctxt, &descVl, &descVt,
                      ChamDescInput, ChamUpperLower, sequence, request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descQ2l, &descQ2t );
-    morse_ztile2lap_cleanup( morse, &descVl, &descVt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descQ2l, &descQ2t );
+    chameleon_ztile2lap_cleanup( chamctxt, &descVl, &descVt );
 
     free(subA); free(subQ); free(subT);
     free(Q2);
     free(V);
     free(E);
     if (Dptr != NULL) {
-        morse_desc_mat_free( Dptr );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/zhemm.c b/compute/zhemm.c
index fc18bffd99c9864eaff675b5f99ce48346bdf4f4..55c1332f44df4076960b02256f755bd3b1ce2d5a 100644
--- a/compute/zhemm.c
+++ b/compute/zhemm.c
@@ -112,44 +112,44 @@ int CHAMELEON_zhemm( cham_side_t side, cham_uplo_t uplo, int M, int N,
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
     CHAM_desc_t descCl, descCt;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zhemm", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zhemm", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if ( (side != ChamLeft) && (side != ChamRight) ){
-        morse_error("CHAMELEON_zhemm", "illegal value of side");
+        chameleon_error("CHAMELEON_zhemm", "illegal value of side");
         return -1;
     }
     if ((uplo != ChamLower) && (uplo != ChamUpper)) {
-        morse_error("CHAMELEON_zhemm", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zhemm", "illegal value of uplo");
         return -2;
     }
     Am = ( side == ChamLeft ) ? M : N;
     if (M < 0) {
-        morse_error("CHAMELEON_zhemm", "illegal value of M");
+        chameleon_error("CHAMELEON_zhemm", "illegal value of M");
         return -3;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zhemm", "illegal value of N");
+        chameleon_error("CHAMELEON_zhemm", "illegal value of N");
         return -4;
     }
     if (LDA < chameleon_max(1, Am)) {
-        morse_error("CHAMELEON_zhemm", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zhemm", "illegal value of LDA");
         return -7;
     }
     if (LDB < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zhemm", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zhemm", "illegal value of LDB");
         return -9;
     }
     if (LDC < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zhemm", "illegal value of LDC");
+        chameleon_error("CHAMELEON_zhemm", "illegal value of LDC");
         return -12;
     }
 
@@ -159,45 +159,45 @@ int CHAMELEON_zhemm( cham_side_t side, cham_uplo_t uplo, int M, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZHEMM, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZHEMM, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zhemm", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zhemm", "chameleon_tune() failed");
         return status;
     }
 
     /* Set MT & NT & KT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, uplo,
                      A, NB, NB, LDA, Am, Am, Am, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInput, ChamUpperLower,
                      B, NB, NB, LDB, N, M,  N, sequence, &request );
-    morse_zlap2tile( morse, &descCl, &descCt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descCl, &descCt, ChamDescInout, ChamUpperLower,
                      C, NB, NB, LDC, N, M,  N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zhemm_Tile_Async(  side, uplo, alpha, &descAt, &descBt, beta, &descCt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, uplo, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInput, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descCl, &descCt,
+    chameleon_ztile2lap( chamctxt, &descCl, &descCt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
-    morse_ztile2lap_cleanup( morse, &descCl, &descCt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descCl, &descCt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -264,17 +264,17 @@ int CHAMELEON_zhemm_Tile( cham_side_t side, cham_uplo_t uplo,
                       CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B,
                       CHAMELEON_Complex64_t beta,  CHAM_desc_t *C )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zhemm_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zhemm_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zhemm_Tile_Async(side, uplo, alpha, A, B, beta, C, sequence, &request );
 
@@ -282,9 +282,9 @@ int CHAMELEON_zhemm_Tile( cham_side_t side, cham_uplo_t uplo,
     CHAMELEON_Desc_Flush( B, sequence );
     CHAMELEON_Desc_Flush( C, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -321,19 +321,19 @@ int CHAMELEON_zhemm_Tile_Async( cham_side_t side, cham_uplo_t uplo,
                             CHAMELEON_Complex64_t beta,  CHAM_desc_t *C,
                             RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zhemm_Tile_Async", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zhemm_Tile_Async", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zhemm_Tile_Async", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zhemm_Tile_Async", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zhemm_Tile_Async", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zhemm_Tile_Async", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -341,72 +341,72 @@ int CHAMELEON_zhemm_Tile_Async( cham_side_t side, cham_uplo_t uplo,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zhemm_Tile_Async", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zhemm_Tile_Async", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zhemm_Tile_Async", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zhemm_Tile_Async", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(C) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zhemm_Tile_Async", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(C) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zhemm_Tile_Async", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if ( (side != ChamLeft) && (side != ChamRight) ){
-        morse_error("CHAMELEON_zhemm_Tile_Async", "illegal value of side");
-        return morse_request_fail(sequence, request, -1);
+        chameleon_error("CHAMELEON_zhemm_Tile_Async", "illegal value of side");
+        return chameleon_request_fail(sequence, request, -1);
     }
     if ((uplo != ChamLower) && (uplo != ChamUpper)) {
-        morse_error("CHAMELEON_zhemm_Tile_Async", "illegal value of uplo");
-        return morse_request_fail(sequence, request, -2);
+        chameleon_error("CHAMELEON_zhemm_Tile_Async", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, -2);
     }
 
     /* Check matrices sizes */
     if ( (B->m != C->m) || (B->n != C->n) ) {
-        morse_error("CHAMELEON_zhemm_Tile_Async", "B and C must have the same size");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zhemm_Tile_Async", "B and C must have the same size");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (A->m != A->n) ||
          ( (side == ChamLeft)  && (A->m != B->m ) ) ||
          ( (side == ChamRight) && (A->m != B->n ) ) ) {
-        morse_error("CHAMELEON_zhemm_Tile_Async", "Matrix A must be square of size M or N regarding side.");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zhemm_Tile_Async", "Matrix A must be square of size M or N regarding side.");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     /* Check tiles sizes */
     if ( (B->mb != C->mb) || (B->nb != C->nb) ) {
-        morse_error("CHAMELEON_zhemm_Tile_Async", "B and C must have the same tile sizes");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zhemm_Tile_Async", "B and C must have the same tile sizes");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (A->mb != A->nb) ||
          ( (side == ChamLeft)  && (A->mb != B->mb ) ) ||
          ( (side == ChamRight) && (A->mb != B->nb ) ) ) {
-        morse_error("CHAMELEON_zhemm_Tile_Async", "Matrix A must be square with square tiles wich fits the reagding tile size of B and C");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zhemm_Tile_Async", "Matrix A must be square with square tiles wich fits the reagding tile size of B and C");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     /* Check submatrix starting point */
     /* if ( (B->i != C->i) || (B->j != C->j) ) { */
-    /*     morse_error("CHAMELEON_zhemm_Tile_Async", "B and C submatrices doesn't match"); */
-    /*     return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE); */
+    /*     chameleon_error("CHAMELEON_zhemm_Tile_Async", "B and C submatrices doesn't match"); */
+    /*     return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE); */
     /* } */
     /* if ( (A->i != A->j) ||  */
     /*          ( (side == ChamLeft)  && (A->i != B->i ) ) ||  */
     /*          ( (side == ChamRight) && (A->i != B->j ) ) ) { */
-    /*     morse_error("CHAMELEON_zhemm_Tile_Async", "Submatrix A must start on diagnonal and match submatrices B and C."); */
-    /*     return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE); */
+    /*     chameleon_error("CHAMELEON_zhemm_Tile_Async", "Submatrix A must start on diagnonal and match submatrices B and C."); */
+    /*     return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE); */
     /* } */
     if( (A->i != 0) || (A->j != 0) ||
         (B->i != 0) || (B->j != 0) ||
         (C->i != 0) || (C->j != 0) ) {
-        morse_error("CHAMELEON_zhemm_Tile_Async", "Submatrices are not supported for now");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zhemm_Tile_Async", "Submatrices are not supported for now");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     /* Quick return */
@@ -416,7 +416,7 @@ int CHAMELEON_zhemm_Tile_Async( cham_side_t side, cham_uplo_t uplo,
         return CHAMELEON_SUCCESS;
     }
 
-    morse_pzhemm( side, uplo, alpha, A, B, beta, C, sequence, request );
+    chameleon_pzhemm( side, uplo, alpha, A, B, beta, C, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zher2k.c b/compute/zher2k.c
index b25aca5aeb963ec7a5a69f7a01aa6ec28f6cf1ba..6baf15273ca7afebf430fa66d3c519bf775bb785 100644
--- a/compute/zher2k.c
+++ b/compute/zher2k.c
@@ -113,23 +113,23 @@ int CHAMELEON_zher2k( cham_uplo_t uplo, cham_trans_t trans, int N, int K,
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
     CHAM_desc_t descCl, descCt;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zher2k", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zher2k", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zher2k", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zher2k", "illegal value of uplo");
         return -1;
     }
     if ((trans != ChamNoTrans) && (trans != ChamConjTrans)) {
-        morse_error("CHAMELEON_zher2k", "illegal value of trans");
+        chameleon_error("CHAMELEON_zher2k", "illegal value of trans");
         return -2;
     }
     if ( trans == ChamNoTrans ) {
@@ -138,23 +138,23 @@ int CHAMELEON_zher2k( cham_uplo_t uplo, cham_trans_t trans, int N, int K,
         Am = K; An = N;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zher2k", "illegal value of N");
+        chameleon_error("CHAMELEON_zher2k", "illegal value of N");
         return -3;
     }
     if (K < 0) {
-        morse_error("CHAMELEON_zher2k", "illegal value of K");
+        chameleon_error("CHAMELEON_zher2k", "illegal value of K");
         return -4;
     }
     if (LDA < chameleon_max(1, Am)) {
-        morse_error("CHAMELEON_zher2k", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zher2k", "illegal value of LDA");
         return -7;
     }
     if (LDB < chameleon_max(1, Am)) {
-        morse_error("CHAMELEON_zher2k", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zher2k", "illegal value of LDB");
         return -9;
     }
     if (LDC < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zher2k", "illegal value of LDC");
+        chameleon_error("CHAMELEON_zher2k", "illegal value of LDC");
         return -12;
     }
 
@@ -164,45 +164,45 @@ int CHAMELEON_zher2k( cham_uplo_t uplo, cham_trans_t trans, int N, int K,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZHERK, N, K, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZHERK, N, K, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zher2k", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zher2k", "chameleon_tune() failed");
         return status;
     }
 
     /* Set MT & NT & KT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamUpperLower,
                      A, NB, NB, LDA, An, Am, An, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInput, ChamUpperLower,
                      B, NB, NB, LDB, An, Am, An, sequence, &request );
-    morse_zlap2tile( morse, &descCl, &descCt, ChamDescInout, uplo,
+    chameleon_zlap2tile( chamctxt, &descCl, &descCt, ChamDescInout, uplo,
                      C, NB, NB, LDC, N, N,  N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zher2k_Tile_Async( uplo, trans, alpha, &descAt, &descBt, beta, &descCt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInput, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descCl, &descCt,
+    chameleon_ztile2lap( chamctxt, &descCl, &descCt,
                      ChamDescInout, uplo, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
-    morse_ztile2lap_cleanup( morse, &descCl, &descCt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descCl, &descCt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -264,17 +264,17 @@ int CHAMELEON_zher2k_Tile( cham_uplo_t uplo, cham_trans_t trans,
                       CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B,
                       double beta,  CHAM_desc_t *C )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zher2k_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zher2k_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zher2k_Tile_Async( uplo, trans, alpha, A, B, beta, C, sequence, &request );
 
@@ -282,9 +282,9 @@ int CHAMELEON_zher2k_Tile( cham_uplo_t uplo, cham_trans_t trans,
     CHAMELEON_Desc_Flush( B, sequence );
     CHAMELEON_Desc_Flush( C, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -321,21 +321,21 @@ int CHAMELEON_zher2k_Tile_Async( cham_uplo_t uplo, cham_trans_t trans,
                             double beta,  CHAM_desc_t *C,
                             RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     int N, K;
     int Am, An, Amb;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zher2k_Tile_Async", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zher2k_Tile_Async", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zher2k_Tile_Async", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zher2k_Tile_Async", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zher2k_Tile_Async", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zher2k_Tile_Async", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -343,30 +343,30 @@ int CHAMELEON_zher2k_Tile_Async( cham_uplo_t uplo, cham_trans_t trans,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zher2k_Tile_Async", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zher2k_Tile_Async", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zher2k_Tile_Async", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zher2k_Tile_Async", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(C) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zher2k_Tile_Async", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(C) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zher2k_Tile_Async", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zher2k", "illegal value of uplo");
-        return morse_request_fail(sequence, request, -1);
+        chameleon_error("CHAMELEON_zher2k", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, -1);
     }
     if ((trans != ChamNoTrans) && (trans != ChamConjTrans)) {
-        morse_error("CHAMELEON_zher2k", "illegal value of trans");
-        return morse_request_fail(sequence, request, -2);
+        chameleon_error("CHAMELEON_zher2k", "illegal value of trans");
+        return chameleon_request_fail(sequence, request, -2);
     }
 
     if ( trans == ChamNoTrans ) {
@@ -380,20 +380,20 @@ int CHAMELEON_zher2k_Tile_Async( cham_uplo_t uplo, cham_trans_t trans,
     }
 
     if (C->mb != C->nb) {
-        morse_error("CHAMELEON_zher2k_Tile_Async", "only square tiles for C are supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zher2k_Tile_Async", "only square tiles for C are supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (B->mb != A->mb) || (B->nb != A->nb) || (Amb != C->mb) ){
-        morse_error("CHAMELEON_zher2k_Tile_Async", "tile sizes have to match");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zher2k_Tile_Async", "tile sizes have to match");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if (C->m != C->n) {
-        morse_error("CHAMELEON_zher2k_Tile_Async", "only square matrix C is supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zher2k_Tile_Async", "only square matrix C is supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (B->m != A->m) || (B->n != A->n) || (Am != C->m) ){
-        morse_error("CHAMELEON_zher2k_Tile_Async", "sizes of matrices have to match");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zher2k_Tile_Async", "sizes of matrices have to match");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     N = C->m;
@@ -406,7 +406,7 @@ int CHAMELEON_zher2k_Tile_Async( cham_uplo_t uplo, cham_trans_t trans,
         return CHAMELEON_SUCCESS;
     }
 
-    morse_pzher2k( uplo, trans, alpha, A, B, beta, C, sequence, request );
+    chameleon_pzher2k( uplo, trans, alpha, A, B, beta, C, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zherk.c b/compute/zherk.c
index 256b97aa631e2b057ad9ad7d99e5bdb37eb0a3a2..c6ab8ee0f7ef400f9341813b2456bbda04b76e21 100644
--- a/compute/zherk.c
+++ b/compute/zherk.c
@@ -102,23 +102,23 @@ int CHAMELEON_zherk( cham_uplo_t uplo, cham_trans_t trans, int N, int K,
     int status;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descCl, descCt;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zherk", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zherk", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zherk", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zherk", "illegal value of uplo");
         return -1;
     }
     if ((trans != ChamNoTrans) && (trans != ChamConjTrans)) {
-        morse_error("CHAMELEON_zherk", "illegal value of trans");
+        chameleon_error("CHAMELEON_zherk", "illegal value of trans");
         return -2;
     }
     if ( trans == ChamNoTrans ) {
@@ -127,19 +127,19 @@ int CHAMELEON_zherk( cham_uplo_t uplo, cham_trans_t trans, int N, int K,
         Am = K; An = N;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zherk", "illegal value of N");
+        chameleon_error("CHAMELEON_zherk", "illegal value of N");
         return -3;
     }
     if (K < 0) {
-        morse_error("CHAMELEON_zherk", "illegal value of K");
+        chameleon_error("CHAMELEON_zherk", "illegal value of K");
         return -4;
     }
     if (LDA < chameleon_max(1, Am)) {
-        morse_error("CHAMELEON_zherk", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zherk", "illegal value of LDA");
         return -7;
     }
     if (LDC < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zherk", "illegal value of LDC");
+        chameleon_error("CHAMELEON_zherk", "illegal value of LDC");
         return -10;
     }
 
@@ -149,40 +149,40 @@ int CHAMELEON_zherk( cham_uplo_t uplo, cham_trans_t trans, int N, int K,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZHERK, N, K, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZHERK, N, K, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zherk", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zherk", "chameleon_tune() failed");
         return status;
     }
 
     /* Set MT & NT & KT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamUpperLower,
                      A, NB, NB, LDA, An, Am, An, sequence, &request );
-    morse_zlap2tile( morse, &descCl, &descCt, ChamDescInout, uplo,
+    chameleon_zlap2tile( chamctxt, &descCl, &descCt, ChamDescInout, uplo,
                      C, NB, NB, LDC, N, N,  N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zherk_Tile_Async( uplo, trans, alpha, &descAt, beta, &descCt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descCl, &descCt,
+    chameleon_ztile2lap( chamctxt, &descCl, &descCt,
                      ChamDescInout, uplo, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descCl, &descCt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descCl, &descCt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -240,26 +240,26 @@ int CHAMELEON_zherk_Tile( cham_uplo_t uplo, cham_trans_t trans,
                       double alpha, CHAM_desc_t *A,
                       double beta,  CHAM_desc_t *C )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zherk_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zherk_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zherk_Tile_Async( uplo, trans, alpha, A, beta, C, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( C, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -296,21 +296,21 @@ int CHAMELEON_zherk_Tile_Async( cham_uplo_t uplo, cham_trans_t trans,
                             double beta,  CHAM_desc_t *C,
                             RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     int N, K;
     int Am, An, Amb;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zherk_Tile_Async", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zherk_Tile_Async", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zherk_Tile_Async", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zherk_Tile_Async", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zherk_Tile_Async", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zherk_Tile_Async", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -318,26 +318,26 @@ int CHAMELEON_zherk_Tile_Async( cham_uplo_t uplo, cham_trans_t trans,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zherk_Tile_Async", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zherk_Tile_Async", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(C) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zherk_Tile_Async", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(C) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zherk_Tile_Async", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zherk", "illegal value of uplo");
-        return morse_request_fail(sequence, request, -1);
+        chameleon_error("CHAMELEON_zherk", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, -1);
     }
     if ((trans != ChamNoTrans) && (trans != ChamConjTrans)) {
-        morse_error("CHAMELEON_zherk", "illegal value of transA");
-        return morse_request_fail(sequence, request, -2);
+        chameleon_error("CHAMELEON_zherk", "illegal value of transA");
+        return chameleon_request_fail(sequence, request, -2);
     }
 
     if ( trans == ChamNoTrans ) {
@@ -351,20 +351,20 @@ int CHAMELEON_zherk_Tile_Async( cham_uplo_t uplo, cham_trans_t trans,
     }
 
     if (C->mb != C->nb) {
-        morse_error("CHAMELEON_zherk_Tile_Async", "only square tiles are supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zherk_Tile_Async", "only square tiles are supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if (Amb != C->mb) {
-        morse_error("CHAMELEON_zherk_Tile_Async", "tile sizes have to match");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zherk_Tile_Async", "tile sizes have to match");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if (C->m != C->n) {
-        morse_error("CHAMELEON_zherk_Tile_Async", "only square matrix C is supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zherk_Tile_Async", "only square matrix C is supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if (Am != C->m) {
-        morse_error("CHAMELEON_zherk_Tile_Async", "sizes of matrices have to match");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zherk_Tile_Async", "sizes of matrices have to match");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     N = C->m;
@@ -377,7 +377,7 @@ int CHAMELEON_zherk_Tile_Async( cham_uplo_t uplo, cham_trans_t trans,
         return CHAMELEON_SUCCESS;
     }
 
-    morse_pzherk( uplo, trans, alpha, A, beta, C, sequence, request );
+    chameleon_pzherk( uplo, trans, alpha, A, beta, C, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zhetrd.c b/compute/zhetrd.c
index 52f782e76634f2f3e904e4d33263aa552aa1bf81..660bd5b91ab2cff4664a7e20d542ffd08f9c896a 100644
--- a/compute/zhetrd.c
+++ b/compute/zhetrd.c
@@ -117,32 +117,32 @@ int CHAMELEON_zhetrd( cham_job_t jobz, cham_uplo_t uplo, int N,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_zhetrd", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_zhetrd", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if (jobz != ChamNoVec && jobz != ChamVec) {
-        morse_error("CHAMELEON_zhetrd", "illegal value of jobz");
+        chameleon_error("CHAMELEON_zhetrd", "illegal value of jobz");
         return -1;
     }
     if ((uplo != ChamLower) && (uplo != ChamUpper)) {
-        morse_error("CHAMELEON_zhetrd", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zhetrd", "illegal value of uplo");
         return -1;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zhetrd", "illegal value of N");
+        chameleon_error("CHAMELEON_zhetrd", "illegal value of N");
         return -2;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zhetrd", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zhetrd", "illegal value of LDA");
         return -4;
     }
 
@@ -151,34 +151,34 @@ int CHAMELEON_zhetrd( cham_job_t jobz, cham_uplo_t uplo, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on N; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZHETRD, N, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZHETRD, N, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zhetrd", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zhetrd", "chameleon_tune() failed");
         return status;
     }
     /* Set NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, uplo,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zhetrd_Tile_Async( jobz, uplo, &descAt, D, E, descT, Q, LDQ, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, uplo, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 /**
@@ -266,26 +266,26 @@ int CHAMELEON_zhetrd_Tile( cham_job_t jobz, cham_uplo_t uplo,
                        CHAM_desc_t *A, double *D, double *E,
                        CHAM_desc_t *T, CHAMELEON_Complex64_t *Q, int LDQ )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zhetrd_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zhetrd_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zhetrd_Tile_Async( jobz, uplo, A, D, E, T, Q, LDQ, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( T, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -330,24 +330,24 @@ int CHAMELEON_zhetrd_Tile_Async( cham_job_t jobz,
                              CHAMELEON_Complex64_t *Q, int LDQ,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t descA;
     CHAM_desc_t descAB;
     int N, NB, LDAB;
     int status;
     CHAM_desc_t D, *Dptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zhetrd_Tile_Async", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zhetrd_Tile_Async", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zhetrd_Tile_Async", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zhetrd_Tile_Async", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zhetrd_Tile_Async", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zhetrd_Tile_Async", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
 
@@ -356,55 +356,55 @@ int CHAMELEON_zhetrd_Tile_Async( cham_job_t jobz,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zhetrd_Tile_Async", "invalid descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zhetrd_Tile_Async", "invalid descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     } else {
         descA = *A;
     }
-    if (morse_desc_check(T) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zhetrd_Tile_Async", "invalid descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(T) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zhetrd_Tile_Async", "invalid descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     /* Check input arguments */
     if (jobz != ChamNoVec && jobz != ChamVec) {
-        morse_error("CHAMELEON_zhetrd_Tile_Async", "illegal value of jobz");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zhetrd_Tile_Async", "illegal value of jobz");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((uplo != ChamLower) && (uplo != ChamUpper)) {
-        morse_error("CHAMELEON_zhetrd_Tile_Async", "illegal value of uplo");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zhetrd_Tile_Async", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if (descA.m != descA.n) {
-        morse_error("CHAMELEON_zhetrd_Tile_Async", "matrix need to be square");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zhetrd_Tile_Async", "matrix need to be square");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if (descA.nb != descA.mb) {
-        morse_error("CHAMELEON_zhetrd_Tile_Async", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zhetrd_Tile_Async", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     N  = descA.m;
     NB = descA.mb;
 #if defined(CHAMELEON_COPY_DIAG)
     {
-        morse_zdesc_alloc_diag(D, A->mb, A->nb, chameleon_min(A->m, A->n), A->nb, 0, 0, chameleon_min(A->m, A->n), A->nb, A->p, A->q);
+        chameleon_zdesc_alloc_diag(D, A->mb, A->nb, chameleon_min(A->m, A->n), A->nb, 0, 0, chameleon_min(A->m, A->n), A->nb, A->p, A->q);
         Dptr = &D;
     }
 #endif
     /* Reduction to band. On exit, T contains reflectors */
-    morse_pzhetrd_he2hb( uplo, A, T, Dptr,
+    chameleon_pzhetrd_he2hb( uplo, A, T, Dptr,
                          sequence, request );
 
     LDAB = NB+1;
 
     /* Allocate band structure */
-    morse_zdesc_alloc_diag( descAB,
+    chameleon_zdesc_alloc_diag( descAB,
                             LDAB, NB, /* mb, nb */
                             LDAB, N,  /* lm, ln */
                             0, 0,     /* i, j */
@@ -412,27 +412,27 @@ int CHAMELEON_zhetrd_Tile_Async( cham_job_t jobz,
                             1, 1 );
 
     /* Copy data into band structure */
-    morse_pztile2band( uplo, A, &descAB,
+    chameleon_pztile2band( uplo, A, &descAB,
                        sequence, request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Reduce band matrix to tridiagonal matrix */
 #if !defined(CHAMELEON_SIMULATION)
     status = LAPACKE_zhbtrd( LAPACK_COL_MAJOR,
-                             morse_lapack_const(jobz),
-                             morse_lapack_const(uplo),
+                             chameleon_lapack_const(jobz),
+                             chameleon_lapack_const(uplo),
                              N, NB,
                              (CHAMELEON_Complex64_t *) descAB.mat, LDAB,
                              W, E, Q, LDQ );
     if (status != 0) {
-        morse_error("CHAMELEON_zhetrd_Tile_Async", "LAPACKE_zhbtrd failed");
+        chameleon_error("CHAMELEON_zhetrd_Tile_Async", "LAPACKE_zhbtrd failed");
     }
 #endif /* !defined(CHAMELEON_SIMULATION) */
     if (Dptr != NULL) {
-        morse_desc_mat_free( Dptr );
+        chameleon_desc_mat_free( Dptr );
     }
-    morse_desc_mat_free( &descAB );
+    chameleon_desc_mat_free( &descAB );
     (void)D;
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zlacpy.c b/compute/zlacpy.c
index a03972ed7bdf813cd04ba173cd749e9847c767d3..b9feabf067f52de7b3361a4e527c4a21ee2d9538 100644
--- a/compute/zlacpy.c
+++ b/compute/zlacpy.c
@@ -75,38 +75,38 @@ int CHAMELEON_zlacpy( cham_uplo_t uplo, int M, int N,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlacpy", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlacpy", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if ( (uplo != ChamUpperLower) &&
          (uplo != ChamUpper) &&
          (uplo != ChamLower) ) {
-        morse_error("CHAMELEON_zlacpy", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zlacpy", "illegal value of uplo");
         return -1;
     }
     if (M < 0) {
-        morse_error("CHAMELEON_zlacpy", "illegal value of M");
+        chameleon_error("CHAMELEON_zlacpy", "illegal value of M");
         return -2;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zlacpy", "illegal value of N");
+        chameleon_error("CHAMELEON_zlacpy", "illegal value of N");
         return -3;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zlacpy", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zlacpy", "illegal value of LDA");
         return -5;
     }
     if (LDB < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zlacpy", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zlacpy", "illegal value of LDB");
         return -7;
     }
 
@@ -115,39 +115,39 @@ int CHAMELEON_zlacpy( cham_uplo_t uplo, int M, int N,
         return (double)0.0;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGEMM, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGEMM, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zlacpy", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zlacpy", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB   = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, uplo,
                      A, NB, NB, LDA, N, M, N, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, uplo,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, uplo,
                      B, NB, NB, LDB, N, M, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zlacpy_Tile_Async( uplo, &descAt, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, uplo, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInout, uplo, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
 
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return CHAMELEON_SUCCESS;
 }
 
@@ -194,26 +194,26 @@ int CHAMELEON_zlacpy( cham_uplo_t uplo, int M, int N,
  */
 int CHAMELEON_zlacpy_Tile( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlacpy_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlacpy_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zlacpy_Tile_Async( uplo, A, B, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -247,19 +247,19 @@ int CHAMELEON_zlacpy_Tile( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B )
 int CHAMELEON_zlacpy_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlacpy_Tile_Async", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlacpy_Tile_Async", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zlacpy_Tile_Async", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zlacpy_Tile_Async", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zlacpy_Tile_Async", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zlacpy_Tile_Async", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -267,28 +267,28 @@ int CHAMELEON_zlacpy_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zlacpy_Tile_Async", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zlacpy_Tile_Async", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zlacpy_Tile_Async", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zlacpy_Tile_Async", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_zlacpy_Tile_Async", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zlacpy_Tile_Async", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if ( (uplo != ChamUpperLower) &&
          (uplo != ChamUpper) &&
          (uplo != ChamLower) ) {
-        morse_error("CHAMELEON_zlacpy_Tile_Async", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zlacpy_Tile_Async", "illegal value of uplo");
         return -1;
     }
     /* Quick return */
@@ -296,7 +296,7 @@ int CHAMELEON_zlacpy_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *
         return CHAMELEON_SUCCESS;
     }
 
-    morse_pzlacpy( uplo, A, B, sequence, request );
+    chameleon_pzlacpy( uplo, A, B, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zlange.c b/compute/zlange.c
index 4d0ea80c37ba278c7b2d3200bca72f00bd63c4ae..82968715d9ef59ab1e7e75b38443153ca1788b70 100644
--- a/compute/zlange.c
+++ b/compute/zlange.c
@@ -84,32 +84,32 @@ double CHAMELEON_zlange(cham_normtype_t norm, int M, int N,
     int NB;
     int status;
     double value = -1.;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlange", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlange", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if ( (norm != ChamMaxNorm) && (norm != ChamOneNorm)
          && (norm != ChamInfNorm) && (norm != ChamFrobeniusNorm) ) {
-        morse_error("CHAMELEON_zlange", "illegal value of norm");
+        chameleon_error("CHAMELEON_zlange", "illegal value of norm");
         return -1;
     }
     if (M < 0) {
-        morse_error("CHAMELEON_zlange", "illegal value of M");
+        chameleon_error("CHAMELEON_zlange", "illegal value of M");
         return -2;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zlange", "illegal value of N");
+        chameleon_error("CHAMELEON_zlange", "illegal value of N");
         return -3;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zlange", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zlange", "illegal value of LDA");
         return -5;
     }
 
@@ -118,34 +118,34 @@ double CHAMELEON_zlange(cham_normtype_t norm, int M, int N,
         return (double)0.0;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGEMM, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGEMM, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zlange", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zlange", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamUpperLower,
                      A, NB, NB, LDA, N, M, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zlange_Tile_Async( norm, &descAt, &value, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamUpperLower, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return value;
 }
 
@@ -190,26 +190,26 @@ double CHAMELEON_zlange(cham_normtype_t norm, int M, int N,
  */
 double CHAMELEON_zlange_Tile(cham_normtype_t norm, CHAM_desc_t *A )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
     double value = -1.;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlange_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlange_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zlange_Tile_Async( norm, A, &value, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return ( status == CHAMELEON_SUCCESS ) ? value : (double)status;
 }
 
@@ -243,19 +243,19 @@ double CHAMELEON_zlange_Tile(cham_normtype_t norm, CHAM_desc_t *A )
 int CHAMELEON_zlange_Tile_Async( cham_normtype_t norm, CHAM_desc_t *A, double *value,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlange_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlange_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zlange_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zlange_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zlange_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zlange_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -263,23 +263,23 @@ int CHAMELEON_zlange_Tile_Async( cham_normtype_t norm, CHAM_desc_t *A, double *v
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zlange_Tile", "invalid descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zlange_Tile", "invalid descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_zlange_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zlange_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (norm != ChamMaxNorm) && (norm != ChamOneNorm)
          && (norm != ChamInfNorm) && (norm != ChamFrobeniusNorm) ) {
-        morse_error("CHAMELEON_zlange", "illegal value of norm");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zlange", "illegal value of norm");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return */
     if (chameleon_min(A->m, A->n) == 0) {
@@ -287,7 +287,7 @@ int CHAMELEON_zlange_Tile_Async( cham_normtype_t norm, CHAM_desc_t *A, double *v
         return CHAMELEON_SUCCESS;
     }
 
-    morse_pzlange( norm, A, value, sequence, request );
+    chameleon_pzlange( norm, A, value, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zlanhe.c b/compute/zlanhe.c
index 43e8e8135c7021a1c9509366945351f29f1d998e..5297f8eabb7cec89bf327809d580c7298f3a0a86 100644
--- a/compute/zlanhe.c
+++ b/compute/zlanhe.c
@@ -84,32 +84,32 @@ double CHAMELEON_zlanhe(cham_normtype_t norm, cham_uplo_t uplo, int N,
     int NB;
     int status;
     double value = -1.;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlanhe", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlanhe", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if ( (norm != ChamMaxNorm) && (norm != ChamOneNorm)
          && (norm != ChamInfNorm) && (norm != ChamFrobeniusNorm) ) {
-        morse_error("CHAMELEON_zlanhe", "illegal value of norm");
+        chameleon_error("CHAMELEON_zlanhe", "illegal value of norm");
         return -1;
     }
     if ( (uplo != ChamUpper) && (uplo != ChamLower) ) {
-        morse_error("CHAMELEON_zlanhe", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zlanhe", "illegal value of uplo");
         return -2;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zlanhe", "illegal value of N");
+        chameleon_error("CHAMELEON_zlanhe", "illegal value of N");
         return -3;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zlanhe", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zlanhe", "illegal value of LDA");
         return -5;
     }
 
@@ -118,34 +118,34 @@ double CHAMELEON_zlanhe(cham_normtype_t norm, cham_uplo_t uplo, int N,
         return (double)0.0;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGEMM, N, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGEMM, N, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zlanhe", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zlanhe", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB   = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, uplo,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zlanhe_Tile_Async( norm, uplo, &descAt, &value, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, uplo, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return value;
 }
 
@@ -194,26 +194,26 @@ double CHAMELEON_zlanhe(cham_normtype_t norm, cham_uplo_t uplo, int N,
  */
 double CHAMELEON_zlanhe_Tile( cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
     double value = -1.;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlanhe_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlanhe_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zlanhe_Tile_Async( norm, uplo, A, &value, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return ( status == CHAMELEON_SUCCESS ) ? value : (double)status;
 }
 
@@ -247,19 +247,19 @@ double CHAMELEON_zlanhe_Tile( cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_
 int CHAMELEON_zlanhe_Tile_Async( cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A, double *value,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlanhe_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlanhe_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zlanhe_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zlanhe_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zlanhe_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zlanhe_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -267,27 +267,27 @@ int CHAMELEON_zlanhe_Tile_Async( cham_normtype_t norm, cham_uplo_t uplo, CHAM_de
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zlanhe_Tile", "invalid descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zlanhe_Tile", "invalid descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_zlanhe_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zlanhe_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (norm != ChamMaxNorm) && (norm != ChamOneNorm)
          && (norm != ChamInfNorm) && (norm != ChamFrobeniusNorm) ) {
-        morse_error("CHAMELEON_zlanhe_Tile", "illegal value of norm");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zlanhe_Tile", "illegal value of norm");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (uplo != ChamUpper) && (uplo != ChamLower) ) {
-        morse_error("CHAMELEON_zlanhe_Tile", "illegal value of uplo");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zlanhe_Tile", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return */
     if ( A->m == 0) {
@@ -295,7 +295,7 @@ int CHAMELEON_zlanhe_Tile_Async( cham_normtype_t norm, cham_uplo_t uplo, CHAM_de
         return CHAMELEON_SUCCESS;
     }
 
-    morse_pzlanhe( norm, uplo, A, value, sequence, request );
+    chameleon_pzlanhe( norm, uplo, A, value, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zlansy.c b/compute/zlansy.c
index 6dfd785c514053ab93845d3e9920b74793482359..995f21c80d0e1d4a13316f7a768a757cd80c72ec 100644
--- a/compute/zlansy.c
+++ b/compute/zlansy.c
@@ -84,32 +84,32 @@ double CHAMELEON_zlansy(cham_normtype_t norm, cham_uplo_t uplo, int N,
     int NB;
     int status;
     double value = -1.;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlansy", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlansy", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if ( (norm != ChamMaxNorm) && (norm != ChamOneNorm)
          && (norm != ChamInfNorm) && (norm != ChamFrobeniusNorm) ) {
-        morse_error("CHAMELEON_zlansy", "illegal value of norm");
+        chameleon_error("CHAMELEON_zlansy", "illegal value of norm");
         return -1;
     }
     if ( (uplo != ChamUpper) && (uplo != ChamLower) ) {
-        morse_error("CHAMELEON_zlansy", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zlansy", "illegal value of uplo");
         return -2;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zlansy", "illegal value of N");
+        chameleon_error("CHAMELEON_zlansy", "illegal value of N");
         return -3;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zlansy", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zlansy", "illegal value of LDA");
         return -5;
     }
 
@@ -118,34 +118,34 @@ double CHAMELEON_zlansy(cham_normtype_t norm, cham_uplo_t uplo, int N,
         return (double)0.0;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGEMM, N, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGEMM, N, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zlansy", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zlansy", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB   = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, uplo,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zlansy_Tile_Async( norm, uplo, &descAt, &value, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, uplo, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return value;
 }
 
@@ -194,26 +194,26 @@ double CHAMELEON_zlansy(cham_normtype_t norm, cham_uplo_t uplo, int N,
  */
 double CHAMELEON_zlansy_Tile( cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
     double value = -1.;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlansy_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlansy_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zlansy_Tile_Async( norm, uplo, A, &value, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return ( status == CHAMELEON_SUCCESS ) ? value : (double)status;
 }
 
@@ -247,19 +247,19 @@ double CHAMELEON_zlansy_Tile( cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_
 int CHAMELEON_zlansy_Tile_Async( cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A, double *value,
                             RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlansy_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlansy_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zlansy_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zlansy_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zlansy_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zlansy_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -267,27 +267,27 @@ int CHAMELEON_zlansy_Tile_Async( cham_normtype_t norm, cham_uplo_t uplo, CHAM_de
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zlansy_Tile", "invalid descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zlansy_Tile", "invalid descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_zlansy_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zlansy_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (norm != ChamMaxNorm) && (norm != ChamOneNorm)
          && (norm != ChamInfNorm) && (norm != ChamFrobeniusNorm) ) {
-        morse_error("CHAMELEON_zlansy_Tile", "illegal value of norm");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zlansy_Tile", "illegal value of norm");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (uplo != ChamUpper) && (uplo != ChamLower) ) {
-        morse_error("CHAMELEON_zlansy_Tile", "illegal value of uplo");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zlansy_Tile", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return */
     if ( A->m == 0) {
@@ -295,7 +295,7 @@ int CHAMELEON_zlansy_Tile_Async( cham_normtype_t norm, cham_uplo_t uplo, CHAM_de
         return CHAMELEON_SUCCESS;
     }
 
-    morse_pzlansy( norm, uplo, A, value, sequence, request );
+    chameleon_pzlansy( norm, uplo, A, value, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zlantr.c b/compute/zlantr.c
index 02ed20191c362750f120c383fed52ed1691347ff..fb78aa2e8d1954ff79db4c326b6a246b2788d9b6 100644
--- a/compute/zlantr.c
+++ b/compute/zlantr.c
@@ -96,40 +96,40 @@ double CHAMELEON_zlantr(cham_normtype_t norm, cham_uplo_t uplo, cham_diag_t diag
     int NB;
     int status;
     double value = -1.;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlantr", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlantr", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if ( (norm != ChamMaxNorm) && (norm != ChamOneNorm)
          && (norm != ChamInfNorm) && (norm != ChamFrobeniusNorm) ) {
-        morse_error("CHAMELEON_zlantr", "illegal value of norm");
+        chameleon_error("CHAMELEON_zlantr", "illegal value of norm");
         return -1;
     }
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zlantr", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zlantr", "illegal value of uplo");
         return -2;
     }
     if ((diag != ChamUnit) && (diag != ChamNonUnit)) {
-        morse_error("CHAMELEON_zlantr", "illegal value of diag");
+        chameleon_error("CHAMELEON_zlantr", "illegal value of diag");
         return -3;
     }
     if (M < 0) {
-        morse_error("CHAMELEON_zlantr", "illegal value of M");
+        chameleon_error("CHAMELEON_zlantr", "illegal value of M");
         return -4;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zlantr", "illegal value of N");
+        chameleon_error("CHAMELEON_zlantr", "illegal value of N");
         return -5;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zlantr", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zlantr", "illegal value of LDA");
         return -7;
     }
 
@@ -138,34 +138,34 @@ double CHAMELEON_zlantr(cham_normtype_t norm, cham_uplo_t uplo, cham_diag_t diag
         return (double)0.0;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGEMM, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGEMM, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zlantr", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zlantr", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB   = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, uplo,
                      A, NB, NB, LDA, N, M, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zlantr_Tile_Async( norm, uplo, diag, &descAt, &value, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, uplo, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return value;
 }
 
@@ -216,26 +216,26 @@ double CHAMELEON_zlantr(cham_normtype_t norm, cham_uplo_t uplo, cham_diag_t diag
  */
 double CHAMELEON_zlantr_Tile(cham_normtype_t norm, cham_uplo_t uplo, cham_diag_t diag, CHAM_desc_t *A )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
     double value = -1.;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlantr_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlantr_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zlantr_Tile_Async( norm, uplo, diag, A, &value, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return ( status == CHAMELEON_SUCCESS ) ? value : (double)status;
 }
 
@@ -270,19 +270,19 @@ int CHAMELEON_zlantr_Tile_Async( cham_normtype_t norm, cham_uplo_t uplo, cham_di
                              CHAM_desc_t *A, double *value,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlantr_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlantr_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zlantr_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zlantr_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zlantr_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zlantr_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -290,31 +290,31 @@ int CHAMELEON_zlantr_Tile_Async( cham_normtype_t norm, cham_uplo_t uplo, cham_di
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zlantr_Tile", "invalid descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zlantr_Tile", "invalid descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_zlantr_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zlantr_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (norm != ChamMaxNorm) && (norm != ChamOneNorm)
          && (norm != ChamInfNorm) && (norm != ChamFrobeniusNorm) ) {
-        morse_error("CHAMELEON_zlantr_Tile", "illegal value of norm");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zlantr_Tile", "illegal value of norm");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zlantr_Tile", "illegal value of uplo");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zlantr_Tile", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((diag != ChamUnit) && (diag != ChamNonUnit)) {
-        morse_error("CHAMELEON_zlantr_Tile", "illegal value of diag");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zlantr_Tile", "illegal value of diag");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     /* Quick return */
@@ -323,7 +323,7 @@ int CHAMELEON_zlantr_Tile_Async( cham_normtype_t norm, cham_uplo_t uplo, cham_di
         return CHAMELEON_SUCCESS;
     }
 
-    morse_pzlantr( norm, uplo, diag, A, value, sequence, request );
+    chameleon_pzlantr( norm, uplo, diag, A, value, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zlascal.c b/compute/zlascal.c
index 5ad4e9563dabda1954490dfc2745856ffd05dcfb..bae3815fbab3de093be482f78e24623f54b163a4 100644
--- a/compute/zlascal.c
+++ b/compute/zlascal.c
@@ -74,31 +74,31 @@ int CHAMELEON_zlascal( cham_uplo_t uplo, int M, int N,
     int NB;
     int status;
     CHAM_desc_t descAl, descAt;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlascal", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlascal", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if ((uplo != ChamUpper) && (uplo != ChamLower) && (uplo != ChamUpperLower)) {
-        morse_error("CHAMELEON_zlascal", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zlascal", "illegal value of uplo");
         return -1;
     }
     if (M < 0) {
-        morse_error("CHAMELEON_zlascal", "illegal value of M");
+        chameleon_error("CHAMELEON_zlascal", "illegal value of M");
         return -2;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zlascal", "illegal value of N");
+        chameleon_error("CHAMELEON_zlascal", "illegal value of N");
         return -3;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zlascal", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zlascal", "illegal value of LDA");
         return -6;
     }
 
@@ -108,35 +108,35 @@ int CHAMELEON_zlascal( cham_uplo_t uplo, int M, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZGEMM, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGEMM, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zlascal", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zlascal", "chameleon_tune() failed");
         return status;
     }
 
     /* Set MT & NT & KT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, uplo,
                      A, NB, NB, LDA, N, M, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zlascal_Tile_Async( uplo, alpha, &descAt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, uplo, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -183,25 +183,25 @@ int CHAMELEON_zlascal( cham_uplo_t uplo, int M, int N,
 int CHAMELEON_zlascal_Tile( cham_uplo_t uplo,
                         CHAMELEON_Complex64_t alpha, CHAM_desc_t *A )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlascal_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlascal_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zlascal_Tile_Async( uplo, alpha, A, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -238,20 +238,20 @@ int CHAMELEON_zlascal_Tile_Async( cham_uplo_t uplo,
                               CHAMELEON_Complex64_t alpha, CHAM_desc_t *A,
                               RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t descA;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlascal_Tile_Async", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlascal_Tile_Async", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zlascal_Tile_Async", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zlascal_Tile_Async", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zlascal_Tile_Async", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zlascal_Tile_Async", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -259,25 +259,25 @@ int CHAMELEON_zlascal_Tile_Async( cham_uplo_t uplo,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zlascal_Tile_Async", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zlascal_Tile_Async", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     } else {
         descA = *A;
     }
     /* Check input arguments */
     if ((uplo != ChamUpper) && (uplo != ChamLower) && (uplo != ChamUpperLower)) {
-        morse_error("CHAMELEON_zlascal", "illegal value of uplo");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zlascal", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     if ( (descA.i%descA.mb != 0) || (descA.j%descA.nb != 0) ) {
-        morse_error("CHAMELEON_zlascal", "start indexes have to be multiple of tile size");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zlascal", "start indexes have to be multiple of tile size");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     /* Quick return */
@@ -287,7 +287,7 @@ int CHAMELEON_zlascal_Tile_Async( cham_uplo_t uplo,
         return CHAMELEON_SUCCESS;
     }
 
-    morse_pzlascal( uplo, alpha, A, sequence, request );
+    chameleon_pzlascal( uplo, alpha, A, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zlaset.c b/compute/zlaset.c
index 41eb92036a8d68050f5cece331da2e0874f03c72..3a489215d37899b8bd8c295cc114fa3ec0b81bfb 100644
--- a/compute/zlaset.c
+++ b/compute/zlaset.c
@@ -76,33 +76,33 @@ int CHAMELEON_zlaset( cham_uplo_t uplo, int M, int N,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlaset", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlaset", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if ( (uplo != ChamUpperLower) &&
          (uplo != ChamUpper) &&
          (uplo != ChamLower) ) {
-        morse_error("CHAMELEON_zlaset", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zlaset", "illegal value of uplo");
         return -1;
     }
     if (M < 0) {
-        morse_error("CHAMELEON_zlaset", "illegal value of M");
+        chameleon_error("CHAMELEON_zlaset", "illegal value of M");
         return -2;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zlaset", "illegal value of N");
+        chameleon_error("CHAMELEON_zlaset", "illegal value of N");
         return -3;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zlaset", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zlaset", "illegal value of LDA");
         return -5;
     }
 
@@ -111,34 +111,34 @@ int CHAMELEON_zlaset( cham_uplo_t uplo, int M, int N,
         return (double)0.0;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGEMM, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGEMM, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zlaset", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zlaset", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB   = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, uplo,
                      A, NB, NB, LDA, N, M, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zlaset_Tile_Async( uplo, alpha, beta, &descAt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, uplo, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return CHAMELEON_SUCCESS;
 }
 
@@ -183,25 +183,25 @@ int CHAMELEON_zlaset_Tile( cham_uplo_t uplo,
                        CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t beta,
                        CHAM_desc_t *A )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlaset_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlaset_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zlaset_Tile_Async( uplo, alpha, beta, A, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -237,19 +237,19 @@ int CHAMELEON_zlaset_Tile_Async( cham_uplo_t uplo,
                              CHAM_desc_t *A,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlaset_Tile_Async", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlaset_Tile_Async", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zlaset_Tile_Async", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zlaset_Tile_Async", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zlaset_Tile_Async", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zlaset_Tile_Async", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -257,24 +257,24 @@ int CHAMELEON_zlaset_Tile_Async( cham_uplo_t uplo,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zlaset_Tile_Async", "invalid descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zlaset_Tile_Async", "invalid descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_zlaset_Tile_Async", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zlaset_Tile_Async", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if ( (uplo != ChamUpperLower) &&
          (uplo != ChamUpper) &&
          (uplo != ChamLower) ) {
-        morse_error("CHAMELEON_zlaset_Tile_Async", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zlaset_Tile_Async", "illegal value of uplo");
         return -1;
     }
     /* Quick return */
@@ -282,7 +282,7 @@ int CHAMELEON_zlaset_Tile_Async( cham_uplo_t uplo,
         return CHAMELEON_SUCCESS;
     }
 
-    morse_pzlaset( uplo, alpha, beta, A, sequence, request );
+    chameleon_pzlaset( uplo, alpha, beta, A, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zlauum.c b/compute/zlauum.c
index f40559e7f63fbe68b6dc03334fb72c178478e63b..2c239471537046fa5f2514d7132ece17c7cc595e 100644
--- a/compute/zlauum.c
+++ b/compute/zlauum.c
@@ -77,27 +77,27 @@ int CHAMELEON_zlauum( cham_uplo_t uplo, int N,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlauum", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlauum", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zlauum", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zlauum", "illegal value of uplo");
         return -1;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zlauum", "illegal value of N");
+        chameleon_error("CHAMELEON_zlauum", "illegal value of N");
         return -2;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zlauum", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zlauum", "illegal value of LDA");
         return -4;
     }
     /* Quick return */
@@ -105,35 +105,35 @@ int CHAMELEON_zlauum( cham_uplo_t uplo, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZPOSV, N, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZPOSV, N, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zlauum", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zlauum", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB   = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, uplo,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zlauum_Tile_Async( uplo, &descAt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, uplo, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -180,25 +180,25 @@ int CHAMELEON_zlauum( cham_uplo_t uplo, int N,
  */
 int CHAMELEON_zlauum_Tile( cham_uplo_t uplo, CHAM_desc_t *A )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlauum_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlauum_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zlauum_Tile_Async( uplo, A, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -236,19 +236,19 @@ int CHAMELEON_zlauum_Tile( cham_uplo_t uplo, CHAM_desc_t *A )
 int CHAMELEON_zlauum_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zlauum_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zlauum_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zlauum_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zlauum_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zlauum_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zlauum_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -256,29 +256,29 @@ int CHAMELEON_zlauum_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zlauum_Tile", "invalid descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zlauum_Tile", "invalid descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_zlauum_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zlauum_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zlauum_Tile", "illegal value of uplo");
-        return morse_request_fail(sequence, request, -1);
+        chameleon_error("CHAMELEON_zlauum_Tile", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, -1);
     }
     /* Quick return */
     /*
      if (chameleon_max(N, 0) == 0)
      return CHAMELEON_SUCCESS;
      */
-    morse_pzlauum( uplo, A, sequence, request );
+    chameleon_pzlauum( uplo, A, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zplghe.c b/compute/zplghe.c
index bf30388b92238a0c87691257d232caf5b06616c3..95e0b8359eb37cdcfb994b37fa1ad785b68c0d98 100644
--- a/compute/zplghe.c
+++ b/compute/zplghe.c
@@ -76,23 +76,23 @@ int CHAMELEON_zplghe( double bump, cham_uplo_t uplo, int N,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zplghe", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zplghe", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if (N < 0) {
-        morse_error("CHAMELEON_zplghe", "illegal value of N");
+        chameleon_error("CHAMELEON_zplghe", "illegal value of N");
         return -2;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zplghe", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zplghe", "illegal value of LDA");
         return -4;
     }
     /* Quick return */
@@ -100,34 +100,34 @@ int CHAMELEON_zplghe( double bump, cham_uplo_t uplo, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGEMM, N, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGEMM, N, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zplghe", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zplghe", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescOutput, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescOutput, uplo,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zplghe_Tile_Async( bump, uplo, &descAt, seed, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescOutput, uplo, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
 
     return status;
 }
@@ -176,25 +176,25 @@ int CHAMELEON_zplghe( double bump, cham_uplo_t uplo, int N,
 int CHAMELEON_zplghe_Tile( double bump, cham_uplo_t uplo, CHAM_desc_t *A,
                            unsigned long long int seed )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zplghe_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zplghe_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zplghe_Tile_Async( bump, uplo, A, seed, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -234,19 +234,19 @@ int CHAMELEON_zplghe_Tile_Async( double                 bump,
                                  RUNTIME_sequence_t    *sequence,
                                  RUNTIME_request_t     *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zplghe_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zplghe_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zplghe_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zplghe_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zplghe_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zplghe_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -254,25 +254,25 @@ int CHAMELEON_zplghe_Tile_Async( double                 bump,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zplghe_Tile", "invalid descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zplghe_Tile", "invalid descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_zplghe_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zplghe_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     /* Quick return */
     if (chameleon_min( A->m, A->n ) == 0)
         return CHAMELEON_SUCCESS;
 
-    morse_pzplghe( bump, uplo, A, seed, sequence, request );
+    chameleon_pzplghe( bump, uplo, A, seed, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zplgsy.c b/compute/zplgsy.c
index 72776344ee8029975807329d0fee375c4c24983c..4c5d38d5f40367b8bcfe08a628a1e609aaef2c7e 100644
--- a/compute/zplgsy.c
+++ b/compute/zplgsy.c
@@ -76,23 +76,23 @@ int CHAMELEON_zplgsy( CHAMELEON_Complex64_t bump, cham_uplo_t uplo, int N,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zplgsy", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zplgsy", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if (N < 0) {
-        morse_error("CHAMELEON_zplgsy", "illegal value of N");
+        chameleon_error("CHAMELEON_zplgsy", "illegal value of N");
         return -2;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zplgsy", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zplgsy", "illegal value of LDA");
         return -4;
     }
     /* Quick return */
@@ -100,34 +100,34 @@ int CHAMELEON_zplgsy( CHAMELEON_Complex64_t bump, cham_uplo_t uplo, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGEMM, N, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGEMM, N, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zplgsy", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zplgsy", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescOutput, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescOutput, uplo,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zplgsy_Tile_Async( bump, uplo, &descAt, seed, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescOutput, uplo, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
 
     return status;
 }
@@ -177,25 +177,25 @@ int CHAMELEON_zplgsy_Tile( CHAMELEON_Complex64_t bump, cham_uplo_t uplo,
                            CHAM_desc_t *A,
                            unsigned long long int seed )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zplgsy_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zplgsy_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zplgsy_Tile_Async( bump, uplo, A, seed, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -236,19 +236,19 @@ int CHAMELEON_zplgsy_Tile_Async( CHAMELEON_Complex64_t  bump,
                                  RUNTIME_sequence_t    *sequence,
                                  RUNTIME_request_t     *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zplgsy_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zplgsy_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zplgsy_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zplgsy_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zplgsy_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zplgsy_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -256,25 +256,25 @@ int CHAMELEON_zplgsy_Tile_Async( CHAMELEON_Complex64_t  bump,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zplgsy_Tile", "invalid descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zplgsy_Tile", "invalid descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_zplgsy_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zplgsy_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     /* Quick return */
     if (chameleon_min( A->m, A->n ) == 0)
         return CHAMELEON_SUCCESS;
 
-    morse_pzplgsy( bump, uplo, A, seed, sequence, request );
+    chameleon_pzplgsy( bump, uplo, A, seed, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zplrnt.c b/compute/zplrnt.c
index 0cc1daf887402e06a4b0ea381f73d32d007f5dfa..43e47a7a20bbee03bd942f7472699fe56bfed6f5 100644
--- a/compute/zplrnt.c
+++ b/compute/zplrnt.c
@@ -70,27 +70,27 @@ int CHAMELEON_zplrnt( int M, int N,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zplrnt", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zplrnt", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if (M < 0) {
-        morse_error("CHAMELEON_zplrnt", "illegal value of M");
+        chameleon_error("CHAMELEON_zplrnt", "illegal value of M");
         return -1;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zplrnt", "illegal value of N");
+        chameleon_error("CHAMELEON_zplrnt", "illegal value of N");
         return -2;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zplrnt", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zplrnt", "illegal value of LDA");
         return -4;
     }
     /* Quick return */
@@ -98,34 +98,34 @@ int CHAMELEON_zplrnt( int M, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGEMM, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGEMM, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zplrnt", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zplrnt", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescOutput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescOutput, ChamUpperLower,
                      A, NB, NB, LDA, N, M, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zplrnt_Tile_Async( &descAt, seed, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescOutput, ChamUpperLower, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -167,25 +167,25 @@ int CHAMELEON_zplrnt( int M, int N,
 int CHAMELEON_zplrnt_Tile( CHAM_desc_t *A,
                        unsigned long long int seed )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zplrnt_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zplrnt_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zplrnt_Tile_Async( A, seed, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -224,19 +224,19 @@ int CHAMELEON_zplrnt_Tile_Async( CHAM_desc_t     *A,
                              RUNTIME_sequence_t *sequence,
                              RUNTIME_request_t  *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zplrnt_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zplrnt_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zplrnt_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zplrnt_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zplrnt_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zplrnt_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -244,25 +244,25 @@ int CHAMELEON_zplrnt_Tile_Async( CHAM_desc_t     *A,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zplrnt_Tile", "invalid descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zplrnt_Tile", "invalid descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_zplrnt_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zplrnt_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     /* Quick return */
     if (chameleon_min( A->m, A->n ) == 0)
         return CHAMELEON_SUCCESS;
 
-    morse_pzplrnt( A, seed, sequence, request );
+    chameleon_pzplrnt( A, seed, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zposv.c b/compute/zposv.c
index e3c629a27df10a0461d7d4d3e25d365f6f15e65e..e09fad9fb03cc96e9679768d11d8d7825cb9b3d7 100644
--- a/compute/zposv.c
+++ b/compute/zposv.c
@@ -96,36 +96,36 @@ int CHAMELEON_zposv( cham_uplo_t uplo, int N, int NRHS,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zposv", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zposv", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zposv", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zposv", "illegal value of uplo");
         return -1;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zposv", "illegal value of N");
+        chameleon_error("CHAMELEON_zposv", "illegal value of N");
         return -2;
     }
     if (NRHS < 0) {
-        morse_error("CHAMELEON_zposv", "illegal value of NRHS");
+        chameleon_error("CHAMELEON_zposv", "illegal value of NRHS");
         return -3;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zposv", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zposv", "illegal value of LDA");
         return -5;
     }
     if (LDB < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zposv", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zposv", "illegal value of LDB");
         return -7;
     }
     /* Quick return - currently NOT equivalent to LAPACK's
@@ -134,40 +134,40 @@ int CHAMELEON_zposv( cham_uplo_t uplo, int N, int NRHS,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZPOSV, N, N, NRHS);
+    status = chameleon_tune(CHAMELEON_FUNC_ZPOSV, N, N, NRHS);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zposv", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zposv", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT & NTRHS */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, uplo,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, ChamUpperLower,
                      B, NB, NB, LDB, NRHS, N, NRHS, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zposv_Tile_Async( uplo, &descAt, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, uplo, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 /**
@@ -222,26 +222,26 @@ int CHAMELEON_zposv( cham_uplo_t uplo, int N, int NRHS,
  */
 int CHAMELEON_zposv_Tile( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zposv_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zposv_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zposv_Tile_Async( uplo, A, B, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -277,19 +277,19 @@ int CHAMELEON_zposv_Tile( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B )
 int CHAMELEON_zposv_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B,
                             RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zposv_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zposv_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zposv_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zposv_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zposv_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zposv_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -297,26 +297,26 @@ int CHAMELEON_zposv_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zposv_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zposv_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zposv_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zposv_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || B->nb != B->mb) {
-        morse_error("CHAMELEON_zposv_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zposv_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zposv_Tile", "illegal value of uplo");
-        return morse_request_fail(sequence, request, -1);
+        chameleon_error("CHAMELEON_zposv_Tile", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, -1);
     }
     /* Quick return - currently NOT equivalent to LAPACK's
      * LAPACK does not have such check for DPOSV */
@@ -324,11 +324,11 @@ int CHAMELEON_zposv_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B
      if (chameleon_min(N, NRHS) == 0)
      return CHAMELEON_SUCCESS;
      */
-    morse_pzpotrf( uplo, A, sequence, request );
+    chameleon_pzpotrf( uplo, A, sequence, request );
 
-    morse_pztrsm( ChamLeft, uplo, uplo == ChamUpper ? ChamConjTrans : ChamNoTrans, ChamNonUnit, 1.0, A, B, sequence, request );
+    chameleon_pztrsm( ChamLeft, uplo, uplo == ChamUpper ? ChamConjTrans : ChamNoTrans, ChamNonUnit, 1.0, A, B, sequence, request );
 
-    morse_pztrsm( ChamLeft, uplo, uplo == ChamUpper ? ChamNoTrans : ChamConjTrans, ChamNonUnit, 1.0, A, B, sequence, request );
+    chameleon_pztrsm( ChamLeft, uplo, uplo == ChamUpper ? ChamNoTrans : ChamConjTrans, ChamNonUnit, 1.0, A, B, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zpotrf.c b/compute/zpotrf.c
index c26a5c285ec708305aca340287fbc0e87779e700..7ce17be82fee5d44d9e8a2495fe4b86d23f3f095 100644
--- a/compute/zpotrf.c
+++ b/compute/zpotrf.c
@@ -83,27 +83,27 @@ int CHAMELEON_zpotrf( cham_uplo_t uplo, int N,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zpotrf", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zpotrf", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zpotrf", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zpotrf", "illegal value of uplo");
         return -1;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zpotrf", "illegal value of N");
+        chameleon_error("CHAMELEON_zpotrf", "illegal value of N");
         return -2;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zpotrf", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zpotrf", "illegal value of LDA");
         return -4;
     }
     /* Quick return */
@@ -111,35 +111,35 @@ int CHAMELEON_zpotrf( cham_uplo_t uplo, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZPOSV, N, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZPOSV, N, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zpotrf", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zpotrf", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, uplo,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zpotrf_Tile_Async( uplo, &descAt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, uplo, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
 
     return status;
 }
@@ -192,25 +192,25 @@ int CHAMELEON_zpotrf( cham_uplo_t uplo, int N,
  */
 int CHAMELEON_zpotrf_Tile( cham_uplo_t uplo, CHAM_desc_t *A )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zpotrf_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zpotrf_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zpotrf_Tile_Async( uplo, A, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -247,19 +247,19 @@ int CHAMELEON_zpotrf_Tile( cham_uplo_t uplo, CHAM_desc_t *A )
 int CHAMELEON_zpotrf_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zpotrf_Tile_Async", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zpotrf_Tile_Async", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zpotrf_Tile_Async", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zpotrf_Tile_Async", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zpotrf_Tile_Async", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zpotrf_Tile_Async", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -267,29 +267,29 @@ int CHAMELEON_zpotrf_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zpotrf_Tile_Async", "invalid descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zpotrf_Tile_Async", "invalid descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_zpotrf_Tile_Async", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zpotrf_Tile_Async", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zpotrf_Tile_Async", "illegal value of uplo");
-        return morse_request_fail(sequence, request, -1);
+        chameleon_error("CHAMELEON_zpotrf_Tile_Async", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, -1);
     }
     /* Quick return */
     /*
      if (chameleon_max(N, 0) == 0)
      return CHAMELEON_SUCCESS;
      */
-    morse_pzpotrf( uplo, A, sequence, request );
+    chameleon_pzpotrf( uplo, A, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zpotri.c b/compute/zpotri.c
index b9f22b37fe1505d55764aca0b88565fa26b4d679..11c02ea4ee9a5d4c482f0b8c702c37ffe698dcce 100644
--- a/compute/zpotri.c
+++ b/compute/zpotri.c
@@ -74,27 +74,27 @@ int CHAMELEON_zpotri( cham_uplo_t uplo, int N,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zpotri", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zpotri", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zpotri", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zpotri", "illegal value of uplo");
         return -1;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zpotri", "illegal value of N");
+        chameleon_error("CHAMELEON_zpotri", "illegal value of N");
         return -2;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zpotri", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zpotri", "illegal value of LDA");
         return -4;
     }
     /* Quick return */
@@ -102,35 +102,35 @@ int CHAMELEON_zpotri( cham_uplo_t uplo, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZPOSV, N, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZPOSV, N, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zpotri", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zpotri", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB   = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, uplo,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zpotri_Tile_Async( uplo, &descAt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, uplo, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -180,25 +180,25 @@ int CHAMELEON_zpotri( cham_uplo_t uplo, int N,
  */
 int CHAMELEON_zpotri_Tile( cham_uplo_t uplo, CHAM_desc_t *A )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zpotri_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zpotri_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zpotri_Tile_Async( uplo, A, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -236,19 +236,19 @@ int CHAMELEON_zpotri_Tile( cham_uplo_t uplo, CHAM_desc_t *A )
 int CHAMELEON_zpotri_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zpotri_Tile_Async", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zpotri_Tile_Async", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zpotri_Tile_Async", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zpotri_Tile_Async", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zpotri_Tile_Async", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zpotri_Tile_Async", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -256,31 +256,31 @@ int CHAMELEON_zpotri_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zpotri_Tile_Async", "invalid descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zpotri_Tile_Async", "invalid descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_zpotri_Tile_Async", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zpotri_Tile_Async", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zpotri_Tile_Async", "illegal value of uplo");
-        return morse_request_fail(sequence, request, -1);
+        chameleon_error("CHAMELEON_zpotri_Tile_Async", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, -1);
     }
     /* Quick return */
     /*
      if (chameleon_max(N, 0) == 0)
      return CHAMELEON_SUCCESS;
      */
-    morse_pztrtri( uplo, ChamNonUnit, A, sequence, request );
+    chameleon_pztrtri( uplo, ChamNonUnit, A, sequence, request );
 
-    morse_pzlauum( uplo, A, sequence, request );
+    chameleon_pzlauum( uplo, A, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zpotrimm.c b/compute/zpotrimm.c
index 73728c8df26b6005e6b563997debeaec883114ff..db73bdf2dc1994462996578097c39a44cc102c4e 100644
--- a/compute/zpotrimm.c
+++ b/compute/zpotrimm.c
@@ -76,37 +76,37 @@ int CHAMELEON_zpotrimm( cham_uplo_t uplo, int N,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
     CHAM_desc_t descCl, descCt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zpotrimm", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zpotrimm", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zpotrimm", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zpotrimm", "illegal value of uplo");
         return -1;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zpotrimm", "illegal value of N");
+        chameleon_error("CHAMELEON_zpotrimm", "illegal value of N");
         return -2;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zpotrimm", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zpotrimm", "illegal value of LDA");
         return -4;
     }
     if (LDB < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zpotrimm", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zpotrimm", "illegal value of LDB");
         return -6;
     }
     if (LDC < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zpotrimm", "illegal value of LDC");
+        chameleon_error("CHAMELEON_zpotrimm", "illegal value of LDC");
         return -8;
     }
     /* Quick return */
@@ -114,45 +114,45 @@ int CHAMELEON_zpotrimm( cham_uplo_t uplo, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZPOSV, N, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZPOSV, N, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zpotrimm", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zpotrimm", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB   = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, uplo,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInput, ChamUpperLower,
                      B, NB, NB, LDB, N, N, N, sequence, &request );
-    morse_zlap2tile( morse, &descCl, &descCt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descCl, &descCt, ChamDescInout, ChamUpperLower,
                      C, NB, NB, LDC, N, N, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zpotrimm_Tile_Async( uplo, &descAt, &descBt, &descCt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, uplo, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInput, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descCl, &descCt,
+    chameleon_ztile2lap( chamctxt, &descCl, &descCt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
-    morse_ztile2lap_cleanup( morse, &descCl, &descCt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descCl, &descCt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -202,17 +202,17 @@ int CHAMELEON_zpotrimm( cham_uplo_t uplo, int N,
  */
 int CHAMELEON_zpotrimm_Tile( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *C )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zpotrimm_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zpotrimm_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zpotrimm_Tile_Async( uplo, A, B, C, sequence, &request );
 
@@ -220,9 +220,9 @@ int CHAMELEON_zpotrimm_Tile( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, C
     CHAMELEON_Desc_Flush( B, sequence );
     CHAMELEON_Desc_Flush( C, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -260,19 +260,19 @@ int CHAMELEON_zpotrimm_Tile( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, C
 int CHAMELEON_zpotrimm_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *C,
                                RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zpotrimm_Tile_Async", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zpotrimm_Tile_Async", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zpotrimm_Tile_Async", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zpotrimm_Tile_Async", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zpotrimm_Tile_Async", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zpotrimm_Tile_Async", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -280,48 +280,48 @@ int CHAMELEON_zpotrimm_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zpotrimm_Tile_Async", "invalid descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zpotrimm_Tile_Async", "invalid descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zpotrimm_Tile_Async", "invalid descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zpotrimm_Tile_Async", "invalid descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(C) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zpotrimm_Tile_Async", "invalid descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(C) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zpotrimm_Tile_Async", "invalid descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_zpotrimm_Tile_Async", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zpotrimm_Tile_Async", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if (B->nb != B->mb) {
-        morse_error("CHAMELEON_zpotrimm_Tile_Async", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zpotrimm_Tile_Async", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if (C->nb != C->mb) {
-        morse_error("CHAMELEON_zpotrimm_Tile_Async", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zpotrimm_Tile_Async", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zpotrimm_Tile_Async", "illegal value of uplo");
-        return morse_request_fail(sequence, request, -1);
+        chameleon_error("CHAMELEON_zpotrimm_Tile_Async", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, -1);
     }
     /* Quick return */
     /*
      if (chameleon_max(N, 0) == 0)
      return CHAMELEON_SUCCESS;
      */
-    morse_pzpotrimm( uplo, A, B, C, sequence, request );
+    chameleon_pzpotrimm( uplo, A, B, C, sequence, request );
     /*
-     morse_pztrtri( uplo, ChamNonUnit, A, sequence, request );
-     morse_pzlauum( uplo, A, sequence, request );
+     chameleon_pztrtri( uplo, ChamNonUnit, A, sequence, request );
+     chameleon_pzlauum( uplo, A, sequence, request );
      */
 
     return CHAMELEON_SUCCESS;
diff --git a/compute/zpotrs.c b/compute/zpotrs.c
index 46e2e82e9b2fc6cba770e673ddec67878388e250..0db1d651eff56c38bf1bc0436abd70df9806d89e 100644
--- a/compute/zpotrs.c
+++ b/compute/zpotrs.c
@@ -81,36 +81,36 @@ int CHAMELEON_zpotrs( cham_uplo_t uplo, int N, int NRHS,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zpotrs", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zpotrs", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zpotrs", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zpotrs", "illegal value of uplo");
         return -1;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zpotrs", "illegal value of N");
+        chameleon_error("CHAMELEON_zpotrs", "illegal value of N");
         return -2;
     }
     if (NRHS < 0) {
-        morse_error("CHAMELEON_zpotrs", "illegal value of NRHS");
+        chameleon_error("CHAMELEON_zpotrs", "illegal value of NRHS");
         return -3;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zpotrs", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zpotrs", "illegal value of LDA");
         return -5;
     }
     if (LDB < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zpotrs", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zpotrs", "illegal value of LDB");
         return -7;
     }
     /* Quick return */
@@ -118,40 +118,40 @@ int CHAMELEON_zpotrs( cham_uplo_t uplo, int N, int NRHS,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZPOSV, N, N, NRHS);
+    status = chameleon_tune(CHAMELEON_FUNC_ZPOSV, N, N, NRHS);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zpotrs", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zpotrs", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT & NTRHS */
     NB    = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, uplo,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, ChamUpperLower,
                      B, NB, NB, LDB, NRHS, N, NRHS, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zpotrs_Tile_Async( uplo, &descAt, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, uplo, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -198,26 +198,26 @@ int CHAMELEON_zpotrs( cham_uplo_t uplo, int N, int NRHS,
  */
 int CHAMELEON_zpotrs_Tile( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zpotrs_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zpotrs_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zpotrs_Tile_Async( uplo, A, B, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -254,19 +254,19 @@ int CHAMELEON_zpotrs_Tile( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B )
 int CHAMELEON_zpotrs_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zpotrs_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zpotrs_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zpotrs_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zpotrs_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zpotrs_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zpotrs_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -274,35 +274,35 @@ int CHAMELEON_zpotrs_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zpotrs_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zpotrs_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zpotrs_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zpotrs_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || B->nb != B->mb) {
-        morse_error("CHAMELEON_zpotrs_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zpotrs_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zpotrs_Tile", "illegal value of uplo");
-        return morse_request_fail(sequence, request, -1);
+        chameleon_error("CHAMELEON_zpotrs_Tile", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, -1);
     }
     /* Quick return */
     /*
      if (chameleon_min(N, NRHS) == 0)
      return CHAMELEON_SUCCESS;
      */
-    morse_pztrsm( ChamLeft, uplo, uplo == ChamUpper ? ChamConjTrans : ChamNoTrans, ChamNonUnit, 1.0, A, B, sequence, request );
+    chameleon_pztrsm( ChamLeft, uplo, uplo == ChamUpper ? ChamConjTrans : ChamNoTrans, ChamNonUnit, 1.0, A, B, sequence, request );
 
-    morse_pztrsm( ChamLeft, uplo, uplo == ChamUpper ? ChamNoTrans : ChamConjTrans, ChamNonUnit, 1.0, A, B, sequence, request );
+    chameleon_pztrsm( ChamLeft, uplo, uplo == ChamUpper ? ChamNoTrans : ChamConjTrans, ChamNonUnit, 1.0, A, B, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zsymm.c b/compute/zsymm.c
index 1513bc8c092a6a81c739a18d6a9f68816b489b89..6a694d61afde0cd169682b9023567f7431f2a3f0 100644
--- a/compute/zsymm.c
+++ b/compute/zsymm.c
@@ -112,44 +112,44 @@ int CHAMELEON_zsymm( cham_side_t side, cham_uplo_t uplo, int M, int N,
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
     CHAM_desc_t descCl, descCt;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zsymm", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zsymm", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if ( (side != ChamLeft) && (side != ChamRight) ){
-        morse_error("CHAMELEON_zsymm", "illegal value of side");
+        chameleon_error("CHAMELEON_zsymm", "illegal value of side");
         return -1;
     }
     if ((uplo != ChamLower) && (uplo != ChamUpper)) {
-        morse_error("CHAMELEON_zsymm", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zsymm", "illegal value of uplo");
         return -2;
     }
     Am = ( side == ChamLeft ) ? M : N;
     if (M < 0) {
-        morse_error("CHAMELEON_zsymm", "illegal value of M");
+        chameleon_error("CHAMELEON_zsymm", "illegal value of M");
         return -3;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zsymm", "illegal value of N");
+        chameleon_error("CHAMELEON_zsymm", "illegal value of N");
         return -4;
     }
     if (LDA < chameleon_max(1, Am)) {
-        morse_error("CHAMELEON_zsymm", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zsymm", "illegal value of LDA");
         return -7;
     }
     if (LDB < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zsymm", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zsymm", "illegal value of LDB");
         return -9;
     }
     if (LDC < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zsymm", "illegal value of LDC");
+        chameleon_error("CHAMELEON_zsymm", "illegal value of LDC");
         return -12;
     }
 
@@ -159,45 +159,45 @@ int CHAMELEON_zsymm( cham_side_t side, cham_uplo_t uplo, int M, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZSYMM, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZSYMM, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zsymm", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zsymm", "chameleon_tune() failed");
         return status;
     }
 
     /* Set MT & NT & KT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, uplo,
                      A, NB, NB, LDA, Am, Am, Am, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInput, ChamUpperLower,
                      B, NB, NB, LDB, N, M,  N, sequence, &request );
-    morse_zlap2tile( morse, &descCl, &descCt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descCl, &descCt, ChamDescInout, ChamUpperLower,
                      C, NB, NB, LDC, N, M,  N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zsymm_Tile_Async(  side, uplo, alpha, &descAt, &descBt, beta, &descCt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, uplo, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInput, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descCl, &descCt,
+    chameleon_ztile2lap( chamctxt, &descCl, &descCt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
-    morse_ztile2lap_cleanup( morse, &descCl, &descCt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descCl, &descCt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -264,17 +264,17 @@ int CHAMELEON_zsymm_Tile( cham_side_t side, cham_uplo_t uplo,
                       CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B,
                       CHAMELEON_Complex64_t beta,  CHAM_desc_t *C )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zsymm_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zsymm_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zsymm_Tile_Async(side, uplo, alpha, A, B, beta, C, sequence, &request );
 
@@ -282,9 +282,9 @@ int CHAMELEON_zsymm_Tile( cham_side_t side, cham_uplo_t uplo,
     CHAMELEON_Desc_Flush( B, sequence );
     CHAMELEON_Desc_Flush( C, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -321,19 +321,19 @@ int CHAMELEON_zsymm_Tile_Async( cham_side_t side, cham_uplo_t uplo,
                             CHAMELEON_Complex64_t beta,  CHAM_desc_t *C,
                             RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zsymm_Tile_Async", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zsymm_Tile_Async", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zsymm_Tile_Async", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zsymm_Tile_Async", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zsymm_Tile_Async", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zsymm_Tile_Async", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -341,72 +341,72 @@ int CHAMELEON_zsymm_Tile_Async( cham_side_t side, cham_uplo_t uplo,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zsymm_Tile_Async", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zsymm_Tile_Async", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zsymm_Tile_Async", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zsymm_Tile_Async", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(C) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zsymm_Tile_Async", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(C) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zsymm_Tile_Async", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if ( (side != ChamLeft) && (side != ChamRight) ){
-        morse_error("CHAMELEON_zsymm_Tile_Async", "illegal value of side");
-        return morse_request_fail(sequence, request, -1);
+        chameleon_error("CHAMELEON_zsymm_Tile_Async", "illegal value of side");
+        return chameleon_request_fail(sequence, request, -1);
     }
     if ((uplo != ChamLower) && (uplo != ChamUpper)) {
-        morse_error("CHAMELEON_zsymm_Tile_Async", "illegal value of uplo");
-        return morse_request_fail(sequence, request, -2);
+        chameleon_error("CHAMELEON_zsymm_Tile_Async", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, -2);
     }
 
     /* Check matrices sizes */
     if ( (B->m != C->m) || (B->n != C->n) ) {
-        morse_error("CHAMELEON_zsymm_Tile_Async", "B and C must have the same size");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zsymm_Tile_Async", "B and C must have the same size");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (A->m != A->n) ||
          ( (side == ChamLeft)  && (A->m != B->m ) ) ||
          ( (side == ChamRight) && (A->m != B->n ) ) ) {
-        morse_error("CHAMELEON_zsymm_Tile_Async", "Matrix A must be square of size M or N regarding side.");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zsymm_Tile_Async", "Matrix A must be square of size M or N regarding side.");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     /* Check tiles sizes */
     if ( (B->mb != C->mb) || (B->nb != C->nb) ) {
-        morse_error("CHAMELEON_zsymm_Tile_Async", "B and C must have the same tile sizes");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zsymm_Tile_Async", "B and C must have the same tile sizes");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (A->mb != A->nb) ||
          ( (side == ChamLeft)  && (A->mb != B->mb ) ) ||
          ( (side == ChamRight) && (A->mb != B->nb ) ) ) {
-        morse_error("CHAMELEON_zsymm_Tile_Async", "Matrix A must be square with square tiles wich fits the reagding tile size of B and C");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zsymm_Tile_Async", "Matrix A must be square with square tiles wich fits the reagding tile size of B and C");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     /* Check submatrix starting point */
     /* if ( (B->i != C->i) || (B->j != C->j) ) { */
-    /*     morse_error("CHAMELEON_zsymm_Tile_Async", "B and C submatrices doesn't match"); */
-    /*     return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE); */
+    /*     chameleon_error("CHAMELEON_zsymm_Tile_Async", "B and C submatrices doesn't match"); */
+    /*     return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE); */
     /* } */
     /* if ( (A->i != A->j) ||  */
     /*          ( (side == ChamLeft)  && (A->i != B->i ) ) ||  */
     /*          ( (side == ChamRight) && (A->i != B->j ) ) ) { */
-    /*     morse_error("CHAMELEON_zsymm_Tile_Async", "Submatrix A must start on diagnonal and match submatrices B and C."); */
-    /*     return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE); */
+    /*     chameleon_error("CHAMELEON_zsymm_Tile_Async", "Submatrix A must start on diagnonal and match submatrices B and C."); */
+    /*     return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE); */
     /* } */
     if( (A->i != 0) || (A->j != 0) ||
         (B->i != 0) || (B->j != 0) ||
         (C->i != 0) || (C->j != 0) ) {
-        morse_error("CHAMELEON_zhemm_Tile_Async", "Submatrices are not supported for now");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zhemm_Tile_Async", "Submatrices are not supported for now");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     /* Quick return */
@@ -416,7 +416,7 @@ int CHAMELEON_zsymm_Tile_Async( cham_side_t side, cham_uplo_t uplo,
         return CHAMELEON_SUCCESS;
     }
 
-    morse_pzsymm( side, uplo, alpha, A, B, beta, C, sequence, request );
+    chameleon_pzsymm( side, uplo, alpha, A, B, beta, C, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zsyr2k.c b/compute/zsyr2k.c
index 508055b831a27b279d91eb4516e228b2b8eb6867..7b1daed5e4aa944a27a01eac51e08823c37d8996 100644
--- a/compute/zsyr2k.c
+++ b/compute/zsyr2k.c
@@ -113,23 +113,23 @@ int CHAMELEON_zsyr2k( cham_uplo_t uplo, cham_trans_t trans, int N, int K,
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
     CHAM_desc_t descCl, descCt;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zsyr2k", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zsyr2k", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zsyr2k", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zsyr2k", "illegal value of uplo");
         return -1;
     }
     if ((trans != ChamNoTrans) && (trans != ChamTrans)) {
-        morse_error("CHAMELEON_zsyr2k", "illegal value of trans");
+        chameleon_error("CHAMELEON_zsyr2k", "illegal value of trans");
         return -2;
     }
     if ( trans == ChamNoTrans ) {
@@ -138,23 +138,23 @@ int CHAMELEON_zsyr2k( cham_uplo_t uplo, cham_trans_t trans, int N, int K,
         Am = K; An = N;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zsyr2k", "illegal value of N");
+        chameleon_error("CHAMELEON_zsyr2k", "illegal value of N");
         return -3;
     }
     if (K < 0) {
-        morse_error("CHAMELEON_zsyr2k", "illegal value of K");
+        chameleon_error("CHAMELEON_zsyr2k", "illegal value of K");
         return -4;
     }
     if (LDA < chameleon_max(1, Am)) {
-        morse_error("CHAMELEON_zsyr2k", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zsyr2k", "illegal value of LDA");
         return -7;
     }
     if (LDB < chameleon_max(1, Am)) {
-        morse_error("CHAMELEON_zsyr2k", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zsyr2k", "illegal value of LDB");
         return -9;
     }
     if (LDC < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zsyr2k", "illegal value of LDC");
+        chameleon_error("CHAMELEON_zsyr2k", "illegal value of LDC");
         return -12;
     }
 
@@ -164,45 +164,45 @@ int CHAMELEON_zsyr2k( cham_uplo_t uplo, cham_trans_t trans, int N, int K,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZSYRK, N, K, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZSYRK, N, K, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zsyr2k", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zsyr2k", "chameleon_tune() failed");
         return status;
     }
 
     /* Set MT & NT & KT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamUpperLower,
                      A, NB, NB, LDA, An, Am, An, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInput, ChamUpperLower,
                      B, NB, NB, LDB, An, Am, An, sequence, &request );
-    morse_zlap2tile( morse, &descCl, &descCt, ChamDescInout, uplo,
+    chameleon_zlap2tile( chamctxt, &descCl, &descCt, ChamDescInout, uplo,
                      C, NB, NB, LDC, N, N,  N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zsyr2k_Tile_Async( uplo, trans, alpha, &descAt, &descBt, beta, &descCt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInput, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descCl, &descCt,
+    chameleon_ztile2lap( chamctxt, &descCl, &descCt,
                      ChamDescInout, uplo, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
-    morse_ztile2lap_cleanup( morse, &descCl, &descCt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descCl, &descCt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -264,17 +264,17 @@ int CHAMELEON_zsyr2k_Tile( cham_uplo_t uplo, cham_trans_t trans,
                       CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B,
                       CHAMELEON_Complex64_t beta,  CHAM_desc_t *C )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zsyr2k_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zsyr2k_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zsyr2k_Tile_Async( uplo, trans, alpha, A, B, beta, C, sequence, &request );
 
@@ -282,9 +282,9 @@ int CHAMELEON_zsyr2k_Tile( cham_uplo_t uplo, cham_trans_t trans,
     CHAMELEON_Desc_Flush( B, sequence );
     CHAMELEON_Desc_Flush( C, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -321,21 +321,21 @@ int CHAMELEON_zsyr2k_Tile_Async( cham_uplo_t uplo, cham_trans_t trans,
                             CHAMELEON_Complex64_t beta,  CHAM_desc_t *C,
                             RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     int N, K;
     int Am, An, Amb;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zsyr2k_Tile_Async", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zsyr2k_Tile_Async", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zsyr2k_Tile_Async", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zsyr2k_Tile_Async", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zsyr2k_Tile_Async", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zsyr2k_Tile_Async", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -343,30 +343,30 @@ int CHAMELEON_zsyr2k_Tile_Async( cham_uplo_t uplo, cham_trans_t trans,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zsyr2k_Tile_Async", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zsyr2k_Tile_Async", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zsyr2k_Tile_Async", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zsyr2k_Tile_Async", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(C) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zsyr2k_Tile_Async", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(C) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zsyr2k_Tile_Async", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zsyr2k", "illegal value of uplo");
-        return morse_request_fail(sequence, request, -1);
+        chameleon_error("CHAMELEON_zsyr2k", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, -1);
     }
     if ((trans != ChamNoTrans) && (trans != ChamTrans)) {
-        morse_error("CHAMELEON_zsyr2k", "illegal value of trans");
-        return morse_request_fail(sequence, request, -2);
+        chameleon_error("CHAMELEON_zsyr2k", "illegal value of trans");
+        return chameleon_request_fail(sequence, request, -2);
     }
 
     if ( trans == ChamNoTrans ) {
@@ -380,20 +380,20 @@ int CHAMELEON_zsyr2k_Tile_Async( cham_uplo_t uplo, cham_trans_t trans,
     }
 
     if (C->mb != C->nb) {
-        morse_error("CHAMELEON_zsyr2k_Tile_Async", "only square tiles for C are supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zsyr2k_Tile_Async", "only square tiles for C are supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (B->mb != A->mb) || (B->nb != A->nb) || (Amb != C->mb) ){
-        morse_error("CHAMELEON_zsyr2k_Tile_Async", "tile sizes have to match");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zsyr2k_Tile_Async", "tile sizes have to match");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if (C->m != C->n) {
-        morse_error("CHAMELEON_zsyr2k_Tile_Async", "only square matrix C is supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zsyr2k_Tile_Async", "only square matrix C is supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (B->m != A->m) || (B->n != A->n) || (Am != C->m) ){
-        morse_error("CHAMELEON_zsyr2k_Tile_Async", "sizes of matrices have to match");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zsyr2k_Tile_Async", "sizes of matrices have to match");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     N = C->m;
@@ -404,7 +404,7 @@ int CHAMELEON_zsyr2k_Tile_Async( cham_uplo_t uplo, cham_trans_t trans,
          ((alpha == (CHAMELEON_Complex64_t)0.0 || K == 0) && beta == (CHAMELEON_Complex64_t)1.0))
         return CHAMELEON_SUCCESS;
 
-    morse_pzsyr2k( uplo, trans, alpha, A, B, beta, C, sequence, request );
+    chameleon_pzsyr2k( uplo, trans, alpha, A, B, beta, C, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zsyrk.c b/compute/zsyrk.c
index 51377d7d6fc97caa3d38d80898badb4a6011469c..403f8acd7471a06d83217af71458f7af205ae275 100644
--- a/compute/zsyrk.c
+++ b/compute/zsyrk.c
@@ -102,23 +102,23 @@ int CHAMELEON_zsyrk( cham_uplo_t uplo, cham_trans_t trans, int N, int K,
     int status;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descCl, descCt;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zsyrk", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zsyrk", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zsyrk", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zsyrk", "illegal value of uplo");
         return -1;
     }
     if ((trans != ChamNoTrans) && (trans != ChamTrans)) {
-        morse_error("CHAMELEON_zsyrk", "illegal value of trans");
+        chameleon_error("CHAMELEON_zsyrk", "illegal value of trans");
         return -2;
     }
     if ( trans == ChamNoTrans ) {
@@ -127,19 +127,19 @@ int CHAMELEON_zsyrk( cham_uplo_t uplo, cham_trans_t trans, int N, int K,
         Am = K; An = N;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zsyrk", "illegal value of N");
+        chameleon_error("CHAMELEON_zsyrk", "illegal value of N");
         return -3;
     }
     if (K < 0) {
-        morse_error("CHAMELEON_zsyrk", "illegal value of K");
+        chameleon_error("CHAMELEON_zsyrk", "illegal value of K");
         return -4;
     }
     if (LDA < chameleon_max(1, Am)) {
-        morse_error("CHAMELEON_zsyrk", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zsyrk", "illegal value of LDA");
         return -7;
     }
     if (LDC < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zsyrk", "illegal value of LDC");
+        chameleon_error("CHAMELEON_zsyrk", "illegal value of LDC");
         return -10;
     }
 
@@ -149,40 +149,40 @@ int CHAMELEON_zsyrk( cham_uplo_t uplo, cham_trans_t trans, int N, int K,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZSYRK, N, K, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZSYRK, N, K, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zsyrk", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zsyrk", "chameleon_tune() failed");
         return status;
     }
 
     /* Set MT & NT & KT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamUpperLower,
                      A, NB, NB, LDA, An, Am, An, sequence, &request );
-    morse_zlap2tile( morse, &descCl, &descCt, ChamDescInout, uplo,
+    chameleon_zlap2tile( chamctxt, &descCl, &descCt, ChamDescInout, uplo,
                      C, NB, NB, LDC, N, N,  N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zsyrk_Tile_Async( uplo, trans, alpha, &descAt, beta, &descCt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descCl, &descCt,
+    chameleon_ztile2lap( chamctxt, &descCl, &descCt,
                      ChamDescInout, uplo, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descCl, &descCt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descCl, &descCt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -240,26 +240,26 @@ int CHAMELEON_zsyrk_Tile( cham_uplo_t uplo, cham_trans_t trans,
                       CHAMELEON_Complex64_t alpha, CHAM_desc_t *A,
                       CHAMELEON_Complex64_t beta,  CHAM_desc_t *C )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zsyrk_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zsyrk_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zsyrk_Tile_Async( uplo, trans, alpha, A, beta, C, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( C, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -296,21 +296,21 @@ int CHAMELEON_zsyrk_Tile_Async( cham_uplo_t uplo, cham_trans_t trans,
                             CHAMELEON_Complex64_t beta,  CHAM_desc_t *C,
                             RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     int N, K;
     int Am, An, Amb;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zsyrk_Tile_Async", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zsyrk_Tile_Async", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zsyrk_Tile_Async", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zsyrk_Tile_Async", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zsyrk_Tile_Async", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zsyrk_Tile_Async", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -318,26 +318,26 @@ int CHAMELEON_zsyrk_Tile_Async( cham_uplo_t uplo, cham_trans_t trans,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zsyrk_Tile_Async", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zsyrk_Tile_Async", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(C) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zsyrk_Tile_Async", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(C) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zsyrk_Tile_Async", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zsyrk", "illegal value of uplo");
-        return morse_request_fail(sequence, request, -1);
+        chameleon_error("CHAMELEON_zsyrk", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, -1);
     }
     if ((trans != ChamNoTrans) && (trans != ChamTrans)) {
-        morse_error("CHAMELEON_zsyrk", "illegal value of transA");
-        return morse_request_fail(sequence, request, -2);
+        chameleon_error("CHAMELEON_zsyrk", "illegal value of transA");
+        return chameleon_request_fail(sequence, request, -2);
     }
 
     if ( trans == ChamNoTrans ) {
@@ -351,20 +351,20 @@ int CHAMELEON_zsyrk_Tile_Async( cham_uplo_t uplo, cham_trans_t trans,
     }
 
     if (C->mb != C->nb) {
-        morse_error("CHAMELEON_zsyrk_Tile_Async", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zsyrk_Tile_Async", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if (Amb != C->mb) {
-        morse_error("CHAMELEON_zsyrk_Tile_Async", "tile sizes have to match");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zsyrk_Tile_Async", "tile sizes have to match");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if (C->m != C->n) {
-        morse_error("CHAMELEON_zsyrk_Tile_Async", "only square matrix C is supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zsyrk_Tile_Async", "only square matrix C is supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if (Am != C->m) {
-        morse_error("CHAMELEON_zsyrk_Tile_Async", "sizes of matrices have to match");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zsyrk_Tile_Async", "sizes of matrices have to match");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     N = C->m;
@@ -375,7 +375,7 @@ int CHAMELEON_zsyrk_Tile_Async( cham_uplo_t uplo, cham_trans_t trans,
          ((alpha == (CHAMELEON_Complex64_t)0.0 || K == 0) && beta == (CHAMELEON_Complex64_t)1.0))
         return CHAMELEON_SUCCESS;
 
-    morse_pzsyrk( uplo, trans, alpha, A, beta, C, sequence, request );
+    chameleon_pzsyrk( uplo, trans, alpha, A, beta, C, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zsysv.c b/compute/zsysv.c
index c5e6d3a3964cbeba8ba216aa13ab27b85fad959d..f82d714e3c67a20c9a7ab75c9cdaf7592f0fdf8a 100644
--- a/compute/zsysv.c
+++ b/compute/zsysv.c
@@ -93,36 +93,36 @@ int CHAMELEON_zsysv( cham_uplo_t uplo, int N, int NRHS,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zsysv", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zsysv", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zsysv", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zsysv", "illegal value of uplo");
         return -1;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zsysv", "illegal value of N");
+        chameleon_error("CHAMELEON_zsysv", "illegal value of N");
         return -2;
     }
     if (NRHS < 0) {
-        morse_error("CHAMELEON_zsysv", "illegal value of NRHS");
+        chameleon_error("CHAMELEON_zsysv", "illegal value of NRHS");
         return -3;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zsysv", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zsysv", "illegal value of LDA");
         return -5;
     }
     if (LDB < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zsysv", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zsysv", "illegal value of LDB");
         return -7;
     }
     /* Quick return - currently NOT equivalent to LAPACK's
@@ -131,40 +131,40 @@ int CHAMELEON_zsysv( cham_uplo_t uplo, int N, int NRHS,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZSYSV, N, N, NRHS);
+    status = chameleon_tune(CHAMELEON_FUNC_ZSYSV, N, N, NRHS);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zsysv", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zsysv", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT & NTRHS */
     NB    = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, uplo,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, ChamUpperLower,
                      B, NB, NB, LDB, NRHS, N, NRHS, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zsysv_Tile_Async( uplo, &descAt, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, uplo, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 /**
@@ -215,26 +215,26 @@ int CHAMELEON_zsysv( cham_uplo_t uplo, int N, int NRHS,
  */
 int CHAMELEON_zsysv_Tile( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zsysv_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zsysv_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zsysv_Tile_Async( uplo, A, B, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -268,19 +268,19 @@ int CHAMELEON_zsysv_Tile( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B )
 int CHAMELEON_zsysv_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B,
                             RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zsysv_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zsysv_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zsysv_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zsysv_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zsysv_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zsysv_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -288,26 +288,26 @@ int CHAMELEON_zsysv_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zsysv_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zsysv_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zsysv_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zsysv_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || B->nb != B->mb) {
-        morse_error("CHAMELEON_zsysv_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zsysv_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zsysv_Tile", "illegal value of uplo");
-        return morse_request_fail(sequence, request, -1);
+        chameleon_error("CHAMELEON_zsysv_Tile", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, -1);
     }
     /* Quick return - currently NOT equivalent to LAPACK's
      * LAPACK does not have such check for Dsysv */
@@ -315,11 +315,11 @@ int CHAMELEON_zsysv_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B
      if (chameleon_min(N, NRHS) == 0)
      return CHAMELEON_SUCCESS;
      */
-    morse_pzsytrf( uplo, A, sequence, request );
+    chameleon_pzsytrf( uplo, A, sequence, request );
 
-    morse_pztrsm( ChamLeft, uplo, uplo == ChamUpper ? ChamTrans : ChamNoTrans, ChamNonUnit, 1.0, A, B, sequence, request );
+    chameleon_pztrsm( ChamLeft, uplo, uplo == ChamUpper ? ChamTrans : ChamNoTrans, ChamNonUnit, 1.0, A, B, sequence, request );
 
-    morse_pztrsm( ChamLeft, uplo, uplo == ChamUpper ? ChamNoTrans : ChamTrans, ChamNonUnit, 1.0, A, B, sequence, request );
+    chameleon_pztrsm( ChamLeft, uplo, uplo == ChamUpper ? ChamNoTrans : ChamTrans, ChamNonUnit, 1.0, A, B, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zsytrf.c b/compute/zsytrf.c
index 1ef9e2a9e496e4a4f70468151e935383263462e3..95fb044b2e6aa44364b67538bcaaa5d96f11252e 100644
--- a/compute/zsytrf.c
+++ b/compute/zsytrf.c
@@ -78,27 +78,27 @@ int CHAMELEON_zsytrf( cham_uplo_t uplo, int N,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zsytrf", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zsytrf", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zsytrf", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zsytrf", "illegal value of uplo");
         return -1;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zsytrf", "illegal value of N");
+        chameleon_error("CHAMELEON_zsytrf", "illegal value of N");
         return -2;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zsytrf", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zsytrf", "illegal value of LDA");
         return -4;
     }
     /* Quick return */
@@ -106,35 +106,35 @@ int CHAMELEON_zsytrf( cham_uplo_t uplo, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZSYSV, N, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZSYSV, N, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zsytrf", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zsytrf", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB   = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, uplo,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zsytrf_Tile_Async( uplo, &descAt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, uplo, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
 
     return status;
 }
@@ -181,25 +181,25 @@ int CHAMELEON_zsytrf( cham_uplo_t uplo, int N,
  */
 int CHAMELEON_zsytrf_Tile( cham_uplo_t uplo, CHAM_desc_t *A )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zsytrf_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zsytrf_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zsytrf_Tile_Async( uplo, A, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -233,19 +233,19 @@ int CHAMELEON_zsytrf_Tile( cham_uplo_t uplo, CHAM_desc_t *A )
 int CHAMELEON_zsytrf_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zsytrf_Tile_Async", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zsytrf_Tile_Async", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zsytrf_Tile_Async", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zsytrf_Tile_Async", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zsytrf_Tile_Async", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zsytrf_Tile_Async", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -253,29 +253,29 @@ int CHAMELEON_zsytrf_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zsytrf_Tile_Async", "invalid descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zsytrf_Tile_Async", "invalid descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_zsytrf_Tile_Async", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zsytrf_Tile_Async", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zsytrf_Tile_Async", "illegal value of uplo");
-        return morse_request_fail(sequence, request, -1);
+        chameleon_error("CHAMELEON_zsytrf_Tile_Async", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, -1);
     }
     /* Quick return */
     /*
      if (chameleon_max(N, 0) == 0)
      return CHAMELEON_SUCCESS;
      */
-    morse_pzsytrf( uplo, A, sequence, request );
+    chameleon_pzsytrf( uplo, A, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zsytrs.c b/compute/zsytrs.c
index 1d2a08a4600c5cd6740995f7dcb5d36c8d81f07d..26ad14b348f3d5bc7f1105598ef08468c70506bd 100644
--- a/compute/zsytrs.c
+++ b/compute/zsytrs.c
@@ -80,36 +80,36 @@ int CHAMELEON_zsytrs( cham_uplo_t uplo, int N, int NRHS,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zsytrs", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zsytrs", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zsytrs", "illegal value of uplo");
+        chameleon_error("CHAMELEON_zsytrs", "illegal value of uplo");
         return -1;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zsytrs", "illegal value of N");
+        chameleon_error("CHAMELEON_zsytrs", "illegal value of N");
         return -2;
     }
     if (NRHS < 0) {
-        morse_error("CHAMELEON_zsytrs", "illegal value of NRHS");
+        chameleon_error("CHAMELEON_zsytrs", "illegal value of NRHS");
         return -3;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zsytrs", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zsytrs", "illegal value of LDA");
         return -5;
     }
     if (LDB < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_zsytrs", "illegal value of LDB");
+        chameleon_error("CHAMELEON_zsytrs", "illegal value of LDB");
         return -7;
     }
     /* Quick return */
@@ -117,40 +117,40 @@ int CHAMELEON_zsytrs( cham_uplo_t uplo, int N, int NRHS,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZSYSV, N, N, NRHS);
+    status = chameleon_tune(CHAMELEON_FUNC_ZSYSV, N, N, NRHS);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zsytrs", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zsytrs", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT & NTRHS */
     NB    = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, uplo,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, ChamUpperLower,
                      B, NB, NB, LDB, NRHS, N, NRHS, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zsytrs_Tile_Async( uplo, &descAt, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, uplo, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -194,26 +194,26 @@ int CHAMELEON_zsytrs( cham_uplo_t uplo, int N, int NRHS,
  */
 int CHAMELEON_zsytrs_Tile( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zsytrs_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zsytrs_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zsytrs_Tile_Async( uplo, A, B, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -247,19 +247,19 @@ int CHAMELEON_zsytrs_Tile( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B )
 int CHAMELEON_zsytrs_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zsytrs_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zsytrs_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zsytrs_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zsytrs_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zsytrs_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zsytrs_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -267,35 +267,35 @@ int CHAMELEON_zsytrs_Tile_Async( cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zsytrs_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zsytrs_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zsytrs_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zsytrs_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || B->nb != B->mb) {
-        morse_error("CHAMELEON_zsytrs_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zsytrs_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_zsytrs_Tile", "illegal value of uplo");
-        return morse_request_fail(sequence, request, -1);
+        chameleon_error("CHAMELEON_zsytrs_Tile", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, -1);
     }
     /* Quick return */
     /*
      if (chameleon_min(N, NRHS) == 0)
      return CHAMELEON_SUCCESS;
      */
-    morse_pztrsm( ChamLeft, uplo, uplo == ChamUpper ? ChamTrans : ChamNoTrans, ChamNonUnit, 1.0, A, B, sequence, request );
+    chameleon_pztrsm( ChamLeft, uplo, uplo == ChamUpper ? ChamTrans : ChamNoTrans, ChamNonUnit, 1.0, A, B, sequence, request );
 
-    morse_pztrsm( ChamLeft, uplo, uplo == ChamUpper ? ChamNoTrans : ChamTrans, ChamNonUnit, 1.0, A, B, sequence, request );
+    chameleon_pztrsm( ChamLeft, uplo, uplo == ChamUpper ? ChamNoTrans : ChamTrans, ChamNonUnit, 1.0, A, B, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/ztile.c b/compute/ztile.c
index a57e6b40dfe31381ba3d3257a43b2a465316e394..1a09b2bcaa0682547d79f8896dd71ee776f310bb 100644
--- a/compute/ztile.c
+++ b/compute/ztile.c
@@ -58,43 +58,43 @@
  */
 int CHAMELEON_zLapack_to_Tile( CHAMELEON_Complex64_t *Af77, int LDA, CHAM_desc_t *A )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request;
     CHAM_desc_t *B;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zLapack_to_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zLapack_to_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check descriptor for correctness */
-    if (morse_desc_check( A ) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zLapack_to_Tile", "invalid descriptor");
+    if (chameleon_desc_check( A ) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zLapack_to_Tile", "invalid descriptor");
         return CHAMELEON_ERR_ILLEGAL_VALUE;
     }
 
     /* Create the B descriptor to handle the Lapack format matrix */
     CHAMELEON_Desc_Create_User( &B, Af77, ChamComplexDouble, A->mb, A->nb, A->bsiz,
                             LDA, A->n, 0, 0, A->m, A->n, 1, 1,
-                            morse_getaddr_cm, morse_getblkldd_cm, NULL );
+                            chameleon_getaddr_cm, chameleon_getblkldd_cm, NULL );
 
     /* Start the computation */
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
-    morse_pzlacpy( ChamUpperLower, B, A, sequence, &request );
+    chameleon_pzlacpy( ChamUpperLower, B, A, sequence, &request );
 
     CHAMELEON_Desc_Flush( B, sequence );
     CHAMELEON_Desc_Flush( A, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Destroy temporary B descriptor */
     CHAMELEON_Desc_Destroy( &B );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -135,41 +135,41 @@ int CHAMELEON_zLapack_to_Tile( CHAMELEON_Complex64_t *Af77, int LDA, CHAM_desc_t
  */
 int CHAMELEON_zTile_to_Lapack( CHAM_desc_t *A, CHAMELEON_Complex64_t *Af77, int LDA )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request;
     CHAM_desc_t *B;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zTile_to_Lapack", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zTile_to_Lapack", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check descriptor for correctness */
-    if (morse_desc_check( A ) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zTile_to_Lapack", "invalid descriptor");
+    if (chameleon_desc_check( A ) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zTile_to_Lapack", "invalid descriptor");
         return CHAMELEON_ERR_ILLEGAL_VALUE;
     }
 
     /* Create the B descriptor to handle the Lapack format matrix */
     CHAMELEON_Desc_Create_User( &B, Af77, ChamComplexDouble, A->mb, A->nb, A->bsiz,
                             LDA, A->n, 0, 0, A->m, A->n, 1, 1,
-                            morse_getaddr_cm, morse_getblkldd_cm, NULL );
+                            chameleon_getaddr_cm, chameleon_getblkldd_cm, NULL );
 
     /* Start the computation */
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
-    morse_pzlacpy( ChamUpperLower, A, B, sequence, &request );
+    chameleon_pzlacpy( ChamUpperLower, A, B, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     CHAMELEON_Desc_Destroy( &B );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
diff --git a/compute/ztpgqrt.c b/compute/ztpgqrt.c
index 51b82c36cd2cbca340ef44bfdbf5b58f99c22014..f3a65b6a6955d6b47c2b81309bf94d3e24d9524a 100644
--- a/compute/ztpgqrt.c
+++ b/compute/ztpgqrt.c
@@ -137,7 +137,7 @@ int CHAMELEON_ztpgqrt( int M, int N, int K, int L,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descQ1l, descQ1t;
@@ -146,47 +146,47 @@ int CHAMELEON_ztpgqrt( int M, int N, int K, int L,
     CHAM_desc_t descV2l, descV2t;
     int minMK = chameleon_min( M, K );
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_ztpgqrt", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_ztpgqrt", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if (M < 0) {
-        morse_error("CHAMELEON_ztpgqrt", "illegal value of M");
+        chameleon_error("CHAMELEON_ztpgqrt", "illegal value of M");
         return -1;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_ztpgqrt", "illegal value of N");
+        chameleon_error("CHAMELEON_ztpgqrt", "illegal value of N");
         return -2;
     }
     if (K < 0) {
-        morse_error("CHAMELEON_ztpgqrt", "illegal value of K");
+        chameleon_error("CHAMELEON_ztpgqrt", "illegal value of K");
         return -3;
     }
     if ((L < 0) || ((L > minMK) && (minMK > 0))) {
-        morse_error("CHAMELEON_ztpgqrt", "illegal value of N");
+        chameleon_error("CHAMELEON_ztpgqrt", "illegal value of N");
         return -4;
     }
     if (K != N) {
-        morse_error("CHAMELEON_ztpgqrt", "illegal value of K and N. K must be equal to N");
+        chameleon_error("CHAMELEON_ztpgqrt", "illegal value of K and N. K must be equal to N");
         return -3;
     }
     if (LDV1 < chameleon_max(1, K)) {
-        morse_error("CHAMELEON_ztpgqrt", "illegal value of LDV1");
+        chameleon_error("CHAMELEON_ztpgqrt", "illegal value of LDV1");
         return -6;
     }
     if (LDV2 < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_ztpgqrt", "illegal value of LDV2");
+        chameleon_error("CHAMELEON_ztpgqrt", "illegal value of LDV2");
         return -9;
     }
     if (LDQ1 < chameleon_max(1, K)) {
-        morse_error("CHAMELEON_ztpgqrt", "illegal value of LDQ1");
+        chameleon_error("CHAMELEON_ztpgqrt", "illegal value of LDQ1");
         return -11;
     }
     if (LDQ2 < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_ztpgqrt", "illegal value of LDQ2");
+        chameleon_error("CHAMELEON_ztpgqrt", "illegal value of LDQ2");
         return -13;
     }
 
@@ -195,52 +195,52 @@ int CHAMELEON_ztpgqrt( int M, int N, int K, int L,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on M, N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZGELS, M, K, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGELS, M, K, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztpgqrt", "morse_tune() failed");
+        chameleon_error("CHAMELEON_ztpgqrt", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descV1l, &descV1t, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descV1l, &descV1t, ChamDescInput, ChamUpperLower,
                      V1, NB, NB, LDV1, K, M, K, sequence, &request );
-    morse_zlap2tile( morse, &descV2l, &descV2t, ChamDescInput, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descV2l, &descV2t, ChamDescInput, ChamUpperLower,
                      V2, NB, NB, LDV2, K, M, K, sequence, &request );
-    morse_zlap2tile( morse, &descQ1l, &descQ1t, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descQ1l, &descQ1t, ChamDescInout, ChamUpperLower,
                      Q1, NB, NB, LDQ1, N, K, N, sequence, &request );
-    morse_zlap2tile( morse, &descQ2l, &descQ2t, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descQ2l, &descQ2t, ChamDescInout, ChamUpperLower,
                      Q2, NB, NB, LDQ2, N, M, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_ztpgqrt_Tile_Async( L, &descV1t, descT1, &descV2t, descT2, &descQ1t, &descQ2t, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descV1l, &descV1t,
+    chameleon_ztile2lap( chamctxt, &descV1l, &descV1t,
                      ChamDescInput, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descV2l, &descV2t,
+    chameleon_ztile2lap( chamctxt, &descV2l, &descV2t,
                      ChamDescInput, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descQ1l, &descQ1t,
+    chameleon_ztile2lap( chamctxt, &descQ1l, &descQ1t,
                      ChamDescInout, ChamUpperLower, sequence, &request );
-    morse_ztile2lap( morse, &descQ2l, &descQ2t,
+    chameleon_ztile2lap( chamctxt, &descQ2l, &descQ2t,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descT1, sequence );
     CHAMELEON_Desc_Flush( descT2, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descV1l, &descV1t );
-    morse_ztile2lap_cleanup( morse, &descV2l, &descV2t );
-    morse_ztile2lap_cleanup( morse, &descQ1l, &descQ1t );
-    morse_ztile2lap_cleanup( morse, &descQ2l, &descQ2t );
+    chameleon_ztile2lap_cleanup( chamctxt, &descV1l, &descV1t );
+    chameleon_ztile2lap_cleanup( chamctxt, &descV2l, &descV2t );
+    chameleon_ztile2lap_cleanup( chamctxt, &descQ1l, &descQ1t );
+    chameleon_ztile2lap_cleanup( chamctxt, &descQ2l, &descQ2t );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -276,17 +276,17 @@ int CHAMELEON_ztpgqrt_Tile( int L,
                         CHAM_desc_t *V2, CHAM_desc_t *T2,
                         CHAM_desc_t *Q1, CHAM_desc_t *Q2 )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_ztpgqrt_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_ztpgqrt_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_ztpgqrt_Tile_Async( L, V1, T1, V2, T2, Q1, Q2, sequence, &request );
 
@@ -297,9 +297,9 @@ int CHAMELEON_ztpgqrt_Tile( int L,
     CHAMELEON_Desc_Flush( Q1, sequence );
     CHAMELEON_Desc_Flush( Q2, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -338,20 +338,20 @@ int CHAMELEON_ztpgqrt_Tile_Async( int L,
                               CHAM_desc_t *Q1, CHAM_desc_t *Q2,
                               RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_ztpgqrt_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_ztpgqrt_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_ztpgqrt_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_ztpgqrt_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_ztpgqrt_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_ztpgqrt_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -359,42 +359,42 @@ int CHAMELEON_ztpgqrt_Tile_Async( int L,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(V1) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztpgqrt_Tile", "invalid V1 descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(V1) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_ztpgqrt_Tile", "invalid V1 descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(T1) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztpgqrt_Tile", "invalid T1 descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(T1) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_ztpgqrt_Tile", "invalid T1 descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(V2) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztpgqrt_Tile", "invalid V2 descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(V2) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_ztpgqrt_Tile", "invalid V2 descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(T2) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztpgqrt_Tile", "invalid T2 descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(T2) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_ztpgqrt_Tile", "invalid T2 descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(Q1) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztpgqrt_Tile", "invalid Q1 descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(Q1) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_ztpgqrt_Tile", "invalid Q1 descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(Q2) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztpgqrt_Tile", "invalid Q2 descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(Q2) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_ztpgqrt_Tile", "invalid Q2 descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (Q1->nb != Q1->mb) {
-        morse_error("CHAMELEON_ztpgqrt_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_ztpgqrt_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (L != 0) && (((Q2->m - L) % Q2->mb) != 0) ) {
-        morse_error("CHAMELEON_ztpgqrt_Tile", "Triangular part must be aligned with tiles");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_ztpgqrt_Tile", "Triangular part must be aligned with tiles");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 #if defined(CHAMELEON_COPY_DIAG)
     {
@@ -404,18 +404,18 @@ int CHAMELEON_ztpgqrt_Tile_Async( int L,
         } else {
             minMT = V1->mt;
         }
-        morse_zdesc_alloc_diag(D, V1->mb, V1->nb, minMT*V1->mb, V1->nb, 0, 0, minMT*V1->mb, V1->nb, V1->p, V1->q);
+        chameleon_zdesc_alloc_diag(D, V1->mb, V1->nb, minMT*V1->mb, V1->nb, 0, 0, minMT*V1->mb, V1->nb, V1->p, V1->q);
         Dptr = &D;
     }
 #endif
 
-    /* if (morse->householder == ChamFlatHouseholder) { */
-    morse_pzlaset( ChamUpperLower, 0., 1., Q1, sequence, request );
-    morse_pzlaset( ChamUpperLower, 0., 0., Q2, sequence, request );
-    morse_pztpgqrt( L, V1, T1, V2, T2, Q1, Q2, Dptr, sequence, request );
+    /* if (chamctxt->householder == ChamFlatHouseholder) { */
+    chameleon_pzlaset( ChamUpperLower, 0., 1., Q1, sequence, request );
+    chameleon_pzlaset( ChamUpperLower, 0., 0., Q2, sequence, request );
+    chameleon_pztpgqrt( L, V1, T1, V2, T2, Q1, Q2, Dptr, sequence, request );
     /* } */
     /* else { */
-    /*    morse_pztpgqrtrh( Q1, T, CHAMELEON_RHBLK, sequence, request ); */
+    /*    chameleon_pztpgqrtrh( Q1, T, CHAMELEON_RHBLK, sequence, request ); */
     /* } */
     if (Dptr != NULL) {
         CHAMELEON_Desc_Flush( V1, sequence );
@@ -425,8 +425,8 @@ int CHAMELEON_ztpgqrt_Tile_Async( int L,
         CHAMELEON_Desc_Flush( Q1, sequence );
         CHAMELEON_Desc_Flush( Q2, sequence );
         CHAMELEON_Desc_Flush( Dptr, sequence );
-        morse_sequence_wait( morse, sequence );
-        morse_desc_mat_free( Dptr );
+        chameleon_sequence_wait( chamctxt, sequence );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/ztpqrt.c b/compute/ztpqrt.c
index 97d7cd993993d8998543607d51428fd2a78043b2..fd4fb0a1782f42e190278a5c07213f473c8255e4 100644
--- a/compute/ztpqrt.c
+++ b/compute/ztpqrt.c
@@ -131,38 +131,38 @@ int CHAMELEON_ztpqrt( int M, int N, int L,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
     int minMN = chameleon_min( M, N );
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_ztpqrt", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_ztpqrt", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if (M < 0) {
-        morse_error("CHAMELEON_ztpqrt", "illegal value of M");
+        chameleon_error("CHAMELEON_ztpqrt", "illegal value of M");
         return -1;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_ztpqrt", "illegal value of N");
+        chameleon_error("CHAMELEON_ztpqrt", "illegal value of N");
         return -2;
     }
     if ((L < 0) || ((L > minMN) && (minMN > 0))) {
-        morse_error("CHAMELEON_ztpqrt", "illegal value of N");
+        chameleon_error("CHAMELEON_ztpqrt", "illegal value of N");
         return -3;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_ztpqrt", "illegal value of LDA");
+        chameleon_error("CHAMELEON_ztpqrt", "illegal value of LDA");
         return -5;
     }
     if (LDB < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_ztpqrt", "illegal value of LDB");
+        chameleon_error("CHAMELEON_ztpqrt", "illegal value of LDB");
         return -7;
     }
 
@@ -171,41 +171,41 @@ int CHAMELEON_ztpqrt( int M, int N, int L,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on M, N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZGELS, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGELS, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztpqrt", "morse_tune() failed");
+        chameleon_error("CHAMELEON_ztpqrt", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, ChamUpper,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, ChamUpper,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, ChamUpperLower,
                      B, NB, NB, LDB, N, M, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_ztpqrt_Tile_Async( L, &descAt, &descBt, descT, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, ChamUpper, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descT, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -250,17 +250,17 @@ int CHAMELEON_ztpqrt( int M, int N, int L,
  */
 int CHAMELEON_ztpqrt_Tile( int L, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_ztpqrt_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_ztpqrt_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_ztpqrt_Tile_Async( L, A, B, T, sequence, &request );
 
@@ -268,9 +268,9 @@ int CHAMELEON_ztpqrt_Tile( int L, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T
     CHAMELEON_Desc_Flush( B, sequence );
     CHAMELEON_Desc_Flush( T, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -306,19 +306,19 @@ int CHAMELEON_ztpqrt_Tile( int L, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T
 int CHAMELEON_ztpqrt_Tile_Async( int L, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_ztpqrt_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_ztpqrt_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_ztpqrt_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_ztpqrt_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_ztpqrt_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_ztpqrt_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -326,37 +326,37 @@ int CHAMELEON_ztpqrt_Tile_Async( int L, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_des
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztpqrt_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_ztpqrt_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztpqrt_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_ztpqrt_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(T) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztpqrt_Tile", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(T) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_ztpqrt_Tile", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_ztpqrt_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_ztpqrt_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (L != 0) && (((B->m - L) % B->mb) != 0) ) {
-        morse_error("CHAMELEON_ztpqrt_Tile", "Triangular part must be aligned with tiles");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_ztpqrt_Tile", "Triangular part must be aligned with tiles");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
-    /* if (morse->householder == ChamFlatHouseholder) { */
-    morse_pztpqrt( L, A, B, T, sequence, request );
+    /* if (chamctxt->householder == ChamFlatHouseholder) { */
+    chameleon_pztpqrt( L, A, B, T, sequence, request );
     /* } */
     /* else { */
-    /*    morse_pztpqrtrh( A, T, CHAMELEON_RHBLK, sequence, request ); */
+    /*    chameleon_pztpqrtrh( A, T, CHAMELEON_RHBLK, sequence, request ); */
     /* } */
 
     return CHAMELEON_SUCCESS;
diff --git a/compute/ztradd.c b/compute/ztradd.c
index ac42868403d5faea12d7458a8ebf6e2d9872007a..a08ef1e3df91069f98f0e0338307d8939d98166a 100644
--- a/compute/ztradd.c
+++ b/compute/ztradd.c
@@ -101,23 +101,23 @@ int CHAMELEON_ztradd( cham_uplo_t uplo, cham_trans_t trans, int M, int N,
     int status;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_ztradd", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_ztradd", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if ((uplo != ChamUpperLower) && (uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_ztradd", "illegal value of uplo");
+        chameleon_error("CHAMELEON_ztradd", "illegal value of uplo");
         return -1;
     }
     if ((trans < ChamNoTrans) || (trans > ChamConjTrans)) {
-        morse_error("CHAMELEON_ztradd", "illegal value of trans");
+        chameleon_error("CHAMELEON_ztradd", "illegal value of trans");
         return -2;
     }
     if ( trans == ChamNoTrans ) {
@@ -126,19 +126,19 @@ int CHAMELEON_ztradd( cham_uplo_t uplo, cham_trans_t trans, int M, int N,
         Am = N; An = M;
     }
     if (M < 0) {
-        morse_error("CHAMELEON_ztradd", "illegal value of M");
+        chameleon_error("CHAMELEON_ztradd", "illegal value of M");
         return -3;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_ztradd", "illegal value of N");
+        chameleon_error("CHAMELEON_ztradd", "illegal value of N");
         return -4;
     }
     if (LDA < chameleon_max(1, Am)) {
-        morse_error("CHAMELEON_ztradd", "illegal value of LDA");
+        chameleon_error("CHAMELEON_ztradd", "illegal value of LDA");
         return -7;
     }
     if (LDB < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_ztradd", "illegal value of LDB");
+        chameleon_error("CHAMELEON_ztradd", "illegal value of LDB");
         return -10;
     }
 
@@ -148,40 +148,40 @@ int CHAMELEON_ztradd( cham_uplo_t uplo, cham_trans_t trans, int M, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNBSIZE */
-    status = morse_tune(CHAMELEON_FUNC_ZGEMM, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGEMM, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztradd", "morse_tune() failed");
+        chameleon_error("CHAMELEON_ztradd", "chameleon_tune() failed");
         return status;
     }
 
     /* Set MT & NT & KT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, uplo,
                      A, NB, NB, LDA, An, Am, An, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, uplo,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, uplo,
                      B, NB, NB, LDB, N, M, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_ztradd_Tile_Async( uplo, trans, alpha, &descAt, beta, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, uplo, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInout, uplo, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -243,26 +243,26 @@ int CHAMELEON_ztradd_Tile( cham_uplo_t uplo, cham_trans_t trans,
                        CHAMELEON_Complex64_t alpha, CHAM_desc_t *A,
                        CHAMELEON_Complex64_t beta,  CHAM_desc_t *B )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_ztradd_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_ztradd_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_ztradd_Tile_Async( uplo, trans, alpha, A, beta, B, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -300,21 +300,21 @@ int CHAMELEON_ztradd_Tile_Async( cham_uplo_t uplo, cham_trans_t trans,
                              CHAMELEON_Complex64_t beta,  CHAM_desc_t *B,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     int M, N;
     int Am, An, Ai, Aj, Amb, Anb;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_ztradd_Tile_Async", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_ztradd_Tile_Async", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_ztradd_Tile_Async", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_ztradd_Tile_Async", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_ztradd_Tile_Async", "NULL request");
+        chameleon_fatal_error("CHAMELEON_ztradd_Tile_Async", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -322,22 +322,22 @@ int CHAMELEON_ztradd_Tile_Async( cham_uplo_t uplo, cham_trans_t trans,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztradd_Tile_Async", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_ztradd_Tile_Async", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztradd_Tile_Async", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_ztradd_Tile_Async", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if ((trans < ChamNoTrans) || (trans > ChamConjTrans)) {
-        morse_error("CHAMELEON_ztradd_Tile_Async", "illegal value of trans");
-        return morse_request_fail(sequence, request, -1);
+        chameleon_error("CHAMELEON_ztradd_Tile_Async", "illegal value of trans");
+        return chameleon_request_fail(sequence, request, -1);
     }
 
     if ( trans == ChamNoTrans ) {
@@ -357,16 +357,16 @@ int CHAMELEON_ztradd_Tile_Async( cham_uplo_t uplo, cham_trans_t trans,
     }
 
     if ( (Amb != B->mb) || (Anb != B->nb) ) {
-        morse_error("CHAMELEON_ztradd_Tile_Async", "tile sizes have to match");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_ztradd_Tile_Async", "tile sizes have to match");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (Am != B->m) || (An != B->n) ) {
-        morse_error("CHAMELEON_ztradd_Tile_Async", "sizes of matrices have to match");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_ztradd_Tile_Async", "sizes of matrices have to match");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ( (Ai != B->i) || (Aj != B->j) ) {
-        morse_error("CHAMELEON_ztradd_Tile_Async", "start indexes have to match");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_ztradd_Tile_Async", "start indexes have to match");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
 
     M = B->m;
@@ -377,7 +377,7 @@ int CHAMELEON_ztradd_Tile_Async( cham_uplo_t uplo, cham_trans_t trans,
         ((alpha == (CHAMELEON_Complex64_t)0.0) && beta == (CHAMELEON_Complex64_t)1.0))
         return CHAMELEON_SUCCESS;
 
-    morse_pztradd( uplo, trans, alpha, A, beta, B, sequence, request );
+    chameleon_pztradd( uplo, trans, alpha, A, beta, B, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/ztrmm.c b/compute/ztrmm.c
index 68623dff678b9dfb6c8938ced595cf124b4c876d..0c800da6a93cb86683f4a7ff879cff2509f44671 100644
--- a/compute/ztrmm.c
+++ b/compute/ztrmm.c
@@ -103,15 +103,15 @@ int CHAMELEON_ztrmm( cham_side_t side, cham_uplo_t uplo,
 {
     int NB, NA;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_ztrmm", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_ztrmm", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
@@ -123,38 +123,38 @@ int CHAMELEON_ztrmm( cham_side_t side, cham_uplo_t uplo,
 
     /* Check input arguments */
     if (side != ChamLeft && side != ChamRight) {
-        morse_error("CHAMELEON_ztrmm", "illegal value of side");
+        chameleon_error("CHAMELEON_ztrmm", "illegal value of side");
         return -1;
     }
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_ztrmm", "illegal value of uplo");
+        chameleon_error("CHAMELEON_ztrmm", "illegal value of uplo");
         return -2;
     }
     if (transA != ChamConjTrans &&
         transA != ChamNoTrans   &&
         transA != ChamTrans )
     {
-        morse_error("CHAMELEON_ztrmm", "illegal value of transA");
+        chameleon_error("CHAMELEON_ztrmm", "illegal value of transA");
         return -3;
     }
     if ((diag != ChamUnit) && (diag != ChamNonUnit)) {
-        morse_error("CHAMELEON_ztrmm", "illegal value of diag");
+        chameleon_error("CHAMELEON_ztrmm", "illegal value of diag");
         return -4;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_ztrmm", "illegal value of N");
+        chameleon_error("CHAMELEON_ztrmm", "illegal value of N");
         return -5;
     }
     if (NRHS < 0) {
-        morse_error("CHAMELEON_ztrmm", "illegal value of NRHS");
+        chameleon_error("CHAMELEON_ztrmm", "illegal value of NRHS");
         return -6;
     }
     if (LDA < chameleon_max(1, NA)) {
-        morse_error("CHAMELEON_ztrmm", "illegal value of LDA");
+        chameleon_error("CHAMELEON_ztrmm", "illegal value of LDA");
         return -8;
     }
     if (LDB < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_ztrmm", "illegal value of LDB");
+        chameleon_error("CHAMELEON_ztrmm", "illegal value of LDB");
         return -10;
     }
     /* Quick return */
@@ -162,40 +162,40 @@ int CHAMELEON_ztrmm( cham_side_t side, cham_uplo_t uplo,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZPOSV, N, N, NRHS);
+    status = chameleon_tune(CHAMELEON_FUNC_ZPOSV, N, N, NRHS);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztrmm", "morse_tune() failed");
+        chameleon_error("CHAMELEON_ztrmm", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT & NTRHS */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, uplo,
                      A, NB, NB, LDA, NA, NA, NA, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, ChamUpperLower,
                      B, NB, NB, LDB, NRHS, N, NRHS, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_ztrmm_Tile_Async(  side, uplo, transA, diag, alpha, &descAt, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, uplo, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 /**
@@ -265,26 +265,26 @@ int CHAMELEON_ztrmm_Tile( cham_side_t side, cham_uplo_t uplo,
                       cham_trans_t transA, cham_diag_t diag,
                       CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_ztrmm_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_ztrmm_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_ztrmm_Tile_Async(side, uplo, transA, diag, alpha, A, B, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -321,19 +321,19 @@ int CHAMELEON_ztrmm_Tile_Async( cham_side_t side, cham_uplo_t uplo,
                             CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B,
                             RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_ztrmm_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_ztrmm_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_ztrmm_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_ztrmm_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_ztrmm_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_ztrmm_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -341,42 +341,42 @@ int CHAMELEON_ztrmm_Tile_Async( cham_side_t side, cham_uplo_t uplo,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztrmm_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_ztrmm_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztrmm_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_ztrmm_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || B->nb != B->mb) {
-        morse_error("CHAMELEON_ztrmm_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_ztrmm_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if (side != ChamLeft && side != ChamRight) {
-        morse_error("CHAMELEON_ztrmm_Tile", "illegal value of side");
-        return morse_request_fail(sequence, request, -1);
+        chameleon_error("CHAMELEON_ztrmm_Tile", "illegal value of side");
+        return chameleon_request_fail(sequence, request, -1);
     }
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_ztrmm_Tile", "illegal value of uplo");
-        return morse_request_fail(sequence, request, -2);
+        chameleon_error("CHAMELEON_ztrmm_Tile", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, -2);
     }
     if ((transA < ChamNoTrans) || (transA > ChamConjTrans)) {
-        morse_error("CHAMELEON_ztrmm_Tile", "illegal value of transA");
-        return morse_request_fail(sequence, request, -3);
+        chameleon_error("CHAMELEON_ztrmm_Tile", "illegal value of transA");
+        return chameleon_request_fail(sequence, request, -3);
     }
     if ((diag != ChamUnit) && (diag != ChamNonUnit)) {
-        morse_error("CHAMELEON_ztrmm_Tile", "illegal value of diag");
-        return morse_request_fail(sequence, request, -4);
+        chameleon_error("CHAMELEON_ztrmm_Tile", "illegal value of diag");
+        return chameleon_request_fail(sequence, request, -4);
     }
 
     /* Quick return */
-    morse_pztrmm( side, uplo, transA, diag, alpha, A, B, sequence, request );
+    chameleon_pztrmm( side, uplo, transA, diag, alpha, A, B, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/ztrsm.c b/compute/ztrsm.c
index 9866b4115ff6dde5b859ba96419d5553aaee6cea..770713b01fac00b923891c07b76cb0931be98012 100644
--- a/compute/ztrsm.c
+++ b/compute/ztrsm.c
@@ -104,15 +104,15 @@ int CHAMELEON_ztrsm( cham_side_t side, cham_uplo_t uplo,
 {
     int NB, NA;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_ztrsm", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_ztrsm", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
@@ -124,35 +124,35 @@ int CHAMELEON_ztrsm( cham_side_t side, cham_uplo_t uplo,
 
     /* Check input arguments */
     if (side != ChamLeft && side != ChamRight) {
-        morse_error("CHAMELEON_ztrsm", "illegal value of side");
+        chameleon_error("CHAMELEON_ztrsm", "illegal value of side");
         return -1;
     }
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_ztrsm", "illegal value of uplo");
+        chameleon_error("CHAMELEON_ztrsm", "illegal value of uplo");
         return -2;
     }
     if (((transA < ChamNoTrans) || (transA > ChamConjTrans)) ) {
-        morse_error("CHAMELEON_ztrsm", "illegal value of transA");
+        chameleon_error("CHAMELEON_ztrsm", "illegal value of transA");
         return -3;
     }
     if ((diag != ChamUnit) && (diag != ChamNonUnit)) {
-        morse_error("CHAMELEON_ztrsm", "illegal value of diag");
+        chameleon_error("CHAMELEON_ztrsm", "illegal value of diag");
         return -4;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_ztrsm", "illegal value of N");
+        chameleon_error("CHAMELEON_ztrsm", "illegal value of N");
         return -5;
     }
     if (NRHS < 0) {
-        morse_error("CHAMELEON_ztrsm", "illegal value of NRHS");
+        chameleon_error("CHAMELEON_ztrsm", "illegal value of NRHS");
         return -6;
     }
     if (LDA < chameleon_max(1, NA)) {
-        morse_error("CHAMELEON_ztrsm", "illegal value of LDA");
+        chameleon_error("CHAMELEON_ztrsm", "illegal value of LDA");
         return -8;
     }
     if (LDB < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_ztrsm", "illegal value of LDB");
+        chameleon_error("CHAMELEON_ztrsm", "illegal value of LDB");
         return -10;
     }
     /* Quick return */
@@ -160,40 +160,40 @@ int CHAMELEON_ztrsm( cham_side_t side, cham_uplo_t uplo,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZPOSV, N, N, NRHS);
+    status = chameleon_tune(CHAMELEON_FUNC_ZPOSV, N, N, NRHS);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztrsm", "morse_tune() failed");
+        chameleon_error("CHAMELEON_ztrsm", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT & NTRHS */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, uplo,
                      A, NB, NB, LDA, NA, NA, NA, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, ChamUpperLower,
                      B, NB, NB, LDB, NRHS, N,  NRHS, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_ztrsm_Tile_Async(  side, uplo, transA, diag, alpha, &descAt, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, uplo, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 /**
@@ -263,26 +263,26 @@ int CHAMELEON_ztrsm_Tile( cham_side_t side, cham_uplo_t uplo,
                       cham_trans_t transA, cham_diag_t diag,
                       CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_ztrsm_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_ztrsm_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_ztrsm_Tile_Async(side, uplo, transA, diag, alpha, A, B, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -319,19 +319,19 @@ int CHAMELEON_ztrsm_Tile_Async( cham_side_t side, cham_uplo_t uplo,
                             CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B,
                             RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_ztrsm_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_ztrsm_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_ztrsm_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_ztrsm_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_ztrsm_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_ztrsm_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -339,42 +339,42 @@ int CHAMELEON_ztrsm_Tile_Async( cham_side_t side, cham_uplo_t uplo,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztrsm_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_ztrsm_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztrsm_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_ztrsm_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || B->nb != B->mb) {
-        morse_error("CHAMELEON_ztrsm_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_ztrsm_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if (side != ChamLeft && side != ChamRight) {
-        morse_error("CHAMELEON_ztrsm_Tile", "illegal value of side");
-        return morse_request_fail(sequence, request, -1);
+        chameleon_error("CHAMELEON_ztrsm_Tile", "illegal value of side");
+        return chameleon_request_fail(sequence, request, -1);
     }
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_ztrsm_Tile", "illegal value of uplo");
-        return morse_request_fail(sequence, request, -2);
+        chameleon_error("CHAMELEON_ztrsm_Tile", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, -2);
     }
     if ((transA < ChamNoTrans) || (transA > ChamConjTrans)) {
-        morse_error("CHAMELEON_ztrsm_Tile", "illegal value of transA");
-        return morse_request_fail(sequence, request, -3);
+        chameleon_error("CHAMELEON_ztrsm_Tile", "illegal value of transA");
+        return chameleon_request_fail(sequence, request, -3);
     }
     if ((diag != ChamUnit) && (diag != ChamNonUnit)) {
-        morse_error("CHAMELEON_ztrsm_Tile", "illegal value of diag");
-        return morse_request_fail(sequence, request, -4);
+        chameleon_error("CHAMELEON_ztrsm_Tile", "illegal value of diag");
+        return chameleon_request_fail(sequence, request, -4);
     }
 
     /* Quick return */
-    morse_pztrsm( side, uplo, transA, diag, alpha, A, B, sequence, request );
+    chameleon_pztrsm( side, uplo, transA, diag, alpha, A, B, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/ztrsmpl.c b/compute/ztrsmpl.c
index d91e15e5513113953f73963f01232a08bc1bc9ff..50d2c556dec2c6294befcf913fb35016cbcc010c 100644
--- a/compute/ztrsmpl.c
+++ b/compute/ztrsmpl.c
@@ -82,32 +82,32 @@ int CHAMELEON_ztrsmpl( int N, int NRHS,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descBl, descBt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_ztrsmpl", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_ztrsmpl", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if (N < 0) {
-        morse_error("CHAMELEON_ztrsmpl", "illegal value of N");
+        chameleon_error("CHAMELEON_ztrsmpl", "illegal value of N");
         return -1;
     }
     if (NRHS < 0) {
-        morse_error("CHAMELEON_ztrsmpl", "illegal value of NRHS");
+        chameleon_error("CHAMELEON_ztrsmpl", "illegal value of NRHS");
         return -2;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_ztrsmpl", "illegal value of LDA");
+        chameleon_error("CHAMELEON_ztrsmpl", "illegal value of LDA");
         return -4;
     }
     if (LDB < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_ztrsmpl", "illegal value of LDB");
+        chameleon_error("CHAMELEON_ztrsmpl", "illegal value of LDB");
         return -8;
     }
     /* Quick return */
@@ -115,41 +115,41 @@ int CHAMELEON_ztrsmpl( int N, int NRHS,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGESV, N, N, NRHS);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGESV, N, N, NRHS);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztrsmpl", "morse_tune() failed");
+        chameleon_error("CHAMELEON_ztrsmpl", "chameleon_tune() failed");
         return status;
     }
 
     /* Set Mt, NT & NTRHS */
     NB    = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamLower,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
-    morse_zlap2tile( morse, &descBl, &descBt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descBl, &descBt, ChamDescInout, ChamUpperLower,
                      B, NB, NB, LDB, NRHS, N, NRHS, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_ztrsmpl_Tile_Async( &descAt, descL, IPIV, &descBt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamLower, sequence, &request );
-    morse_ztile2lap( morse, &descBl, &descBt,
+    chameleon_ztile2lap( chamctxt, &descBl, &descBt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descL, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descBl, &descBt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descBl, &descBt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -194,17 +194,17 @@ int CHAMELEON_ztrsmpl( int N, int NRHS,
  */
 int CHAMELEON_ztrsmpl_Tile( CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV, CHAM_desc_t *B )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_ztrsmpl_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_ztrsmpl_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_ztrsmpl_Tile_Async( A, L, IPIV, B, sequence, &request );
 
@@ -212,9 +212,9 @@ int CHAMELEON_ztrsmpl_Tile( CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV, CHAM_desc
     CHAMELEON_Desc_Flush( L, sequence );
     CHAMELEON_Desc_Flush( B, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -251,19 +251,19 @@ int CHAMELEON_ztrsmpl_Tile( CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV, CHAM_desc
 int CHAMELEON_ztrsmpl_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV, CHAM_desc_t *B,
                               RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_ztrsmpl_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_ztrsmpl_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_ztrsmpl_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_ztrsmpl_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_ztrsmpl_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_ztrsmpl_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -271,33 +271,33 @@ int CHAMELEON_ztrsmpl_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *L, int *IPIV, CHA
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztrsmpl_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_ztrsmpl_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(L) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztrsmpl_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(L) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_ztrsmpl_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(B) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztrsmpl_Tile", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(B) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_ztrsmpl_Tile", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || B->nb != B->mb) {
-        morse_error("CHAMELEON_ztrsmpl_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_ztrsmpl_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return */
     /*
      if (chameleon_min(N, NRHS) == 0)
      return CHAMELEON_SUCCESS;
      */
-    morse_pztrsmpl( A, B, L, IPIV, sequence, request );
+    chameleon_pztrsmpl( A, B, L, IPIV, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/ztrtri.c b/compute/ztrtri.c
index 2d709b5e659cde257457ffb973f29d907b1b4ee2..9cc1dff61b851fef00101eb18ce1e1eb1cff1afe 100644
--- a/compute/ztrtri.c
+++ b/compute/ztrtri.c
@@ -82,31 +82,31 @@ int CHAMELEON_ztrtri( cham_uplo_t uplo, cham_diag_t diag, int N,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_ztrtri", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_ztrtri", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_ztrtri", "illegal value of uplo");
+        chameleon_error("CHAMELEON_ztrtri", "illegal value of uplo");
         return -1;
     }
     if ((diag != ChamUnit) && (diag != ChamNonUnit)) {
-        morse_error("CHAMELEON_ztrtri", "illegal value of diag");
+        chameleon_error("CHAMELEON_ztrtri", "illegal value of diag");
         return -2;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_ztrtri", "illegal value of N");
+        chameleon_error("CHAMELEON_ztrtri", "illegal value of N");
         return -3;
     }
     if (LDA < chameleon_max(1, N)) {
-        morse_error("CHAMELEON_ztrtri", "illegal value of LDA");
+        chameleon_error("CHAMELEON_ztrtri", "illegal value of LDA");
         return -5;
     }
     /* Quick return */
@@ -114,35 +114,35 @@ int CHAMELEON_ztrtri( cham_uplo_t uplo, cham_diag_t diag, int N,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZPOSV, N, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZPOSV, N, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztrtri", "morse_tune() failed");
+        chameleon_error("CHAMELEON_ztrtri", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInout, uplo,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInout, uplo,
                      A, NB, NB, LDA, N, N, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_ztrtri_Tile_Async( uplo, diag, &descAt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInout, uplo, sequence, &request );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -199,25 +199,25 @@ int CHAMELEON_ztrtri( cham_uplo_t uplo, cham_diag_t diag, int N,
  */
 int CHAMELEON_ztrtri_Tile( cham_uplo_t uplo, cham_diag_t diag, CHAM_desc_t *A )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_ztrtri_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_ztrtri_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_ztrtri_Tile_Async( uplo, diag, A, sequence, &request );
 
     CHAMELEON_Desc_Flush( A, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -254,19 +254,19 @@ int CHAMELEON_ztrtri_Tile( cham_uplo_t uplo, cham_diag_t diag, CHAM_desc_t *A )
 int CHAMELEON_ztrtri_Tile_Async( cham_uplo_t uplo, cham_diag_t diag, CHAM_desc_t *A,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_ztrtri_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_ztrtri_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_ztrtri_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_ztrtri_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_ztrtri_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_ztrtri_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -274,33 +274,33 @@ int CHAMELEON_ztrtri_Tile_Async( cham_uplo_t uplo, cham_diag_t diag, CHAM_desc_t
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_ztrtri_Tile", "invalid descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_ztrtri_Tile", "invalid descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb) {
-        morse_error("CHAMELEON_ztrtri_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_ztrtri_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((uplo != ChamUpper) && (uplo != ChamLower)) {
-        morse_error("CHAMELEON_ztrtri_Tile", "illegal value of uplo");
-        return morse_request_fail(sequence, request, -1);
+        chameleon_error("CHAMELEON_ztrtri_Tile", "illegal value of uplo");
+        return chameleon_request_fail(sequence, request, -1);
     }
     if ((diag != ChamUnit) && (diag != ChamNonUnit)) {
-        morse_error("CHAMELEON_ztrtri_Tile", "illegal value of diag");
-        return morse_request_fail(sequence, request, -2);
+        chameleon_error("CHAMELEON_ztrtri_Tile", "illegal value of diag");
+        return chameleon_request_fail(sequence, request, -2);
     }
     /* Quick return */
     /*
      if (chameleon_max(N, 0) == 0)
      return CHAMELEON_SUCCESS;
      */
-    morse_pztrtri( uplo, diag, A, sequence, request );
+    chameleon_pztrtri( uplo, diag, A, sequence, request );
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/compute/zunglq.c b/compute/zunglq.c
index 3b8793f01408270870fc4b84c43e30ffaf8868d5..e40953f9c6c0411f7fe3c2c01d03f3bb363b03da 100644
--- a/compute/zunglq.c
+++ b/compute/zunglq.c
@@ -83,36 +83,36 @@ int CHAMELEON_zunglq( int M, int N, int K,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descQl, descQt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zunglq", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zunglq", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if (M < 0) {
-        morse_error("CHAMELEON_zunglq", "illegal value of M");
+        chameleon_error("CHAMELEON_zunglq", "illegal value of M");
         return -1;
     }
     if (N < M) {
-        morse_error("CHAMELEON_zunglq", "illegal value of N");
+        chameleon_error("CHAMELEON_zunglq", "illegal value of N");
         return -2;
     }
     if (K < 0 || K > M) {
-        morse_error("CHAMELEON_zunglq", "illegal value of K");
+        chameleon_error("CHAMELEON_zunglq", "illegal value of K");
         return -3;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zunglq", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zunglq", "illegal value of LDA");
         return -5;
     }
     if (LDQ < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zunglq", "illegal value of LDQ");
+        chameleon_error("CHAMELEON_zunglq", "illegal value of LDQ");
         return -8;
     }
     /* Quick return - currently NOT equivalent to LAPACK's:
@@ -121,41 +121,41 @@ int CHAMELEON_zunglq( int M, int N, int K,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGELS, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGELS, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunglq", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zunglq", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamUpper,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamUpper,
                      A, NB, NB, LDA, N, K, N, sequence, &request );
-    morse_zlap2tile( morse, &descQl, &descQt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descQl, &descQt, ChamDescInout, ChamUpperLower,
                      Q, NB, NB, LDQ, N, M, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zunglq_Tile_Async( &descAt, descT, &descQt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamUpper, sequence, &request );
-    morse_ztile2lap( morse, &descQl, &descQt,
+    chameleon_ztile2lap( chamctxt, &descQl, &descQt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descT, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descQl, &descQt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descQl, &descQt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -196,17 +196,17 @@ int CHAMELEON_zunglq( int M, int N, int K,
  */
 int CHAMELEON_zunglq_Tile( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *Q )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zunglq_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zunglq_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zunglq_Tile_Async( A, T, Q, sequence, &request );
 
@@ -214,9 +214,9 @@ int CHAMELEON_zunglq_Tile( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *Q )
     CHAMELEON_Desc_Flush( T, sequence );
     CHAMELEON_Desc_Flush( Q, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -251,20 +251,20 @@ int CHAMELEON_zunglq_Tile( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *Q )
 int CHAMELEON_zunglq_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *Q,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zunglq_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zunglq_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zunglq_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zunglq_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zunglq_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zunglq_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -272,26 +272,26 @@ int CHAMELEON_zunglq_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *Q,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunglq_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zunglq_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(T) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunglq_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(T) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zunglq_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(Q) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunglq_Tile", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(Q) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zunglq_Tile", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || Q->nb != Q->mb) {
-        morse_error("CHAMELEON_zunglq_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zunglq_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return - currently NOT equivalent to LAPACK's:
      * CALL DLASET( 'Full', MAX( M, N ), NRHS, ZERO, ZERO, Q, LDQ ) */
@@ -303,17 +303,17 @@ int CHAMELEON_zunglq_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *Q,
 #if defined(CHAMELEON_COPY_DIAG)
     {
         int m = chameleon_min(A->mt, A->nt) * A->mb;
-        morse_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
+        chameleon_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
         Dptr = &D;
     }
 #endif
 
-    morse_pzlaset( ChamUpperLower, 0., 1., Q, sequence, request );
-    if (morse->householder == ChamFlatHouseholder) {
-        morse_pzunglq( A, Q, T, Dptr, sequence, request );
+    chameleon_pzlaset( ChamUpperLower, 0., 1., Q, sequence, request );
+    if (chamctxt->householder == ChamFlatHouseholder) {
+        chameleon_pzunglq( A, Q, T, Dptr, sequence, request );
     }
     else {
-        morse_pzunglqrh( A, Q, T, Dptr, CHAMELEON_RHBLK, sequence, request );
+        chameleon_pzunglqrh( A, Q, T, Dptr, CHAMELEON_RHBLK, sequence, request );
     }
 
     if (Dptr != NULL) {
@@ -321,8 +321,8 @@ int CHAMELEON_zunglq_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *Q,
         CHAMELEON_Desc_Flush( Q, sequence );
         CHAMELEON_Desc_Flush( T, sequence );
         CHAMELEON_Desc_Flush( Dptr, sequence );
-        morse_sequence_wait( morse, sequence );
-        morse_desc_mat_free( Dptr );
+        chameleon_sequence_wait( chamctxt, sequence );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/zunglq_param.c b/compute/zunglq_param.c
index 3c894a10a8c682441402a4de3e6c805a5869bc68..fefc20d57f0a598d7ef55d660221b6b52ddf7ed1 100644
--- a/compute/zunglq_param.c
+++ b/compute/zunglq_param.c
@@ -81,36 +81,36 @@ int CHAMELEON_zunglq_param( const libhqr_tree_t *qrtree, int M, int N, int K,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descQl, descQt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zunglq_param", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zunglq_param", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Check input arguments */
     if (M < 0) {
-        morse_error("CHAMELEON_zunglq_param", "illegal value of M");
+        chameleon_error("CHAMELEON_zunglq_param", "illegal value of M");
         return -1;
     }
     if (N < M) {
-        morse_error("CHAMELEON_zunglq_param", "illegal value of N");
+        chameleon_error("CHAMELEON_zunglq_param", "illegal value of N");
         return -2;
     }
     if (K < 0 || K > M) {
-        morse_error("CHAMELEON_zunglq_param", "illegal value of K");
+        chameleon_error("CHAMELEON_zunglq_param", "illegal value of K");
         return -3;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zunglq_param", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zunglq_param", "illegal value of LDA");
         return -5;
     }
     if (LDQ < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zunglq_param", "illegal value of LDQ");
+        chameleon_error("CHAMELEON_zunglq_param", "illegal value of LDQ");
         return -8;
     }
     /* Quick return - currently NOT equivalent to LAPACK's:
@@ -119,42 +119,42 @@ int CHAMELEON_zunglq_param( const libhqr_tree_t *qrtree, int M, int N, int K,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGELS, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGELS, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunglq_param", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zunglq_param", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamUpper,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamUpper,
                      A, NB, NB, LDA, N, K, N, sequence, &request );
-    morse_zlap2tile( morse, &descQl, &descQt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descQl, &descQt, ChamDescInout, ChamUpperLower,
                      Q, NB, NB, LDQ, N, M, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zunglq_param_Tile_Async( qrtree, &descAt, descTS, descTT, &descQt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamUpper, sequence, &request );
-    morse_ztile2lap( morse, &descQl, &descQt,
+    chameleon_ztile2lap( chamctxt, &descQl, &descQt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descTS, sequence );
     CHAMELEON_Desc_Flush( descTT, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descQl, &descQt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descQl, &descQt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -195,17 +195,17 @@ int CHAMELEON_zunglq_param( const libhqr_tree_t *qrtree, int M, int N, int K,
  */
 int CHAMELEON_zunglq_param_Tile( const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *Q )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zunglq_param_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zunglq_param_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zunglq_param_Tile_Async( qrtree, A, TS, TT, Q, sequence, &request );
 
@@ -214,9 +214,9 @@ int CHAMELEON_zunglq_param_Tile( const libhqr_tree_t *qrtree, CHAM_desc_t *A, CH
     CHAMELEON_Desc_Flush( TT, sequence );
     CHAMELEON_Desc_Flush( Q, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -251,20 +251,20 @@ int CHAMELEON_zunglq_param_Tile( const libhqr_tree_t *qrtree, CHAM_desc_t *A, CH
 int CHAMELEON_zunglq_param_Tile_Async( const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *Q,
                                    RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zunglq_param_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zunglq_param_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zunglq_param_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zunglq_param_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zunglq_param_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zunglq_param_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -272,30 +272,30 @@ int CHAMELEON_zunglq_param_Tile_Async( const libhqr_tree_t *qrtree, CHAM_desc_t
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunglq_param_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zunglq_param_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(TS) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunglq_param_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(TS) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zunglq_param_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(TT) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunglq_param_Tile", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(TT) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zunglq_param_Tile", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(Q) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunglq_param_Tile", "invalid fourth descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(Q) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zunglq_param_Tile", "invalid fourth descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || Q->nb != Q->mb) {
-        morse_error("CHAMELEON_zunglq_param_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zunglq_param_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return - currently NOT equivalent to LAPACK's:
      * CALL DLASET( 'Full', MAX( M, N ), NRHS, ZERO, ZERO, Q, LDQ ) */
@@ -306,13 +306,13 @@ int CHAMELEON_zunglq_param_Tile_Async( const libhqr_tree_t *qrtree, CHAM_desc_t
 #if defined(CHAMELEON_COPY_DIAG)
     {
         int m = chameleon_min(A->mt, A->nt) * A->mb;
-        morse_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
+        chameleon_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
         Dptr = &D;
     }
 #endif
 
-    morse_pzlaset( ChamUpperLower, 0., 1., Q, sequence, request );
-    morse_pzunglq_param( qrtree, A, Q, TS, TT, Dptr, sequence, request );
+    chameleon_pzlaset( ChamUpperLower, 0., 1., Q, sequence, request );
+    chameleon_pzunglq_param( qrtree, A, Q, TS, TT, Dptr, sequence, request );
 
     if (Dptr != NULL) {
         CHAMELEON_Desc_Flush( A, sequence );
@@ -320,8 +320,8 @@ int CHAMELEON_zunglq_param_Tile_Async( const libhqr_tree_t *qrtree, CHAM_desc_t
         CHAMELEON_Desc_Flush( TS, sequence );
         CHAMELEON_Desc_Flush( TT, sequence );
         CHAMELEON_Desc_Flush( Dptr, sequence );
-        morse_sequence_wait( morse, sequence );
-        morse_desc_mat_free( Dptr );
+        chameleon_sequence_wait( chamctxt, sequence );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/zungqr.c b/compute/zungqr.c
index 4fd4f41cbaea3785323c03609ae10afd7f49eba3..25b4e8375f284520f1e4e1c9e6c70467749e8bdd 100644
--- a/compute/zungqr.c
+++ b/compute/zungqr.c
@@ -83,78 +83,78 @@ int CHAMELEON_zungqr( int M, int N, int K,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descQl, descQt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zungqr", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zungqr", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if (M < 0) {
-        morse_error("CHAMELEON_zungqr", "illegal value of M");
+        chameleon_error("CHAMELEON_zungqr", "illegal value of M");
         return -1;
     }
     if (N < 0 || N > M) {
-        morse_error("CHAMELEON_zungqr", "illegal value of N");
+        chameleon_error("CHAMELEON_zungqr", "illegal value of N");
         return -2;
     }
     if (K < 0 || K > N) {
-        morse_error("CHAMELEON_zungqr", "illegal value of K");
+        chameleon_error("CHAMELEON_zungqr", "illegal value of K");
         return -3;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zungqr", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zungqr", "illegal value of LDA");
         return -5;
     }
     if (LDQ < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zungqr", "illegal value of LDQ");
+        chameleon_error("CHAMELEON_zungqr", "illegal value of LDQ");
         return -8;
     }
     if (chameleon_min(M, chameleon_min(N, K)) == 0)
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on M & N; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGELS, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGELS, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zungqr", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zungqr", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamLower,
                      A, NB, NB, LDA, N, M, K, sequence, &request );
-    morse_zlap2tile( morse, &descQl, &descQt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descQl, &descQt, ChamDescInout, ChamUpperLower,
                      Q, NB, NB, LDQ, N, M, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zungqr_Tile_Async( &descAt, descT, &descQt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamLower, sequence, &request );
-    morse_ztile2lap( morse, &descQl, &descQt,
+    chameleon_ztile2lap( chamctxt, &descQl, &descQt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descT, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descQl, &descQt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descQl, &descQt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -195,17 +195,17 @@ int CHAMELEON_zungqr( int M, int N, int K,
  */
 int CHAMELEON_zungqr_Tile( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *Q )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zungqr_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zungqr_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zungqr_Tile_Async( A, T, Q, sequence, &request );
 
@@ -213,9 +213,9 @@ int CHAMELEON_zungqr_Tile( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *Q )
     CHAMELEON_Desc_Flush( T, sequence );
     CHAMELEON_Desc_Flush( Q, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -250,20 +250,20 @@ int CHAMELEON_zungqr_Tile( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *Q )
 int CHAMELEON_zungqr_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *Q,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zungqr_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zungqr_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zungqr_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zungqr_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zungqr_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zungqr_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -271,26 +271,26 @@ int CHAMELEON_zungqr_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *Q,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zungqr_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zungqr_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(T) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zungqr_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(T) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zungqr_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(Q) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zungqr_Tile", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(Q) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zungqr_Tile", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || Q->nb != Q->mb) {
-        morse_error("CHAMELEON_zungqr_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zungqr_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return */
     /*
@@ -300,17 +300,17 @@ int CHAMELEON_zungqr_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *Q,
 #if defined(CHAMELEON_COPY_DIAG)
     {
         int n = chameleon_min(A->mt, A->nt) * A->nb;
-        morse_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
+        chameleon_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
         Dptr = &D;
     }
 #endif
 
-    morse_pzlaset( ChamUpperLower, 0., 1., Q, sequence, request );
-    if (morse->householder == ChamFlatHouseholder) {
-        morse_pzungqr( A, Q, T, Dptr, sequence, request );
+    chameleon_pzlaset( ChamUpperLower, 0., 1., Q, sequence, request );
+    if (chamctxt->householder == ChamFlatHouseholder) {
+        chameleon_pzungqr( A, Q, T, Dptr, sequence, request );
     }
     else {
-        morse_pzungqrrh( A, Q, T, Dptr, CHAMELEON_RHBLK, sequence, request );
+        chameleon_pzungqrrh( A, Q, T, Dptr, CHAMELEON_RHBLK, sequence, request );
     }
 
     if (Dptr != NULL) {
@@ -318,8 +318,8 @@ int CHAMELEON_zungqr_Tile_Async( CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *Q,
         CHAMELEON_Desc_Flush( Q, sequence );
         CHAMELEON_Desc_Flush( T, sequence );
         CHAMELEON_Desc_Flush( Dptr, sequence );
-        morse_sequence_wait( morse, sequence );
-        morse_desc_mat_free( Dptr );
+        chameleon_sequence_wait( chamctxt, sequence );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/zungqr_param.c b/compute/zungqr_param.c
index fd55667e8b09bbdf1c0c81bf9dae7605ff90ce9c..6dd11ada6aed5af5be59fe611277f960466a75dd 100644
--- a/compute/zungqr_param.c
+++ b/compute/zungqr_param.c
@@ -83,79 +83,79 @@ int CHAMELEON_zungqr_param( const libhqr_tree_t *qrtree,
 {
     int NB;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descQl, descQt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zungqr_param", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zungqr_param", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Check input arguments */
     if (M < 0) {
-        morse_error("CHAMELEON_zungqr_param", "illegal value of M");
+        chameleon_error("CHAMELEON_zungqr_param", "illegal value of M");
         return -1;
     }
     if (N < 0 || N > M) {
-        morse_error("CHAMELEON_zungqr_param", "illegal value of N");
+        chameleon_error("CHAMELEON_zungqr_param", "illegal value of N");
         return -2;
     }
     if (K < 0 || K > N) {
-        morse_error("CHAMELEON_zungqr_param", "illegal value of K");
+        chameleon_error("CHAMELEON_zungqr_param", "illegal value of K");
         return -3;
     }
     if (LDA < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zungqr_param", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zungqr_param", "illegal value of LDA");
         return -5;
     }
     if (LDQ < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zungqr_param", "illegal value of LDQ");
+        chameleon_error("CHAMELEON_zungqr_param", "illegal value of LDQ");
         return -8;
     }
     if (chameleon_min(M, chameleon_min(N, K)) == 0)
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on M & N; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGELS, M, N, 0);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGELS, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zungqr_param", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zungqr_param", "chameleon_tune() failed");
         return status;
     }
 
     /* Set NT */
     NB = CHAMELEON_NB;
 
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamLower,
                      A, NB, NB, LDA, N, M, K, sequence, &request );
-    morse_zlap2tile( morse, &descQl, &descQt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descQl, &descQt, ChamDescInout, ChamUpperLower,
                      Q, NB, NB, LDQ, N, M, N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zungqr_param_Tile_Async( qrtree, &descAt, descTS, descTT, &descQt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamLower, sequence, &request );
-    morse_ztile2lap( morse, &descQl, &descQt,
+    chameleon_ztile2lap( chamctxt, &descQl, &descQt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descTS, sequence );
     CHAMELEON_Desc_Flush( descTT, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descQl, &descQt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descQl, &descQt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -196,17 +196,17 @@ int CHAMELEON_zungqr_param( const libhqr_tree_t *qrtree,
  */
 int CHAMELEON_zungqr_param_Tile( const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *Q )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zungqr_param_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zungqr_param_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zungqr_param_Tile_Async( qrtree, A, TS, TT, Q, sequence, &request );
 
@@ -215,9 +215,9 @@ int CHAMELEON_zungqr_param_Tile( const libhqr_tree_t *qrtree, CHAM_desc_t *A, CH
     CHAMELEON_Desc_Flush( TT, sequence );
     CHAMELEON_Desc_Flush( Q, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -251,19 +251,19 @@ int CHAMELEON_zungqr_param_Tile( const libhqr_tree_t *qrtree, CHAM_desc_t *A, CH
  */
 int CHAMELEON_zungqr_param_Tile_Async( const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *Q, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zungqr_param_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zungqr_param_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zungqr_param_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zungqr_param_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zungqr_param_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zungqr_param_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -271,30 +271,30 @@ int CHAMELEON_zungqr_param_Tile_Async( const libhqr_tree_t *qrtree, CHAM_desc_t
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zungqr_param_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zungqr_param_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(TS) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zungqr_param_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(TS) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zungqr_param_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(TT) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zungqr_param_Tile", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(TT) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zungqr_param_Tile", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(Q) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zungqr_param_Tile", "invalid fourth descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(Q) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zungqr_param_Tile", "invalid fourth descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || Q->nb != Q->mb) {
-        morse_error("CHAMELEON_zungqr_param_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zungqr_param_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return */
     /*
@@ -304,13 +304,13 @@ int CHAMELEON_zungqr_param_Tile_Async( const libhqr_tree_t *qrtree, CHAM_desc_t
 #if defined(CHAMELEON_COPY_DIAG)
     {
         int n = chameleon_min(A->mt, A->nt) * A->nb;
-        morse_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
+        chameleon_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
         Dptr = &D;
     }
 #endif
 
-    morse_pzlaset( ChamUpperLower, 0., 1., Q, sequence, request );
-    morse_pzungqr_param( qrtree, A, Q, TS, TT, Dptr, sequence, request );
+    chameleon_pzlaset( ChamUpperLower, 0., 1., Q, sequence, request );
+    chameleon_pzungqr_param( qrtree, A, Q, TS, TT, Dptr, sequence, request );
 
     if (Dptr != NULL) {
         CHAMELEON_Desc_Flush( A, sequence );
@@ -318,8 +318,8 @@ int CHAMELEON_zungqr_param_Tile_Async( const libhqr_tree_t *qrtree, CHAM_desc_t
         CHAMELEON_Desc_Flush( TS, sequence );
         CHAMELEON_Desc_Flush( TT, sequence );
         CHAMELEON_Desc_Flush( Dptr, sequence );
-        morse_sequence_wait( morse, sequence );
-        morse_desc_mat_free( Dptr );
+        chameleon_sequence_wait( chamctxt, sequence );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/zunmlq.c b/compute/zunmlq.c
index efc4c7dbb248e01780d49dc0738eb9cf08aece38..6d246cd57ff383a885314d96efb6af20bf6dd96b 100644
--- a/compute/zunmlq.c
+++ b/compute/zunmlq.c
@@ -107,15 +107,15 @@ int CHAMELEON_zunmlq( cham_side_t side, cham_trans_t trans, int M, int N, int K,
 {
     int NB, An;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descCl, descCt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zunmlq", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zunmlq", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
@@ -126,31 +126,31 @@ int CHAMELEON_zunmlq( cham_side_t side, cham_trans_t trans, int M, int N, int K,
 
     /* Check input arguments */
     if ((side != ChamLeft) && (side != ChamRight)) {
-        morse_error("CHAMELEON_zunmlq", "illegal value of side");
+        chameleon_error("CHAMELEON_zunmlq", "illegal value of side");
         return -1;
     }
     if ((trans != ChamConjTrans) && (trans != ChamNoTrans)){
-        morse_error("CHAMELEON_zunmlq", "illegal value of trans");
+        chameleon_error("CHAMELEON_zunmlq", "illegal value of trans");
         return -2;
     }
     if (M < 0) {
-        morse_error("CHAMELEON_zunmlq", "illegal value of M");
+        chameleon_error("CHAMELEON_zunmlq", "illegal value of M");
         return -3;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zunmlq", "illegal value of N");
+        chameleon_error("CHAMELEON_zunmlq", "illegal value of N");
         return -4;
     }
     if ((K < 0) || (K > An)) {
-        morse_error("CHAMELEON_zunmlq", "illegal value of K");
+        chameleon_error("CHAMELEON_zunmlq", "illegal value of K");
         return -5;
     }
     if (LDA < chameleon_max(1, K)) {
-        morse_error("CHAMELEON_zunmlq", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zunmlq", "illegal value of LDA");
         return -7;
     }
     if (LDC < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zunmlq", "illegal value of LDC");
+        chameleon_error("CHAMELEON_zunmlq", "illegal value of LDC");
         return -10;
     }
     /* Quick return - currently NOT equivalent to LAPACK's:
@@ -159,40 +159,40 @@ int CHAMELEON_zunmlq( cham_side_t side, cham_trans_t trans, int M, int N, int K,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGELS, M, K, N);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGELS, M, K, N);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunmlq", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zunmlq", "chameleon_tune() failed");
         return status;
     }
 
     /* Set MT, NT & NTRHS */
     NB   = CHAMELEON_NB;
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamUpper,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamUpper,
                      A, NB, NB, LDA, An, K, An, sequence, &request );
-    morse_zlap2tile( morse, &descCl, &descCt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descCl, &descCt, ChamDescInout, ChamUpperLower,
                      C, NB, NB, LDC, N, M,  N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zunmlq_Tile_Async(  side, trans, &descAt, descT, &descCt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamUpper, sequence, &request );
-    morse_ztile2lap( morse, &descCl, &descCt,
+    chameleon_ztile2lap( chamctxt, &descCl, &descCt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descT, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descCl, &descCt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descCl, &descCt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -248,17 +248,17 @@ int CHAMELEON_zunmlq( cham_side_t side, cham_trans_t trans, int M, int N, int K,
 int CHAMELEON_zunmlq_Tile( cham_side_t side, cham_trans_t trans,
                        CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *C )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zunmlq_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zunmlq_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zunmlq_Tile_Async(side, trans, A, T, C, sequence, &request );
 
@@ -266,9 +266,9 @@ int CHAMELEON_zunmlq_Tile( cham_side_t side, cham_trans_t trans,
     CHAMELEON_Desc_Flush( T, sequence );
     CHAMELEON_Desc_Flush( C, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -304,20 +304,20 @@ int CHAMELEON_zunmlq_Tile_Async( cham_side_t side, cham_trans_t trans,
                              CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *C,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zunmlq_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zunmlq_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zunmlq_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zunmlq_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zunmlq_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zunmlq_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -325,32 +325,32 @@ int CHAMELEON_zunmlq_Tile_Async( cham_side_t side, cham_trans_t trans,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunmlq_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zunmlq_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(T) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunmlq_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(T) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zunmlq_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(C) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunmlq_Tile", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(C) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zunmlq_Tile", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || C->nb != C->mb) {
-        morse_error("CHAMELEON_zunmlq_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zunmlq_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((side != ChamLeft) && (side != ChamRight)) {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((trans != ChamConjTrans) && (trans != ChamNoTrans)){
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return - currently NOT equivalent to LAPACK's:
      * CALL DLASET( 'Full', MAX( M, N ), NRHS, ZERO, ZERO, C, LDC ) */
@@ -361,29 +361,29 @@ int CHAMELEON_zunmlq_Tile_Async( cham_side_t side, cham_trans_t trans,
 #if defined(CHAMELEON_COPY_DIAG)
     {
         int m = chameleon_min(A->mt, A->nt) * A->mb;
-        morse_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
+        chameleon_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
         Dptr = &D;
     }
 #endif
 
-    if (morse->householder == ChamFlatHouseholder) {
+    if (chamctxt->householder == ChamFlatHouseholder) {
         if ( (trans == ChamConjTrans) &&
              (side == ChamLeft) ) {
-            morse_pzunmlq( side, trans, A, C, T, Dptr, sequence, request );
+            chameleon_pzunmlq( side, trans, A, C, T, Dptr, sequence, request );
         } else {
-            morse_pzunmlq( side, trans, A, C, T, Dptr, sequence, request );
+            chameleon_pzunmlq( side, trans, A, C, T, Dptr, sequence, request );
         }
     }
     else {
-        morse_pzunmlqrh( side, trans, A, C, T, Dptr, CHAMELEON_RHBLK, sequence, request );
+        chameleon_pzunmlqrh( side, trans, A, C, T, Dptr, CHAMELEON_RHBLK, sequence, request );
     }
     if (Dptr != NULL) {
         CHAMELEON_Desc_Flush( A, sequence );
         CHAMELEON_Desc_Flush( C, sequence );
         CHAMELEON_Desc_Flush( T, sequence );
         CHAMELEON_Desc_Flush( Dptr, sequence );
-        morse_sequence_wait( morse, sequence );
-        morse_desc_mat_free( Dptr );
+        chameleon_sequence_wait( chamctxt, sequence );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/zunmlq_param.c b/compute/zunmlq_param.c
index db489ca27f041d1acc7ad35e2aad9fc764180c65..9eda1ebc75b7cb69f7be1051d9a40f8e0859407a 100644
--- a/compute/zunmlq_param.c
+++ b/compute/zunmlq_param.c
@@ -107,15 +107,15 @@ int CHAMELEON_zunmlq_param( const libhqr_tree_t *qrtree, cham_side_t side, cham_
 {
     int NB, An;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descCl, descCt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zunmlq_param", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zunmlq_param", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
@@ -126,31 +126,31 @@ int CHAMELEON_zunmlq_param( const libhqr_tree_t *qrtree, cham_side_t side, cham_
 
     /* Check input arguments */
     if ((side != ChamLeft) && (side != ChamRight)) {
-        morse_error("CHAMELEON_zunmlq_param", "illegal value of side");
+        chameleon_error("CHAMELEON_zunmlq_param", "illegal value of side");
         return -1;
     }
     if ((trans != ChamConjTrans) && (trans != ChamNoTrans)){
-        morse_error("CHAMELEON_zunmlq_param", "illegal value of trans");
+        chameleon_error("CHAMELEON_zunmlq_param", "illegal value of trans");
         return -2;
     }
     if (M < 0) {
-        morse_error("CHAMELEON_zunmlq_param", "illegal value of M");
+        chameleon_error("CHAMELEON_zunmlq_param", "illegal value of M");
         return -3;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zunmlq_param", "illegal value of N");
+        chameleon_error("CHAMELEON_zunmlq_param", "illegal value of N");
         return -4;
     }
     if ((K < 0) || (K > An)) {
-        morse_error("CHAMELEON_zunmlq_param", "illegal value of K");
+        chameleon_error("CHAMELEON_zunmlq_param", "illegal value of K");
         return -5;
     }
     if (LDA < chameleon_max(1, K)) {
-        morse_error("CHAMELEON_zunmlq_param", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zunmlq_param", "illegal value of LDA");
         return -7;
     }
     if (LDC < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zunmlq_param", "illegal value of LDC");
+        chameleon_error("CHAMELEON_zunmlq_param", "illegal value of LDC");
         return -10;
     }
     /* Quick return - currently NOT equivalent to LAPACK's:
@@ -159,41 +159,41 @@ int CHAMELEON_zunmlq_param( const libhqr_tree_t *qrtree, cham_side_t side, cham_
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on M, N & NRHS; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGELS, M, K, N);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGELS, M, K, N);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunmlq_param", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zunmlq_param", "chameleon_tune() failed");
         return status;
     }
 
     /* Set MT, NT & NTRHS */
     NB   = CHAMELEON_NB;
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamUpper,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamUpper,
                      A, NB, NB, LDA, An, K, An, sequence, &request );
-    morse_zlap2tile( morse, &descCl, &descCt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descCl, &descCt, ChamDescInout, ChamUpperLower,
                      C, NB, NB, LDC, N, M,  N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zunmlq_param_Tile_Async( qrtree, side, trans, &descAt, descTS, descTT, &descCt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamUpper, sequence, &request );
-    morse_ztile2lap( morse, &descCl, &descCt,
+    chameleon_ztile2lap( chamctxt, &descCl, &descCt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descTS, sequence );
     CHAMELEON_Desc_Flush( descTT, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descCl, &descCt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descCl, &descCt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -249,17 +249,17 @@ int CHAMELEON_zunmlq_param( const libhqr_tree_t *qrtree, cham_side_t side, cham_
 int CHAMELEON_zunmlq_param_Tile( const libhqr_tree_t *qrtree, cham_side_t side, cham_trans_t trans,
                              CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *C )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zunmlq_param_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zunmlq_param_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zunmlq_param_Tile_Async( qrtree, side, trans, A, TS, TT, C, sequence, &request );
 
@@ -268,9 +268,9 @@ int CHAMELEON_zunmlq_param_Tile( const libhqr_tree_t *qrtree, cham_side_t side,
     CHAMELEON_Desc_Flush( TT, sequence );
     CHAMELEON_Desc_Flush( C, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -306,20 +306,20 @@ int CHAMELEON_zunmlq_param_Tile_Async( const libhqr_tree_t *qrtree, cham_side_t
                                    CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *C,
                                    RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zunmlq_param_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zunmlq_param_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zunmlq_param_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zunmlq_param_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zunmlq_param_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zunmlq_param_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -327,36 +327,36 @@ int CHAMELEON_zunmlq_param_Tile_Async( const libhqr_tree_t *qrtree, cham_side_t
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunmlq_param_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zunmlq_param_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(TS) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunmlq_param_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(TS) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zunmlq_param_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(TT) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunmlq_param_Tile", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(TT) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zunmlq_param_Tile", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(C) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunmlq_param_Tile", "invalid fourth descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(C) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zunmlq_param_Tile", "invalid fourth descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || C->nb != C->mb) {
-        morse_error("CHAMELEON_zunmlq_param_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zunmlq_param_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((side != ChamLeft) && (side != ChamRight)) {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((trans != ChamConjTrans) && (trans != ChamNoTrans)){
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return - currently NOT equivalent to LAPACK's:
      * CALL DLASET( 'Full', MAX( M, N ), NRHS, ZERO, ZERO, C, LDC ) */
@@ -368,12 +368,12 @@ int CHAMELEON_zunmlq_param_Tile_Async( const libhqr_tree_t *qrtree, cham_side_t
 #if defined(CHAMELEON_COPY_DIAG)
     {
         int m = chameleon_min(A->mt, A->nt) * A->mb;
-        morse_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
+        chameleon_zdesc_alloc(D, A->mb, A->nb, m, A->n, 0, 0, m, A->n, );
         Dptr = &D;
     }
 #endif
 
-    morse_pzunmlq_param( qrtree, side, trans, A, C, TS, TT, Dptr, sequence, request );
+    chameleon_pzunmlq_param( qrtree, side, trans, A, C, TS, TT, Dptr, sequence, request );
 
     if (Dptr != NULL) {
         CHAMELEON_Desc_Flush( A, sequence );
@@ -381,8 +381,8 @@ int CHAMELEON_zunmlq_param_Tile_Async( const libhqr_tree_t *qrtree, cham_side_t
         CHAMELEON_Desc_Flush( TS, sequence );
         CHAMELEON_Desc_Flush( TT, sequence );
         CHAMELEON_Desc_Flush( Dptr, sequence );
-        morse_sequence_wait( morse, sequence );
-        morse_desc_mat_free( Dptr );
+        chameleon_sequence_wait( chamctxt, sequence );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/zunmqr.c b/compute/zunmqr.c
index 5488374888665feb1e33bf51130cc7e42c8d49eb..b6f1e16916932cb72c596e89ef71797677a0547a 100644
--- a/compute/zunmqr.c
+++ b/compute/zunmqr.c
@@ -109,15 +109,15 @@ int CHAMELEON_zunmqr( cham_side_t side, cham_trans_t trans, int M, int N, int K,
 {
     int NB, Am;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descCl, descCt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zunmqr", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zunmqr", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
@@ -129,31 +129,31 @@ int CHAMELEON_zunmqr( cham_side_t side, cham_trans_t trans, int M, int N, int K,
 
     /* Check input arguments */
     if ((side != ChamLeft) && (side != ChamRight)) {
-        morse_error("CHAMELEON_zunmqr", "illegal value of side");
+        chameleon_error("CHAMELEON_zunmqr", "illegal value of side");
         return -1;
     }
     if ((trans != ChamConjTrans) && (trans != ChamNoTrans)){
-        morse_error("CHAMELEON_zunmqr", "illegal value of trans");
+        chameleon_error("CHAMELEON_zunmqr", "illegal value of trans");
         return -2;
     }
     if (M < 0) {
-        morse_error("CHAMELEON_zunmqr", "illegal value of M");
+        chameleon_error("CHAMELEON_zunmqr", "illegal value of M");
         return -3;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zunmqr", "illegal value of N");
+        chameleon_error("CHAMELEON_zunmqr", "illegal value of N");
         return -4;
     }
     if ((K < 0) || (K > Am)) {
-        morse_error("CHAMELEON_zunmqr", "illegal value of K");
+        chameleon_error("CHAMELEON_zunmqr", "illegal value of K");
         return -5;
     }
     if (LDA < chameleon_max(1, Am)) {
-        morse_error("CHAMELEON_zunmqr", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zunmqr", "illegal value of LDA");
         return -7;
     }
     if (LDC < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zunmqr", "illegal value of LDC");
+        chameleon_error("CHAMELEON_zunmqr", "illegal value of LDC");
         return -10;
     }
     /* Quick return - currently NOT equivalent to LAPACK's:
@@ -162,40 +162,40 @@ int CHAMELEON_zunmqr( cham_side_t side, cham_trans_t trans, int M, int N, int K,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on M, K & N; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGELS, M, K, N);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGELS, M, K, N);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunmqr", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zunmqr", "chameleon_tune() failed");
         return status;
     }
 
     /* Set MT, NT & NTRHS */
     NB   = CHAMELEON_NB;
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamLower,
                      A, NB, NB, LDA, K, Am, K, sequence, &request );
-    morse_zlap2tile( morse, &descCl, &descCt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descCl, &descCt, ChamDescInout, ChamUpperLower,
                      C, NB, NB, LDC, N, M,  N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zunmqr_Tile_Async(  side, trans, &descAt, descT, &descCt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamLower, sequence, &request );
-    morse_ztile2lap( morse, &descCl, &descCt,
+    chameleon_ztile2lap( chamctxt, &descCl, &descCt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descT, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descCl, &descCt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descCl, &descCt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -252,17 +252,17 @@ int CHAMELEON_zunmqr( cham_side_t side, cham_trans_t trans, int M, int N, int K,
 int CHAMELEON_zunmqr_Tile( cham_side_t side, cham_trans_t trans,
                        CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *C )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zunmqr_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zunmqr_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zunmqr_Tile_Async(side, trans, A, T, C, sequence, &request );
 
@@ -270,9 +270,9 @@ int CHAMELEON_zunmqr_Tile( cham_side_t side, cham_trans_t trans,
     CHAMELEON_Desc_Flush( T, sequence );
     CHAMELEON_Desc_Flush( C, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -308,20 +308,20 @@ int CHAMELEON_zunmqr_Tile_Async( cham_side_t side, cham_trans_t trans,
                              CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *C,
                              RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zunmqr_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zunmqr_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zunmqr_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zunmqr_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zunmqr_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zunmqr_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -329,32 +329,32 @@ int CHAMELEON_zunmqr_Tile_Async( cham_side_t side, cham_trans_t trans,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunmqr_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zunmqr_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(T) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunmqr_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(T) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zunmqr_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(C) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunmqr_Tile", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(C) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zunmqr_Tile", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || C->nb != C->mb) {
-        morse_error("CHAMELEON_zunmqr_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zunmqr_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((side != ChamLeft) && (side != ChamRight)) {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((trans != ChamConjTrans) && (trans != ChamNoTrans)){
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return - currently NOT equivalent to LAPACK's:
      * CALL DLASET( 'Full', MAX( M, N ), NRHS, ZERO, ZERO, C, LDC ) */
@@ -366,22 +366,22 @@ int CHAMELEON_zunmqr_Tile_Async( cham_side_t side, cham_trans_t trans,
 #if defined(CHAMELEON_COPY_DIAG)
     {
         int n = chameleon_min(A->mt, A->nt) * A->nb;
-        morse_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
+        chameleon_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
         Dptr = &D;
     }
 #endif
 
-    if (morse->householder == ChamFlatHouseholder) {
+    if (chamctxt->householder == ChamFlatHouseholder) {
         if ( (trans == ChamConjTrans) &&
              (side == ChamLeft) ) {
-            morse_pzunmqr( side, trans, A, C, T, Dptr, sequence, request );
+            chameleon_pzunmqr( side, trans, A, C, T, Dptr, sequence, request );
         }
         else {
-            morse_pzunmqr( side, trans, A, C, T, Dptr, sequence, request );
+            chameleon_pzunmqr( side, trans, A, C, T, Dptr, sequence, request );
         }
     }
     else {
-        morse_pzunmqrrh( side, trans, A, C, T, Dptr, CHAMELEON_RHBLK, sequence, request );
+        chameleon_pzunmqrrh( side, trans, A, C, T, Dptr, CHAMELEON_RHBLK, sequence, request );
     }
 
     if (Dptr != NULL) {
@@ -389,8 +389,8 @@ int CHAMELEON_zunmqr_Tile_Async( cham_side_t side, cham_trans_t trans,
         CHAMELEON_Desc_Flush( C, sequence );
         CHAMELEON_Desc_Flush( T, sequence );
         CHAMELEON_Desc_Flush( Dptr, sequence );
-        morse_sequence_wait( morse, sequence );
-        morse_desc_mat_free( Dptr );
+        chameleon_sequence_wait( chamctxt, sequence );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/compute/zunmqr_param.c b/compute/zunmqr_param.c
index 38b3d9228451787bd2b8a194458728fb6675091d..e53ed50a781343d87609838285e4454828fbf3bd 100644
--- a/compute/zunmqr_param.c
+++ b/compute/zunmqr_param.c
@@ -111,15 +111,15 @@ int CHAMELEON_zunmqr_param( const libhqr_tree_t *qrtree,
 {
     int NB, Am;
     int status;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     CHAM_desc_t descAl, descAt;
     CHAM_desc_t descCl, descCt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zunmqr_param", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zunmqr_param", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
@@ -131,31 +131,31 @@ int CHAMELEON_zunmqr_param( const libhqr_tree_t *qrtree,
 
     /* Check input arguments */
     if ((side != ChamLeft) && (side != ChamRight)) {
-        morse_error("CHAMELEON_zunmqr_param", "illegal value of side");
+        chameleon_error("CHAMELEON_zunmqr_param", "illegal value of side");
         return -1;
     }
     if ((trans != ChamConjTrans) && (trans != ChamNoTrans)){
-        morse_error("CHAMELEON_zunmqr_param", "illegal value of trans");
+        chameleon_error("CHAMELEON_zunmqr_param", "illegal value of trans");
         return -2;
     }
     if (M < 0) {
-        morse_error("CHAMELEON_zunmqr_param", "illegal value of M");
+        chameleon_error("CHAMELEON_zunmqr_param", "illegal value of M");
         return -3;
     }
     if (N < 0) {
-        morse_error("CHAMELEON_zunmqr_param", "illegal value of N");
+        chameleon_error("CHAMELEON_zunmqr_param", "illegal value of N");
         return -4;
     }
     if ((K < 0) || (K > Am)) {
-        morse_error("CHAMELEON_zunmqr_param", "illegal value of K");
+        chameleon_error("CHAMELEON_zunmqr_param", "illegal value of K");
         return -5;
     }
     if (LDA < chameleon_max(1, Am)) {
-        morse_error("CHAMELEON_zunmqr_param", "illegal value of LDA");
+        chameleon_error("CHAMELEON_zunmqr_param", "illegal value of LDA");
         return -7;
     }
     if (LDC < chameleon_max(1, M)) {
-        morse_error("CHAMELEON_zunmqr_param", "illegal value of LDC");
+        chameleon_error("CHAMELEON_zunmqr_param", "illegal value of LDC");
         return -10;
     }
     /* Quick return - currently NOT equivalent to LAPACK's:
@@ -164,41 +164,41 @@ int CHAMELEON_zunmqr_param( const libhqr_tree_t *qrtree,
         return CHAMELEON_SUCCESS;
 
     /* Tune NB & IB depending on M, K & N; Set NBNB */
-    status = morse_tune(CHAMELEON_FUNC_ZGELS, M, K, N);
+    status = chameleon_tune(CHAMELEON_FUNC_ZGELS, M, K, N);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunmqr_param", "morse_tune() failed");
+        chameleon_error("CHAMELEON_zunmqr_param", "chameleon_tune() failed");
         return status;
     }
 
     /* Set MT, NT & NTRHS */
     NB   = CHAMELEON_NB;
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     /* Submit the matrix conversion */
-    morse_zlap2tile( morse, &descAl, &descAt, ChamDescInput, ChamLower,
+    chameleon_zlap2tile( chamctxt, &descAl, &descAt, ChamDescInput, ChamLower,
                      A, NB, NB, LDA, K, Am, K, sequence, &request );
-    morse_zlap2tile( morse, &descCl, &descCt, ChamDescInout, ChamUpperLower,
+    chameleon_zlap2tile( chamctxt, &descCl, &descCt, ChamDescInout, ChamUpperLower,
                      C, NB, NB, LDC, N, M,  N, sequence, &request );
 
     /* Call the tile interface */
     CHAMELEON_zunmqr_param_Tile_Async( qrtree, side, trans, &descAt, descTS, descTT, &descCt, sequence, &request );
 
     /* Submit the matrix conversion back */
-    morse_ztile2lap( morse, &descAl, &descAt,
+    chameleon_ztile2lap( chamctxt, &descAl, &descAt,
                      ChamDescInput, ChamLower, sequence, &request );
-    morse_ztile2lap( morse, &descCl, &descCt,
+    chameleon_ztile2lap( chamctxt, &descCl, &descCt,
                      ChamDescInout, ChamUpperLower, sequence, &request );
     CHAMELEON_Desc_Flush( descTS, sequence );
     CHAMELEON_Desc_Flush( descTT, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
 
     /* Cleanup the temporary data */
-    morse_ztile2lap_cleanup( morse, &descAl, &descAt );
-    morse_ztile2lap_cleanup( morse, &descCl, &descCt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descAl, &descAt );
+    chameleon_ztile2lap_cleanup( chamctxt, &descCl, &descCt );
 
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -255,17 +255,17 @@ int CHAMELEON_zunmqr_param( const libhqr_tree_t *qrtree,
 int CHAMELEON_zunmqr_param_Tile( const libhqr_tree_t *qrtree, cham_side_t side, cham_trans_t trans,
                              CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *C )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     RUNTIME_sequence_t *sequence = NULL;
     RUNTIME_request_t request = RUNTIME_REQUEST_INITIALIZER;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zunmqr_param_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zunmqr_param_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    morse_sequence_create( morse, &sequence );
+    chameleon_sequence_create( chamctxt, &sequence );
 
     CHAMELEON_zunmqr_param_Tile_Async( qrtree, side, trans, A, TS, TT, C, sequence, &request );
 
@@ -274,9 +274,9 @@ int CHAMELEON_zunmqr_param_Tile( const libhqr_tree_t *qrtree, cham_side_t side,
     CHAMELEON_Desc_Flush( TT, sequence );
     CHAMELEON_Desc_Flush( C, sequence );
 
-    morse_sequence_wait( morse, sequence );
+    chameleon_sequence_wait( chamctxt, sequence );
     status = sequence->status;
-    morse_sequence_destroy( morse, sequence );
+    chameleon_sequence_destroy( chamctxt, sequence );
     return status;
 }
 
@@ -313,20 +313,20 @@ int CHAMELEON_zunmqr_param_Tile_Async( const libhqr_tree_t *qrtree,
                                    CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *C,
                                    RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t D, *Dptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_zunmqr_param_Tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_zunmqr_param_Tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_zunmqr_param_Tile", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_zunmqr_param_Tile", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (request == NULL) {
-        morse_fatal_error("CHAMELEON_zunmqr_param_Tile", "NULL request");
+        chameleon_fatal_error("CHAMELEON_zunmqr_param_Tile", "NULL request");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     /* Check sequence status */
@@ -334,36 +334,36 @@ int CHAMELEON_zunmqr_param_Tile_Async( const libhqr_tree_t *qrtree,
         request->status = CHAMELEON_SUCCESS;
     }
     else {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
     }
 
     /* Check descriptors for correctness */
-    if (morse_desc_check(A) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunmqr_param_Tile", "invalid first descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(A) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zunmqr_param_Tile", "invalid first descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(TS) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunmqr_param_Tile", "invalid second descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(TS) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zunmqr_param_Tile", "invalid second descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(TT) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunmqr_param_Tile", "invalid third descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(TT) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zunmqr_param_Tile", "invalid third descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
-    if (morse_desc_check(C) != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_zunmqr_param_Tile", "invalid fourth descriptor");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+    if (chameleon_desc_check(C) != CHAMELEON_SUCCESS) {
+        chameleon_error("CHAMELEON_zunmqr_param_Tile", "invalid fourth descriptor");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Check input arguments */
     if (A->nb != A->mb || C->nb != C->mb) {
-        morse_error("CHAMELEON_zunmqr_param_Tile", "only square tiles supported");
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        chameleon_error("CHAMELEON_zunmqr_param_Tile", "only square tiles supported");
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((side != ChamLeft) && (side != ChamRight)) {
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     if ((trans != ChamConjTrans) && (trans != ChamNoTrans)){
-        return morse_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
+        return chameleon_request_fail(sequence, request, CHAMELEON_ERR_ILLEGAL_VALUE);
     }
     /* Quick return - currently NOT equivalent to LAPACK's:
      * CALL DLASET( 'Full', MAX( M, N ), NRHS, ZERO, ZERO, C, LDC ) */
@@ -375,12 +375,12 @@ int CHAMELEON_zunmqr_param_Tile_Async( const libhqr_tree_t *qrtree,
 #if defined(CHAMELEON_COPY_DIAG)
     {
         int n = chameleon_min(A->mt, A->nt) * A->nb;
-        morse_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
+        chameleon_zdesc_alloc(D, A->mb, A->nb, A->m, n, 0, 0, A->m, n, );
         Dptr = &D;
     }
 #endif
 
-    morse_pzunmqr_param( qrtree, side, trans, A, C, TS, TT, Dptr, sequence, request );
+    chameleon_pzunmqr_param( qrtree, side, trans, A, C, TS, TT, Dptr, sequence, request );
 
     if (Dptr != NULL) {
         CHAMELEON_Desc_Flush( A, sequence );
@@ -388,8 +388,8 @@ int CHAMELEON_zunmqr_param_Tile_Async( const libhqr_tree_t *qrtree,
         CHAMELEON_Desc_Flush( TS, sequence );
         CHAMELEON_Desc_Flush( TT, sequence );
         CHAMELEON_Desc_Flush( Dptr, sequence );
-        morse_sequence_wait( morse, sequence );
-        morse_desc_mat_free( Dptr );
+        chameleon_sequence_wait( chamctxt, sequence );
+        chameleon_desc_mat_free( Dptr );
     }
     (void)D;
     return CHAMELEON_SUCCESS;
diff --git a/control/CMakeLists.txt b/control/CMakeLists.txt
index ca97ca564b51cfd9b58e0f0e7480d1f061f9b7c0..567ffa31af192184151421627bbbcc2e098de47a 100644
--- a/control/CMakeLists.txt
+++ b/control/CMakeLists.txt
@@ -27,7 +27,7 @@
 ###
 
 
-# Generate the morse headers for all possible precisions
+# Generate the chameleon headers for all possible precisions
 # ------------------------------------------------------
 set(CHAMELEON_HDRS_GENERATED "")
 set(ZHDR
@@ -47,8 +47,8 @@ set(CHAMELEON_HDRS
     descriptor.h
     gkkleader.h
     global.h
-    morse_f77.h
-    morsewinthread.h
+    chameleon_f77.h
+    chameleonwinthread.h
     workspace.h
     )
 
diff --git a/control/async.c b/control/async.c
index d86c07fdccfc80ccdbae15561f1c287711e57cc3..927f03ad458daef9a7c3106bdba65480fa01da04 100644
--- a/control/async.c
+++ b/control/async.c
@@ -30,7 +30,7 @@
 /**
  *  Register an exception.
  */
-int morse_request_fail(RUNTIME_sequence_t *sequence, RUNTIME_request_t *request, int status)
+int chameleon_request_fail(RUNTIME_sequence_t *sequence, RUNTIME_request_t *request, int status)
 {
     sequence->request = request;
     sequence->status = status;
@@ -41,14 +41,14 @@ int morse_request_fail(RUNTIME_sequence_t *sequence, RUNTIME_request_t *request,
 /**
  *  Create a sequence
  */
-int morse_sequence_create(CHAM_context_t *morse, RUNTIME_sequence_t **sequence)
+int chameleon_sequence_create(CHAM_context_t *chamctxt, RUNTIME_sequence_t **sequence)
 {
     if ((*sequence = malloc(sizeof(RUNTIME_sequence_t))) == NULL) {
-        morse_error("CHAMELEON_Sequence_Create", "malloc() failed");
+        chameleon_error("CHAMELEON_Sequence_Create", "malloc() failed");
         return CHAMELEON_ERR_OUT_OF_RESOURCES;
     }
 
-    RUNTIME_sequence_create( morse, *sequence );
+    RUNTIME_sequence_create( chamctxt, *sequence );
 
     (*sequence)->status = CHAMELEON_SUCCESS;
     return CHAMELEON_SUCCESS;
@@ -57,9 +57,9 @@ int morse_sequence_create(CHAM_context_t *morse, RUNTIME_sequence_t **sequence)
 /**
  *  Destroy a sequence
  */
-int morse_sequence_destroy(CHAM_context_t *morse, RUNTIME_sequence_t *sequence)
+int chameleon_sequence_destroy(CHAM_context_t *chamctxt, RUNTIME_sequence_t *sequence)
 {
-    RUNTIME_sequence_destroy( morse, sequence );
+    RUNTIME_sequence_destroy( chamctxt, sequence );
     free(sequence);
     return CHAMELEON_SUCCESS;
 }
@@ -67,9 +67,9 @@ int morse_sequence_destroy(CHAM_context_t *morse, RUNTIME_sequence_t *sequence)
 /**
  *  Wait for the completion of a sequence
  */
-int morse_sequence_wait(CHAM_context_t *morse, RUNTIME_sequence_t *sequence)
+int chameleon_sequence_wait(CHAM_context_t *chamctxt, RUNTIME_sequence_t *sequence)
 {
-    RUNTIME_sequence_wait( morse, sequence );
+    RUNTIME_sequence_wait( chamctxt, sequence );
     return CHAMELEON_SUCCESS;
 }
 
@@ -92,15 +92,15 @@ int morse_sequence_wait(CHAM_context_t *morse, RUNTIME_sequence_t *sequence)
  */
 int CHAMELEON_Sequence_Create(RUNTIME_sequence_t **sequence)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_Sequence_Create", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_Sequence_Create", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    status = morse_sequence_create(morse, sequence);
+    status = chameleon_sequence_create(chamctxt, sequence);
     return status;
 }
 
@@ -123,19 +123,19 @@ int CHAMELEON_Sequence_Create(RUNTIME_sequence_t **sequence)
  */
 int CHAMELEON_Sequence_Destroy(RUNTIME_sequence_t *sequence)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_Sequence_Destroy", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_Sequence_Destroy", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_Sequence_Destroy", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_Sequence_Destroy", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
-    status = morse_sequence_destroy(morse, sequence);
+    status = chameleon_sequence_destroy(chamctxt, sequence);
     return status;
 }
 
@@ -158,19 +158,19 @@ int CHAMELEON_Sequence_Destroy(RUNTIME_sequence_t *sequence)
  */
 int CHAMELEON_Sequence_Wait(RUNTIME_sequence_t *sequence)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     int status;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_Sequence_Wait", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_Sequence_Wait", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_Sequence_Wait", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_Sequence_Wait", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
-    status = morse_sequence_wait(morse, sequence);
+    status = chameleon_sequence_wait(chamctxt, sequence);
     return status;
 }
 
@@ -196,19 +196,19 @@ int CHAMELEON_Sequence_Wait(RUNTIME_sequence_t *sequence)
  */
 int CHAMELEON_Sequence_Flush(RUNTIME_sequence_t *sequence, RUNTIME_request_t *request)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_Sequence_Flush", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_Sequence_Flush", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (sequence == NULL) {
-        morse_fatal_error("CHAMELEON_Sequence_Flush", "NULL sequence");
+        chameleon_fatal_error("CHAMELEON_Sequence_Flush", "NULL sequence");
         return CHAMELEON_ERR_UNALLOCATED;
     }
 
-    RUNTIME_sequence_flush( morse->schedopt, sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
+    RUNTIME_sequence_flush( chamctxt->schedopt, sequence, request, CHAMELEON_ERR_SEQUENCE_FLUSHED);
 
     return CHAMELEON_SUCCESS;
 }
diff --git a/control/async.h b/control/async.h
index 5157c10ecd2e208825b4339976fc74a79820eb7e..f35e5f7c9f0af3fe1ecaf23ec58b9648d0bf586b 100644
--- a/control/async.h
+++ b/control/async.h
@@ -29,10 +29,10 @@ extern "C" {
 /**
  *  Internal routines
  */
-int morse_request_fail     (RUNTIME_sequence_t *sequence, RUNTIME_request_t *request, int error);
-int morse_sequence_create  (CHAM_context_t *CHAMELEON, RUNTIME_sequence_t **sequence);
-int morse_sequence_destroy (CHAM_context_t *CHAMELEON, RUNTIME_sequence_t *sequence);
-int morse_sequence_wait    (CHAM_context_t *CHAMELEON, RUNTIME_sequence_t *sequence);
+int chameleon_request_fail     (RUNTIME_sequence_t *sequence, RUNTIME_request_t *request, int error);
+int chameleon_sequence_create  (CHAM_context_t *CHAMELEON, RUNTIME_sequence_t **sequence);
+int chameleon_sequence_destroy (CHAM_context_t *CHAMELEON, RUNTIME_sequence_t *sequence);
+int chameleon_sequence_wait    (CHAM_context_t *CHAMELEON, RUNTIME_sequence_t *sequence);
 
 #ifdef __cplusplus
 }
diff --git a/control/auxiliary.c b/control/auxiliary.c
index 1024557e4421ae45181c71b24835683456c142f7..55e05b2650e63f335dec9fde7e6ac838f9d3f596 100644
--- a/control/auxiliary.c
+++ b/control/auxiliary.c
@@ -46,14 +46,14 @@
  *          Warning message to display.
  *
  */
-void morse_warning(const char *func_name, const char *msg_text)
+void chameleon_warning(const char *func_name, const char *msg_text)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL)
-        morse_fatal_error("morse_warning", "CHAMELEON not initialized");
-    if (morse->warnings_enabled)
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL)
+        chameleon_fatal_error("chameleon_warning", "CHAMELEON not initialized");
+    if (chamctxt->warnings_enabled)
         fprintf(stderr, "CHAMELEON WARNING: %s(): %s\n", func_name, msg_text);
 }
 
@@ -71,7 +71,7 @@ void morse_warning(const char *func_name, const char *msg_text)
  *          Warning message to display.
  *
  */
-void morse_error(const char *func_name, const char *msg_text)
+void chameleon_error(const char *func_name, const char *msg_text)
 {
     fprintf(stderr, "CHAMELEON ERROR: %s(): %s\n", func_name, msg_text);
 }
@@ -89,7 +89,7 @@ void morse_error(const char *func_name, const char *msg_text)
  *          Warning message to display.
  *
  */
-void morse_fatal_error(const char *func_name, const char *msg_text)
+void chameleon_fatal_error(const char *func_name, const char *msg_text)
 {
     fprintf(stderr, "CHAMELEON FATAL ERROR: %s(): %s\n", func_name, msg_text);
     exit(0);
@@ -98,20 +98,20 @@ void morse_fatal_error(const char *func_name, const char *msg_text)
 /**
  *  Returns core id
  */
-int morse_rank(CHAM_context_t *morse)
+int chameleon_rank(CHAM_context_t *chamctxt)
 {
-    return RUNTIME_thread_rank( morse );
+    return RUNTIME_thread_rank( chamctxt );
 }
 
 /**
  *  Tune block size nb and internal block size ib
  */
-int morse_tune(cham_tasktype_t func, int M, int N, int NRHS)
+int chameleon_tune(cham_tasktype_t func, int M, int N, int NRHS)
 {
-    CHAM_context_t *morse;
-    morse = morse_context_self();
-    if ( morse && morse->autotuning_enabled == CHAMELEON_TRUE ) {
-        morse_warning( "morse_tune", "Autotunning not available for now" );
+    CHAM_context_t *chamctxt;
+    chamctxt = chameleon_context_self();
+    if ( chamctxt && chamctxt->autotuning_enabled == CHAMELEON_TRUE ) {
+        chameleon_warning( "chameleon_tune", "Autotunning not available for now" );
     }
     (void)func;
     (void)M;
@@ -193,7 +193,7 @@ int CHAMELEON_Element_Size(int type)
         case ChamRealDouble:    return   sizeof(double);
         case ChamComplexFloat:  return 2*sizeof(float);
         case ChamComplexDouble: return 2*sizeof(double);
-        default: morse_fatal_error("CHAMELEON_Element_Size", "undefined type");
+        default: chameleon_fatal_error("CHAMELEON_Element_Size", "undefined type");
                  return CHAMELEON_ERR_ILLEGAL_VALUE;
 
     }
@@ -216,9 +216,9 @@ int CHAMELEON_Element_Size(int type)
 int CHAMELEON_My_Mpi_Rank(void)
 {
 #if defined(CHAMELEON_USE_MPI)
-    CHAM_context_t *morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_Finalize()", "CHAMELEON not initialized");
+    CHAM_context_t *chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_Finalize()", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     return CHAMELEON_MPI_RANK;
diff --git a/control/auxiliary.h b/control/auxiliary.h
index aca92da8381a589909695f94b3658aef51429577..28a585857a211b5a798132a80e91e8d84fc424b0 100644
--- a/control/auxiliary.h
+++ b/control/auxiliary.h
@@ -32,11 +32,11 @@ extern "C" {
 /**
  *  Internal routines
  */
-void morse_warning      (const char *func_name, const char* msg_text);
-void morse_error        (const char *func_name, const char* msg_text);
-void morse_fatal_error  (const char *func_name, const char* msg_text);
-int  morse_rank         (CHAM_context_t *morse);
-int  morse_tune         (cham_tasktype_t func, int M, int N, int NRHS);
+void chameleon_warning      (const char *func_name, const char* msg_text);
+void chameleon_error        (const char *func_name, const char* msg_text);
+void chameleon_fatal_error  (const char *func_name, const char* msg_text);
+int  chameleon_rank         (CHAM_context_t *chamctxt);
+int  chameleon_tune         (cham_tasktype_t func, int M, int N, int NRHS);
 
 /**
  *  API routines
diff --git a/control/morse_f77.c b/control/chameleon_f77.c
similarity index 98%
rename from control/morse_f77.c
rename to control/chameleon_f77.c
index bddfcba9733f929b3988092fef6c065b13ae791f..e5c5c96b163b4ec531e7bf547268a3bbe6d8b4b8 100644
--- a/control/morse_f77.c
+++ b/control/chameleon_f77.c
@@ -1,6 +1,6 @@
 /**
  *
- * @file morse_f77.c
+ * @file chameleon_f77.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
@@ -21,7 +21,7 @@
 #include <stdlib.h>
 #include "control/common.h"
 #include "chameleon.h"
-#include "morse_f77.h"
+#include "chameleon_f77.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/control/chameleon_f77.h b/control/chameleon_f77.h
new file mode 100644
index 0000000000000000000000000000000000000000..df10423275ac1722744f1b9f019de42341167a4c
--- /dev/null
+++ b/control/chameleon_f77.h
@@ -0,0 +1,49 @@
+/**
+ *
+ * @file chameleon_f77.h
+ *
+ * @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,
+ *                      Univ. Bordeaux. All rights reserved.
+ *
+ ***
+ *
+ * @brief Chameleon Fortran77 naming macros
+ *
+ * @version 1.0.0
+ * @author Florent Pruvost
+ * @date 2017-05-03
+ *
+ */
+#ifndef _CHAMELEON_F77_H_
+#define _CHAMELEON_F77_H_
+
+#include "chameleon/mangling.h"
+
+/**
+ *  Determine FORTRAN names
+ */
+#define CHAMELEON_FNAME(lcname, UCNAME) CHAMELEON_GLOBAL(chameleon_##lcname, CHAMELEON_##UCNAME)
+#define CHAMELEON_TILE_FNAME(lcname, UCNAME) CHAMELEON_GLOBAL(chameleon_##lcname##_tile, CHAMELEON_##UCNAME##_TILE)
+#define CHAMELEON_ASYNC_FNAME(lcname, UCNAME) CHAMELEON_GLOBAL(chameleon_##lcname##_tile_async, CHAMELEON_##UCNAME##_TILE_ASYNC)
+#define CHAMELEON_WS_FNAME(lcname, UCNAME) CHAMELEON_GLOBAL(chameleon_alloc_workspace_##lcname, CHAMELEON_ALLOC_WORKSPACE_##UCNAME)
+#define CHAMELEON_WST_FNAME(lcname, UCNAME) CHAMELEON_GLOBAL(chameleon_alloc_workspace_##lcname##_tile, CHAMELEON_ALLOC_WORKSPACE_##UCNAME##_TILE)
+
+#define CHAMELEON_INIT CHAMELEON_GLOBAL(chameleon_init, CHAMELEON_INIT)
+#define CHAMELEON_FINALIZE CHAMELEON_GLOBAL(chameleon_finalize, CHAMELEON_FINALIZE)
+#define CHAMELEON_ENABLE CHAMELEON_GLOBAL(chameleon_enable, CHAMELEON_ENABLE)
+#define CHAMELEON_DISABLE CHAMELEON_GLOBAL(chameleon_disable, CHAMELEON_DISABLE)
+#define CHAMELEON_SET CHAMELEON_GLOBAL(chameleon_set, CHAMELEON_SET)
+#define CHAMELEON_GET CHAMELEON_GLOBAL(chameleon_get, CHAMELEON_GET)
+#define CHAMELEON_DEALLOC_HANDLE CHAMELEON_GLOBAL(chameleon_dealloc_handle, CHAMELEON_DEALLOC_HANDLE)
+#define CHAMELEON_VERSION CHAMELEON_GLOBAL(chameleon_version, CHAMELEON_VERSION)
+#define CHAMELEON_DESC_CREATE CHAMELEON_GLOBAL(chameleon_desc_create, CHAMELEON_DESC_CREATE)
+#define CHAMELEON_DESC_CREATE_OOC CHAMELEON_GLOBAL(chameleon_desc_create_ooc, CHAMELEON_DESC_CREATE_OOC)
+#define CHAMELEON_DESC_CREATE_USER CHAMELEON_GLOBAL(chameleon_desc_create_user, CHAMELEON_DESC_CREATE_USER)
+#define CHAMELEON_DESC_CREATE_OOC_USER CHAMELEON_GLOBAL(chameleon_desc_create_ooc_user, CHAMELEON_DESC_CREATE_OOC_USER)
+#define CHAMELEON_DESC_DESTROY CHAMELEON_GLOBAL(chameleon_desc_destroy, CHAMELEON_DESC_DESTROY)
+#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
diff --git a/control/morse_f90.f90 b/control/chameleon_f90.f90
similarity index 75%
rename from control/morse_f90.f90
rename to control/chameleon_f90.f90
index fb5d5f60217b702fd266845747c56c7352bf9771..54fd6a43a553cf942f935b78ed9c4fe62e895838 100644
--- a/control/morse_f90.f90
+++ b/control/chameleon_f90.f90
@@ -74,17 +74,17 @@
 ! @date 2011-09-15
 ! @precisions normal z -> c d s
 !
-module morse
+module chameleon
 
-      use morse_s
-      use morse_d
-      use morse_ds
-      use morse_c
-      use morse_z
-      use morse_zc
-      include 'morse_fortran.h'
+      use chameleon_s
+      use chameleon_d
+      use chameleon_ds
+      use chameleon_c
+      use chameleon_z
+      use chameleon_zc
+      include 'chameleon_fortran.h'
 
-      logical :: morse_initialized = .false.
+      logical :: chameleon_initialized = .false.
       integer, parameter :: sp = kind(0.0)
       integer, parameter :: dp = kind(0.0d0)
 
@@ -309,164 +309,164 @@ module morse
          end function CHAMELEON_Sequence_Flush_c
       end interface
 
-      interface morse_lapack_to_tile
-         module procedure morse_lapack_to_tile_s
-         module procedure morse_lapack_to_tile_d
-         module procedure morse_lapack_to_tile_cpx
-         module procedure morse_lapack_to_tile_z
-      end interface morse_lapack_to_tile
-
-      interface morse_tile_to_lapack
-         module procedure morse_tile_to_lapack_s
-         module procedure morse_tile_to_lapack_d
-         module procedure morse_tile_to_lapack_cpx
-         module procedure morse_tile_to_lapack_z
-      end interface morse_tile_to_lapack
-
-      interface morse_desc_create
-         module procedure morse_desc_create_s
-         module procedure morse_desc_create_d
-         module procedure morse_desc_create_cpx
-         module procedure morse_desc_create_z
-      end interface morse_desc_create
+      interface chameleon_lapack_to_tile
+         module procedure chameleon_lapack_to_tile_s
+         module procedure chameleon_lapack_to_tile_d
+         module procedure chameleon_lapack_to_tile_cpx
+         module procedure chameleon_lapack_to_tile_z
+      end interface chameleon_lapack_to_tile
+
+      interface chameleon_tile_to_lapack
+         module procedure chameleon_tile_to_lapack_s
+         module procedure chameleon_tile_to_lapack_d
+         module procedure chameleon_tile_to_lapack_cpx
+         module procedure chameleon_tile_to_lapack_z
+      end interface chameleon_tile_to_lapack
+
+      interface chameleon_desc_create
+         module procedure chameleon_desc_create_s
+         module procedure chameleon_desc_create_d
+         module procedure chameleon_desc_create_cpx
+         module procedure chameleon_desc_create_z
+      end interface chameleon_desc_create
 
    contains
 
-   subroutine morse_init(cores,gpus,info)
+   subroutine chameleon_init(cores,gpus,info)
       use iso_c_binding
       implicit none
       integer(kind=c_int), intent(in) :: cores, gpus
       integer(kind=c_int), intent(out) :: info
-      info = morse_init_c(cores,gpus)
-      morse_initialized = .true.
-   end subroutine morse_init
+      info = chameleon_init_c(cores,gpus)
+      chameleon_initialized = .true.
+   end subroutine chameleon_init
 
-   subroutine morse_finalize(info)
+   subroutine chameleon_finalize(info)
       use iso_c_binding
       implicit none
       integer(kind=c_int), intent(out) :: info
-      info = morse_finalize_c()
-      morse_initialized = .false.
-   end subroutine morse_finalize
+      info = chameleon_finalize_c()
+      chameleon_initialized = .false.
+   end subroutine chameleon_finalize
 
-   subroutine morse_set(param,pval,info)
+   subroutine chameleon_set(param,pval,info)
       use iso_c_binding
       implicit none
       integer(kind=c_int), intent(in) :: param
       integer(kind=c_int), intent(in) :: pval
       integer(kind=c_int), intent(out) :: info
-      info = morse_set_c(param,pval)
-   end subroutine morse_set
+      info = chameleon_set_c(param,pval)
+   end subroutine chameleon_set
 
-   subroutine morse_get(param,pval,info)
+   subroutine chameleon_get(param,pval,info)
       use iso_c_binding
       implicit none
       integer(kind=c_int), intent(in) :: param
       integer(kind=c_int), intent(out), target :: pval
       integer(kind=c_int), intent(out) :: info
-      info = morse_get_c(param,c_loc(pval))
-   end subroutine morse_get
+      info = chameleon_get_c(param,c_loc(pval))
+   end subroutine chameleon_get
 
-   subroutine morse_enable(param,info)
+   subroutine chameleon_enable(param,info)
       use iso_c_binding
       implicit none
       integer(kind=c_int), intent(in) :: param
       integer(kind=c_int), intent(out) :: info
-      info = morse_enable_c(param)
-   end subroutine morse_enable
+      info = chameleon_enable_c(param)
+   end subroutine chameleon_enable
 
-   subroutine morse_disable(param,info)
+   subroutine chameleon_disable(param,info)
       use iso_c_binding
       implicit none
       integer(kind=c_int), intent(in) :: param
       integer(kind=c_int), intent(out) :: info
-      info = morse_disable_c(param)
-   end subroutine morse_disable
+      info = chameleon_disable_c(param)
+   end subroutine chameleon_disable
 
 ! overloaded: single precision
-   subroutine morse_lapack_to_tile_s(a_lpk,lda,a_pma,info)
+   subroutine chameleon_lapack_to_tile_s(a_lpk,lda,a_pma,info)
       use iso_c_binding
       implicit none
       integer(kind=c_int), intent(in) :: lda
       real(kind=sp), intent(out), target :: a_lpk(lda,*)
       type(c_ptr), intent(out) ::  a_pma
       integer(kind=c_int), intent(out) :: info
-      info = morse_lapack_to_tile_c(c_loc(a_lpk),lda,a_pma)
-   end subroutine morse_lapack_to_tile_s
+      info = chameleon_lapack_to_tile_c(c_loc(a_lpk),lda,a_pma)
+   end subroutine chameleon_lapack_to_tile_s
 ! overloaded: double precision
-   subroutine morse_lapack_to_tile_d(a_lpk,lda,a_pma,info)
+   subroutine chameleon_lapack_to_tile_d(a_lpk,lda,a_pma,info)
       use iso_c_binding
       implicit none
       integer(kind=c_int), intent(in) :: lda
       real(kind=dp), intent(out), target :: a_lpk(lda,*)
       type(c_ptr), intent(out) ::  a_pma
       integer(kind=c_int), intent(out) :: info
-      info = morse_lapack_to_tile_c(c_loc(a_lpk),lda,a_pma)
-   end subroutine morse_lapack_to_tile_d
+      info = chameleon_lapack_to_tile_c(c_loc(a_lpk),lda,a_pma)
+   end subroutine chameleon_lapack_to_tile_d
 ! overloaded: single precision complex
-   subroutine morse_lapack_to_tile_cpx(a_lpk,lda,a_pma,info)
+   subroutine chameleon_lapack_to_tile_cpx(a_lpk,lda,a_pma,info)
       use iso_c_binding
       implicit none
       integer(kind=c_int), intent(in) :: lda
       complex(kind=sp), intent(out), target :: a_lpk(lda,*)
       type(c_ptr), intent(out) ::  a_pma
       integer(kind=c_int), intent(out) :: info
-      info = morse_lapack_to_tile_c(c_loc(a_lpk),lda,a_pma)
-   end subroutine morse_lapack_to_tile_cpx
+      info = chameleon_lapack_to_tile_c(c_loc(a_lpk),lda,a_pma)
+   end subroutine chameleon_lapack_to_tile_cpx
 ! overloaded: double precision complex
-   subroutine morse_lapack_to_tile_z(a_lpk,lda,a_pma,info)
+   subroutine chameleon_lapack_to_tile_z(a_lpk,lda,a_pma,info)
       use iso_c_binding
       implicit none
       integer(kind=c_int), intent(in) :: lda
       complex(kind=dp), intent(out), target :: a_lpk(lda,*)
       type(c_ptr), intent(out) ::  a_pma
       integer(kind=c_int), intent(out) :: info
-      info = morse_lapack_to_tile_c(c_loc(a_lpk),lda,a_pma)
-   end subroutine morse_lapack_to_tile_z
+      info = chameleon_lapack_to_tile_c(c_loc(a_lpk),lda,a_pma)
+   end subroutine chameleon_lapack_to_tile_z
 
 ! overloaded: single precision
-   subroutine morse_tile_to_lapack_s(a_pma,a_lpk,lda,info)
+   subroutine chameleon_tile_to_lapack_s(a_pma,a_lpk,lda,info)
       use iso_c_binding
       implicit none
       integer(kind=c_int), intent(in) :: lda
       real(kind=sp), intent(out), target :: a_lpk(lda,*)
       type(c_ptr), intent(in) ::  a_pma
       integer(kind=c_int), intent(out) :: info
-      info = morse_tile_to_lapack_c(a_pma,c_loc(a_lpk),lda)
-   end subroutine morse_tile_to_lapack_s
+      info = chameleon_tile_to_lapack_c(a_pma,c_loc(a_lpk),lda)
+   end subroutine chameleon_tile_to_lapack_s
 ! overloaded: double precision
-   subroutine morse_tile_to_lapack_d(a_pma,a_lpk,lda,info)
+   subroutine chameleon_tile_to_lapack_d(a_pma,a_lpk,lda,info)
       use iso_c_binding
       implicit none
       integer(kind=c_int), intent(in) :: lda
       real(kind=dp), intent(out), target :: a_lpk(lda,*)
       type(c_ptr), intent(in) ::  a_pma
       integer(kind=c_int), intent(out) :: info
-      info = morse_tile_to_lapack_c(a_pma,c_loc(a_lpk),lda)
-   end subroutine morse_tile_to_lapack_d
+      info = chameleon_tile_to_lapack_c(a_pma,c_loc(a_lpk),lda)
+   end subroutine chameleon_tile_to_lapack_d
 ! overloaded: single precision complex
-   subroutine morse_tile_to_lapack_cpx(a_pma,a_lpk,lda,info)
+   subroutine chameleon_tile_to_lapack_cpx(a_pma,a_lpk,lda,info)
       use iso_c_binding
       implicit none
       integer(kind=c_int), intent(in) :: lda
       complex(kind=sp), intent(out), target :: a_lpk(lda,*)
       type(c_ptr), intent(in) ::  a_pma
       integer(kind=c_int), intent(out) :: info
-      info = morse_tile_to_lapack_c(a_pma,c_loc(a_lpk),lda)
-   end subroutine morse_tile_to_lapack_cpx
+      info = chameleon_tile_to_lapack_c(a_pma,c_loc(a_lpk),lda)
+   end subroutine chameleon_tile_to_lapack_cpx
 ! overloaded: double precision complex
-   subroutine morse_tile_to_lapack_z(a_pma,a_lpk,lda,info)
+   subroutine chameleon_tile_to_lapack_z(a_pma,a_lpk,lda,info)
       use iso_c_binding
       implicit none
       integer(kind=c_int), intent(in) :: lda
       complex(kind=dp), intent(out), target :: a_lpk(lda,*)
       type(c_ptr), intent(in) ::  a_pma
       integer(kind=c_int), intent(out) :: info
-      info = morse_tile_to_lapack_c(a_pma,c_loc(a_lpk),lda)
-   end subroutine morse_tile_to_lapack_z
+      info = chameleon_tile_to_lapack_c(a_pma,c_loc(a_lpk),lda)
+   end subroutine chameleon_tile_to_lapack_z
 
 ! overloaded: single precision
-   subroutine morse_desc_create_s(desc,mat,dtyp,mb,nb,bsiz,lm,ln,i,j,m,n,p,q,info)
+   subroutine chameleon_desc_create_s(desc,mat,dtyp,mb,nb,bsiz,lm,ln,i,j,m,n,p,q,info)
       use iso_c_binding
       implicit none
       type(c_ptr), intent(out) :: desc
@@ -474,10 +474,10 @@ module morse
       real(kind=sp), intent(in), target :: mat(lm,*)
       integer(kind=c_int), intent(in) :: dtyp
       integer(kind=c_int), intent(out) :: info
-      info = morse_desc_create_c(desc,c_loc(mat),dtyp,mb,nb,bsiz,lm,ln,i,j,m,n,p,q)
-   end subroutine morse_desc_create_s
+      info = chameleon_desc_create_c(desc,c_loc(mat),dtyp,mb,nb,bsiz,lm,ln,i,j,m,n,p,q)
+   end subroutine chameleon_desc_create_s
 ! overloaded: double precision
-   subroutine morse_desc_create_d(desc,mat,dtyp,mb,nb,bsiz,lm,ln,i,j,m,n,p,q,info)
+   subroutine chameleon_desc_create_d(desc,mat,dtyp,mb,nb,bsiz,lm,ln,i,j,m,n,p,q,info)
       use iso_c_binding
       implicit none
       type(c_ptr), intent(out) :: desc
@@ -485,10 +485,10 @@ module morse
       real(kind=dp), intent(in), target :: mat(lm,*)
       integer(kind=c_int), intent(in) :: dtyp
       integer(kind=c_int), intent(out) :: info
-      info = morse_desc_create_c(desc,c_loc(mat),dtyp,mb,nb,bsiz,lm,ln,i,j,m,n,p,q)
-   end subroutine morse_desc_create_d
+      info = chameleon_desc_create_c(desc,c_loc(mat),dtyp,mb,nb,bsiz,lm,ln,i,j,m,n,p,q)
+   end subroutine chameleon_desc_create_d
 ! overloaded: single precision complex
-   subroutine morse_desc_create_cpx(desc,mat,dtyp,mb,nb,bsiz,lm,ln,i,j,m,n,p,q,info)
+   subroutine chameleon_desc_create_cpx(desc,mat,dtyp,mb,nb,bsiz,lm,ln,i,j,m,n,p,q,info)
       use iso_c_binding
       implicit none
       type(c_ptr), intent(out) :: desc
@@ -496,10 +496,10 @@ module morse
       complex(kind=sp), intent(in), target :: mat(lm,*)
       integer(kind=c_int), intent(in) :: dtyp
       integer(kind=c_int), intent(out) :: info
-      info = morse_desc_create_c(desc,c_loc(mat),dtyp,mb,nb,bsiz,lm,ln,i,j,m,n,p,q)
-   end subroutine morse_desc_create_cpx
+      info = chameleon_desc_create_c(desc,c_loc(mat),dtyp,mb,nb,bsiz,lm,ln,i,j,m,n,p,q)
+   end subroutine chameleon_desc_create_cpx
 ! overloaded: double precision complex
-   subroutine morse_desc_create_z(desc,mat,dtyp,mb,nb,bsiz,lm,ln,i,j,m,n,p,q,info)
+   subroutine chameleon_desc_create_z(desc,mat,dtyp,mb,nb,bsiz,lm,ln,i,j,m,n,p,q,info)
       use iso_c_binding
       implicit none
       type(c_ptr), intent(out) :: desc
@@ -507,87 +507,87 @@ module morse
       complex(kind=dp), intent(in), target :: mat(lm,*)
       integer(kind=c_int), intent(in) :: dtyp
       integer(kind=c_int), intent(out) :: info
-      info = morse_desc_create_c(desc,c_loc(mat),dtyp,mb,nb,bsiz,lm,ln,i,j,m,n,p,q)
-   end subroutine morse_desc_create_z
+      info = chameleon_desc_create_c(desc,c_loc(mat),dtyp,mb,nb,bsiz,lm,ln,i,j,m,n,p,q)
+   end subroutine chameleon_desc_create_z
 
-   subroutine morse_desc_destroy(desc,info)
+   subroutine chameleon_desc_destroy(desc,info)
       use iso_c_binding
       implicit none
       type(c_ptr), intent(inout) :: desc
       integer(kind=c_int), intent(out) :: info
-      info = morse_desc_destroy_c(desc)
-   end subroutine morse_desc_destroy
+      info = chameleon_desc_destroy_c(desc)
+   end subroutine chameleon_desc_destroy
 
-   subroutine morse_free(ptr)
+   subroutine chameleon_free(ptr)
       use iso_c_binding
       implicit none
       type(c_ptr), intent(in) :: ptr
       call free_c(ptr)
-   end subroutine morse_free
+   end subroutine chameleon_free
 
-   subroutine morse_version(ver_major,ver_minor,ver_micro,info)
+   subroutine chameleon_version(ver_major,ver_minor,ver_micro,info)
       use iso_c_binding
       implicit none
       integer(kind=c_int), intent(out), target :: ver_major,ver_minor,ver_micro
       integer(kind=c_int), intent(out) :: info
-      info = morse_version_c(c_loc(ver_major),c_loc(ver_minor),c_loc(ver_micro))
-   end subroutine morse_version
+      info = chameleon_version_c(c_loc(ver_major),c_loc(ver_minor),c_loc(ver_micro))
+   end subroutine chameleon_version
 
-   subroutine morse_init_affinity(cores,bindtab,info)
+   subroutine chameleon_init_affinity(cores,bindtab,info)
       use iso_c_binding
       implicit none
       integer(kind=c_int), intent(in) :: cores
       integer(kind=c_int), intent(out), target :: bindtab
       integer(kind=c_int), intent(out) :: info
-      info = morse_init_affinity_c(cores,c_loc(bindtab))
-   end subroutine morse_init_affinity
+      info = chameleon_init_affinity_c(cores,c_loc(bindtab))
+   end subroutine chameleon_init_affinity
 
-   subroutine morse_dealloc_handle(handle,info)
+   subroutine chameleon_dealloc_handle(handle,info)
       use iso_c_binding
       implicit none
       type(c_ptr), intent(inout) :: handle
       integer(kind=c_int), intent(out) :: info
-      info = morse_dealloc_handle_c(handle)
-   end subroutine morse_dealloc_handle
+      info = chameleon_dealloc_handle_c(handle)
+   end subroutine chameleon_dealloc_handle
 
-   subroutine morse_dealloc_handle_tile(desc,info)
+   subroutine chameleon_dealloc_handle_tile(desc,info)
       use iso_c_binding
       implicit none
       type(c_ptr), intent(inout) :: desc
       integer(kind=c_int), intent(out) :: info
-      info = morse_dealloc_handle_tile_c(desc)
-   end subroutine morse_dealloc_handle_tile
+      info = chameleon_dealloc_handle_tile_c(desc)
+   end subroutine chameleon_dealloc_handle_tile
 
-   subroutine morse_sequence_create(sequence,info)
+   subroutine chameleon_sequence_create(sequence,info)
       use iso_c_binding
       implicit none
       type(c_ptr), intent(out) :: sequence
       integer(kind=c_int), intent(out) :: info
-      info = morse_sequence_create_c(sequence)
-   end subroutine morse_sequence_create
+      info = chameleon_sequence_create_c(sequence)
+   end subroutine chameleon_sequence_create
 
-   subroutine morse_sequence_destroy(sequence,info)
+   subroutine chameleon_sequence_destroy(sequence,info)
       use iso_c_binding
       implicit none
       type(c_ptr), intent(in) :: sequence
       integer(kind=c_int), intent(out) :: info
-      info = morse_sequence_destroy_c(sequence)
-   end subroutine morse_sequence_destroy
+      info = chameleon_sequence_destroy_c(sequence)
+   end subroutine chameleon_sequence_destroy
 
-   subroutine morse_sequence_wait(sequence,info)
+   subroutine chameleon_sequence_wait(sequence,info)
       use iso_c_binding
       implicit none
       type(c_ptr), intent(in) :: sequence
       integer(kind=c_int), intent(out) :: info
-      info = morse_sequence_wait_c(sequence)
-   end subroutine morse_sequence_wait
+      info = chameleon_sequence_wait_c(sequence)
+   end subroutine chameleon_sequence_wait
 
-   subroutine morse_sequence_flush(sequence,request,info)
+   subroutine chameleon_sequence_flush(sequence,request,info)
       use iso_c_binding
       implicit none
       type(c_ptr), intent(in) :: sequence, request
       integer(kind=c_int), intent(out) :: info
-      info = morse_sequence_flush_c(sequence,request)
-   end subroutine morse_sequence_flush
+      info = chameleon_sequence_flush_c(sequence,request)
+   end subroutine chameleon_sequence_flush
 
-end module morse
+end module chameleon
diff --git a/control/morse_mf77.c b/control/chameleon_mf77.c
similarity index 99%
rename from control/morse_mf77.c
rename to control/chameleon_mf77.c
index 9fa528a2ba22e51ffb28c357f54026e6def3fd33..d1dd61cde83fb10f14c1f8cd0e568000e253c616 100644
--- a/control/morse_mf77.c
+++ b/control/chameleon_mf77.c
@@ -1,6 +1,6 @@
 /**
  *
- * @file morse_mf77.c
+ * @file chameleon_mf77.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
diff --git a/control/morse_zcf90.F90 b/control/chameleon_zcf90.F90
similarity index 99%
rename from control/morse_zcf90.F90
rename to control/chameleon_zcf90.F90
index 30465a519fa8e3cc9c7cc76a340bf6bb7c4cd704..c14ac93d80504ff809c148464d5924f10a0e70d2 100644
--- a/control/morse_zcf90.F90
+++ b/control/chameleon_zcf90.F90
@@ -77,7 +77,7 @@
 ! @date 2011-12-15
 ! @precisions mixed zc -> ds
 !
-module morse_zc
+module chameleon_zc
 
       interface
          function CHAMELEON_zcgesv_c(N,NRHS,A,LDA,IPIV,B,LDB,X,LDX,ITER) &
@@ -361,4 +361,4 @@ module morse_zc
          info = CHAMELEON_zcungesv_Tile_Async_c(trans,A,T,B,X,c_loc(ITER),sequence,request)
       end subroutine CHAMELEON_zcungesv_Tile_Async
 
-end module morse_zc
+end module chameleon_zc
diff --git a/control/morse_zf77.c b/control/chameleon_zf77.c
similarity index 99%
rename from control/morse_zf77.c
rename to control/chameleon_zf77.c
index 01f05bf96b42781598d281f5b9ca8800434d992b..9464c0cd12f0925977329d33ef166a197c2c4763 100644
--- a/control/morse_zf77.c
+++ b/control/chameleon_zf77.c
@@ -1,6 +1,6 @@
 /**
  *
- * @file morse_zf77.c
+ * @file chameleon_zf77.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
@@ -26,7 +26,7 @@
  */
 #include <stdlib.h>
 #include "control/common.h"
-#include "control/morse_f77.h"
+#include "control/chameleon_f77.h"
 
 /**
  *  FORTRAN API - math functions (simple interface)
diff --git a/control/morse_zf90.F90 b/control/chameleon_zf90.F90
similarity index 99%
rename from control/morse_zf90.F90
rename to control/chameleon_zf90.F90
index edc6821ca1be65ec899a32500089a22fee0ff1bd..beb09a332b3c723b5487cca036ca5e1c65279339 100644
--- a/control/morse_zf90.F90
+++ b/control/chameleon_zf90.F90
@@ -79,7 +79,7 @@
 !
 #define PRECISION_z
 
-module morse_z
+module chameleon_z
     !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     !  FORTRAN API - math functions (simple interface)
     !
@@ -5478,4 +5478,4 @@ module morse_z
          info = CHAMELEON_zTile_to_Lapack_c(A,c_loc(Af77),LDA)
       end subroutine CHAMELEON_zTile_to_Lapack
 
-end module morse_z
+end module chameleon_z
diff --git a/control/morse_zf90_wrappers.F90 b/control/chameleon_zf90_wrappers.F90
similarity index 85%
rename from control/morse_zf90_wrappers.F90
rename to control/chameleon_zf90_wrappers.F90
index 93836bb57e225674c3d87761a818e700e54ac9ac..47681eda9296f715873dbdb7efebf0cc0084601b 100644
--- a/control/morse_zf90_wrappers.F90
+++ b/control/chameleon_zf90_wrappers.F90
@@ -111,9 +111,9 @@
 ! ZLASET CHAMELEON_zlaset
 #define PRECISION_z
 
-      subroutine morse_wrap_ZGESV(N,NRHS,A,LDA,IPIV,B,LDB,INFO)
+      subroutine chameleon_wrap_ZGESV(N,NRHS,A,LDA,IPIV,B,LDB,INFO)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: LDA
@@ -124,14 +124,14 @@
             integer, intent(out), target :: IPIV(*)
             complex(kind=wp), intent(inout), target :: A(LDA,*)
             complex(kind=wp), intent(inout), target :: B(LDB,*)
-            if (.not. morse_initialized) call morse_init(24,INFO)
+            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 morse_wrap_ZGESV
+      end subroutine chameleon_wrap_ZGESV
 
-      subroutine morse_wrap_ZGETRF(M,N,A,LDA,IPIV,INFO)
+      subroutine chameleon_wrap_ZGETRF(M,N,A,LDA,IPIV,INFO)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: LDA
@@ -140,14 +140,14 @@
             integer, intent(out) :: INFO
             integer, intent(out), target :: IPIV(*)
             complex(kind=wp), intent(inout), target :: A(LDA,*)
-            if (.not. morse_initialized) call morse_init(24,INFO)
+            if (.not. chameleon_initialized) call chameleon_init(24,INFO)
             ! write(*,*) " Calling CHAMELEON_ZGETRF"
             call CHAMELEON_ZGETRF(M,N,A,LDA,IPIV,INFO)
-      end subroutine morse_wrap_ZGETRF
+      end subroutine chameleon_wrap_ZGETRF
 
-      subroutine morse_wrap_ZGETRS(TRANS,N,NRHS,A,LDA,IPIV,B,LDB,INFO)
+      subroutine chameleon_wrap_ZGETRS(TRANS,N,NRHS,A,LDA,IPIV,B,LDB,INFO)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: LDA
@@ -169,14 +169,14 @@
             else
                local_TRANS = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,INFO)
+            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 morse_wrap_ZGETRS
+      end subroutine chameleon_wrap_ZGETRS
 
-      subroutine morse_wrap_ZHEGST(ITYPE,UPLO,N,A,LDA,B,LDB,INFO)
+      subroutine chameleon_wrap_ZHEGST(ITYPE,UPLO,N,A,LDA,B,LDB,INFO)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: ITYPE
@@ -195,14 +195,14 @@
             else
                local_UPLO = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,INFO)
+            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 morse_wrap_ZHEGST
+      end subroutine chameleon_wrap_ZHEGST
 
-      subroutine morse_wrap_ZLASWP(N,A,LDA,K1,K2,IPIV,INCX)
+      subroutine chameleon_wrap_ZLASWP(N,A,LDA,K1,K2,IPIV,INCX)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: INCX
@@ -213,14 +213,14 @@
             integer, intent(in), target :: IPIV(*)
             complex(kind=wp), intent(inout), target :: A(LDA,*)
             integer :: local_ret
-            if (.not. morse_initialized) call morse_init(24,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 morse_wrap_ZLASWP
+      end subroutine chameleon_wrap_ZLASWP
 
-      subroutine morse_wrap_ZLAUUM(UPLO,N,A,LDA,INFO)
+      subroutine chameleon_wrap_ZLAUUM(UPLO,N,A,LDA,INFO)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: LDA
@@ -236,14 +236,14 @@
             else
                local_UPLO = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,INFO)
+            if (.not. chameleon_initialized) call chameleon_init(24,INFO)
             ! write(*,*) " Calling CHAMELEON_ZLAUUM"
             call CHAMELEON_ZLAUUM(local_UPLO,N,A,LDA,INFO)
-      end subroutine morse_wrap_ZLAUUM
+      end subroutine chameleon_wrap_ZLAUUM
 
-      subroutine morse_wrap_ZPOSV(UPLO,N,NRHS,A,LDA,B,LDB,INFO)
+      subroutine chameleon_wrap_ZPOSV(UPLO,N,NRHS,A,LDA,B,LDB,INFO)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: LDA
@@ -262,14 +262,14 @@
             else
                local_UPLO = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,INFO)
+            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 morse_wrap_ZPOSV
+      end subroutine chameleon_wrap_ZPOSV
 
-      subroutine morse_wrap_ZSYSV(UPLO,N,NRHS,A,LDA,B,LDB,INFO)
+      subroutine chameleon_wrap_ZSYSV(UPLO,N,NRHS,A,LDA,B,LDB,INFO)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: LDA
@@ -288,14 +288,14 @@
             else
                local_UPLO = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,INFO)
+            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 morse_wrap_ZSYSV
+      end subroutine chameleon_wrap_ZSYSV
 
-      subroutine morse_wrap_ZPOTRF(UPLO,N,A,LDA,INFO)
+      subroutine chameleon_wrap_ZPOTRF(UPLO,N,A,LDA,INFO)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: LDA
@@ -311,14 +311,14 @@
             else
                local_UPLO = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,INFO)
+            if (.not. chameleon_initialized) call chameleon_init(24,INFO)
             ! write(*,*) " Calling CHAMELEON_ZPOTRF"
             call CHAMELEON_ZPOTRF(local_UPLO,N,A,LDA,INFO)
-      end subroutine morse_wrap_ZPOTRF
+      end subroutine chameleon_wrap_ZPOTRF
 
-      subroutine morse_wrap_ZSYTRF(UPLO,N,A,LDA,INFO)
+      subroutine chameleon_wrap_ZSYTRF(UPLO,N,A,LDA,INFO)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: LDA
@@ -334,14 +334,14 @@
             else
                local_UPLO = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,INFO)
+            if (.not. chameleon_initialized) call chameleon_init(24,INFO)
             ! write(*,*) " Calling CHAMELEON_ZSYTRF"
             call CHAMELEON_ZSYTRF(local_UPLO,N,A,LDA,INFO)
-      end subroutine morse_wrap_ZSYTRF
+      end subroutine chameleon_wrap_ZSYTRF
 
-      subroutine morse_wrap_ZPOTRI(UPLO,N,A,LDA,INFO)
+      subroutine chameleon_wrap_ZPOTRI(UPLO,N,A,LDA,INFO)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: LDA
@@ -357,14 +357,14 @@
             else
                local_UPLO = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,INFO)
+            if (.not. chameleon_initialized) call chameleon_init(24,INFO)
             ! write(*,*) " Calling CHAMELEON_ZPOTRI"
             call CHAMELEON_ZPOTRI(local_UPLO,N,A,LDA,INFO)
-      end subroutine morse_wrap_ZPOTRI
+      end subroutine chameleon_wrap_ZPOTRI
 
-      subroutine morse_wrap_ZPOTRS(UPLO,N,NRHS,A,LDA,B,LDB,INFO)
+      subroutine chameleon_wrap_ZPOTRS(UPLO,N,NRHS,A,LDA,B,LDB,INFO)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: LDA
@@ -383,14 +383,14 @@
             else
                local_UPLO = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,INFO)
+            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 morse_wrap_ZPOTRS
+      end subroutine chameleon_wrap_ZPOTRS
 
-      subroutine morse_wrap_ZSYTRS(UPLO,N,NRHS,A,LDA,B,LDB,INFO)
+      subroutine chameleon_wrap_ZSYTRS(UPLO,N,NRHS,A,LDA,B,LDB,INFO)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: LDA
@@ -409,14 +409,14 @@
             else
                local_UPLO = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,INFO)
+            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 morse_wrap_ZSYTRS
+      end subroutine chameleon_wrap_ZSYTRS
 
-      subroutine morse_wrap_ZTRTRI(UPLO,DIAG,N,A,LDA,INFO)
+      subroutine chameleon_wrap_ZTRTRI(UPLO,DIAG,N,A,LDA,INFO)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: LDA
@@ -441,14 +441,14 @@
             else
                local_DIAG = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,INFO)
+            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 morse_wrap_ZTRTRI
+      end subroutine chameleon_wrap_ZTRTRI
 
-      subroutine morse_wrap_ZGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
+      subroutine chameleon_wrap_ZGEMM(TRANSA,TRANSB,M,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: K
@@ -485,15 +485,15 @@
             else
                local_TRANSB = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,local_ret)
+            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 morse_wrap_ZGEMM
+      end subroutine chameleon_wrap_ZGEMM
 
 #if defined(PRECISION_z) || defined(PRECISION_c)
-      subroutine morse_wrap_ZHEMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
+      subroutine chameleon_wrap_ZHEMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: LDA
@@ -525,14 +525,14 @@
             else
                local_UPLO = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,local_ret)
+            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 morse_wrap_ZHEMM
+      end subroutine chameleon_wrap_ZHEMM
 
-      subroutine morse_wrap_ZHER2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
+      subroutine chameleon_wrap_ZHER2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: K
@@ -566,14 +566,14 @@
             else
                local_TRANS = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,local_ret)
+            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 morse_wrap_ZHER2K
+      end subroutine chameleon_wrap_ZHER2K
 
-      subroutine morse_wrap_ZHERK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC)
+      subroutine chameleon_wrap_ZHERK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: K
@@ -605,15 +605,15 @@
             else
                local_TRANS = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,local_ret)
+            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 morse_wrap_ZHERK
+      end subroutine chameleon_wrap_ZHERK
 #endif
 
-      subroutine morse_wrap_ZSYMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
+      subroutine chameleon_wrap_ZSYMM(SIDE,UPLO,M,N,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: LDA
@@ -645,14 +645,14 @@
             else
                local_UPLO = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,local_ret)
+            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 morse_wrap_ZSYMM
+      end subroutine chameleon_wrap_ZSYMM
 
-      subroutine morse_wrap_ZSYR2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
+      subroutine chameleon_wrap_ZSYR2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: K
@@ -686,14 +686,14 @@
             else
                local_TRANS = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,local_ret)
+            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 morse_wrap_ZSYR2K
+      end subroutine chameleon_wrap_ZSYR2K
 
-      subroutine morse_wrap_ZSYRK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC)
+      subroutine chameleon_wrap_ZSYRK(UPLO,TRANS,N,K,ALPHA,A,LDA,BETA,C,LDC)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: K
@@ -725,14 +725,14 @@
             else
                local_TRANS = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,local_ret)
+            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 morse_wrap_ZSYRK
+      end subroutine chameleon_wrap_ZSYRK
 
-      subroutine morse_wrap_ZTRMM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB)
+      subroutine chameleon_wrap_ZTRMM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: LDA
@@ -781,14 +781,14 @@
             else
                local_DIAG = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,local_ret)
+            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 morse_wrap_ZTRMM
+      end subroutine chameleon_wrap_ZTRMM
 
-      subroutine morse_wrap_ZTRSM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB)
+      subroutine chameleon_wrap_ZTRSM(SIDE,UPLO,TRANSA,DIAG,M,N,ALPHA,A,LDA,B,LDB)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: LDA
@@ -837,14 +837,14 @@
             else
                local_DIAG = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,local_ret)
+            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 morse_wrap_ZTRSM
+      end subroutine chameleon_wrap_ZTRSM
 
-      subroutine morse_wrap_ZLACPY(UPLO,M,N,A,LDA,B,LDB)
+      subroutine chameleon_wrap_ZLACPY(UPLO,M,N,A,LDA,B,LDB)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: LDA
@@ -863,14 +863,14 @@
             else
                local_UPLO = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,local_ret)
+            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 morse_wrap_ZLACPY
+      end subroutine chameleon_wrap_ZLACPY
 
-      subroutine morse_wrap_ZLASET(UPLO,M,N,ALPHA,BETA,A,LDA)
+      subroutine chameleon_wrap_ZLASET(UPLO,M,N,ALPHA,BETA,A,LDA)
             use iso_c_binding
-            use morse
+            use chameleon
             implicit none
             integer, parameter :: wp = kind(0.0d0)
             integer, intent(in) :: LDA
@@ -889,7 +889,7 @@
             else
                local_UPLO = -1
             end if
-            if (.not. morse_initialized) call morse_init(24,local_ret)
+            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 morse_wrap_ZLASET
+      end subroutine chameleon_wrap_ZLASET
diff --git a/control/morsewinthread.c b/control/chameleonwinthread.c
similarity index 93%
rename from control/morsewinthread.c
rename to control/chameleonwinthread.c
index c386686e3899621cd5acb9b2496fbb53e77a2b86..25d53b19d253abef675615505cab0f83fc3df0cf 100644
--- a/control/morsewinthread.c
+++ b/control/chameleonwinthread.c
@@ -1,6 +1,6 @@
 /**
  *
- * @file morsewinthread.c
+ * @file chameleonwinthread.c
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
@@ -17,7 +17,7 @@
  * @date 2012-09-15
  *
  */
-#include "control/morsewinthread.h"
+#include "control/chameleonwinthread.h"
 
 #include <limits.h>
 
@@ -27,8 +27,8 @@
 #include <stdio.h>
 #include <chameleon.h>
 
-CRITICAL_SECTION morsewinthread_static_initializer_check_lock;
-static int morsewinthread_initialized = 0;
+CRITICAL_SECTION chameleonwinthread_static_initializer_check_lock;
+static int chameleonwinthread_initialized = 0;
 
 CHAMELEON_DLLPORT unsigned int CHAMELEON_CDECL pthread_self_id(void) {
   return GetCurrentThreadId();
@@ -61,14 +61,14 @@ CHAMELEON_DLLPORT int CHAMELEON_CDECL pthread_mutex_init(pthread_mutex_t *mutex,
 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 ( morsewinthread_initialized == 0 ) {
-        InitializeCriticalSection( &morsewinthread_static_initializer_check_lock );
-        morsewinthread_initialized = 1;
+    if ( chameleonwinthread_initialized == 0 ) {
+        InitializeCriticalSection( &chameleonwinthread_static_initializer_check_lock );
+        chameleonwinthread_initialized = 1;
     }
-    EnterCriticalSection( &morsewinthread_static_initializer_check_lock );
+    EnterCriticalSection( &chameleonwinthread_static_initializer_check_lock );
     if ( *mutex == PTHREAD_MUTEX_INITIALIZER )
         retval = pthread_mutex_init( mutex, NULL );
-    LeaveCriticalSection( &morsewinthread_static_initializer_check_lock );
+    LeaveCriticalSection( &chameleonwinthread_static_initializer_check_lock );
     return retval;
 }
 
diff --git a/control/morsewinthread.h b/control/chameleonwinthread.h
similarity index 98%
rename from control/morsewinthread.h
rename to control/chameleonwinthread.h
index f68c5c31b2d955b3148c030e30c562d10871a911..7c0cab771e563fea2178b7b72898333b07d680b3 100644
--- a/control/morsewinthread.h
+++ b/control/chameleonwinthread.h
@@ -1,6 +1,6 @@
 /**
  *
- * @file morsewinthread.h
+ * @file chameleonwinthread.h
  *
  * @copyright 2009-2014 The University of Tennessee and The University of
  *                      Tennessee Research Foundation. All rights reserved.
diff --git a/control/common.h b/control/common.h
index 2022502b1b80f907d7b2445b332debcc309d3fb5..be9c0826b6f2f9ff45b1a44ea41668ca645f9140 100644
--- a/control/common.h
+++ b/control/common.h
@@ -76,19 +76,19 @@
 /**
  *  Global shortcuts
  */
-#define CHAMELEON_RANK        morse_rank(morse)
-#define CHAMELEON_SIZE        morse->world_size
-#define CHAMELEON_GRPSIZE     morse->group_size
-#define CHAMELEON_NB          morse->nb
-#define CHAMELEON_IB          morse->ib
-#define CHAMELEON_SCHEDULING  morse->scheduling
-#define CHAMELEON_RHBLK       morse->rhblock
-#define CHAMELEON_TRANSLATION morse->translation
-#define CHAMELEON_PARALLEL    morse->parallel_enabled
-#define CHAMELEON_PROFILING   morse->profiling_enabled
+#define CHAMELEON_RANK        chameleon_rank(chamctxt)
+#define CHAMELEON_SIZE        chamctxt->world_size
+#define CHAMELEON_GRPSIZE     chamctxt->group_size
+#define CHAMELEON_NB          chamctxt->nb
+#define CHAMELEON_IB          chamctxt->ib
+#define CHAMELEON_SCHEDULING  chamctxt->scheduling
+#define CHAMELEON_RHBLK       chamctxt->rhblock
+#define CHAMELEON_TRANSLATION chamctxt->translation
+#define CHAMELEON_PARALLEL    chamctxt->parallel_enabled
+#define CHAMELEON_PROFILING   chamctxt->profiling_enabled
 #if defined(CHAMELEON_USE_MPI)
-#define CHAMELEON_MPI_RANK    morse->my_mpi_rank
-#define CHAMELEON_MPI_SIZE    morse->mpi_comm_size
+#define CHAMELEON_MPI_RANK    chamctxt->my_mpi_rank
+#define CHAMELEON_MPI_SIZE    chamctxt->mpi_comm_size
 #endif
 
 /**
@@ -101,8 +101,8 @@
 /**
  *  Global array of LAPACK constants
  */
-extern char *morse_lapack_constants[];
-#define morse_lapack_const(morse_const) morse_lapack_constants[morse_const][0]
+extern char *chameleon_lapack_constants[];
+#define chameleon_lapack_const(chameleon_const) chameleon_lapack_constants[chameleon_const][0]
 
 #ifdef __cplusplus
 extern "C" {
@@ -114,10 +114,10 @@ extern "C" {
 #include "control/compute_z.h"
 
 /*
-void morse_pdlag2s(CHAM_context_t *morse);
-void morse_pzlag2c(CHAM_context_t *morse);
-void morse_pslag2d(CHAM_context_t *morse);
-void morse_pclag2z(CHAM_context_t *morse);
+void chameleon_pdlag2s(CHAM_context_t *chamctxt);
+void chameleon_pzlag2c(CHAM_context_t *chamctxt);
+void chameleon_pslag2d(CHAM_context_t *chamctxt);
+void chameleon_pclag2z(CHAM_context_t *chamctxt);
 */
 
 #ifdef __cplusplus
diff --git a/control/compute_z.h b/control/compute_z.h
index 631c820ce7d4d8aa4e43e29e827eb4651b0d2bf6..271dd6c4d786b4dfbe2c47f37a220d14d40d926f 100644
--- a/control/compute_z.h
+++ b/control/compute_z.h
@@ -32,19 +32,19 @@
 /**
  *  Macro for matrix conversion / Lapack interface
  */
-#define morse_zdesc_alloc_diag( descA, mb, nb, lm, ln, i, j, m, n, p, q) \
-    descA = morse_desc_init_diag(                                       \
+#define chameleon_zdesc_alloc_diag( descA, mb, nb, lm, ln, i, j, m, n, p, q) \
+    descA = chameleon_desc_init_diag(                                       \
         ChamComplexDouble, (mb), (nb), ((mb)*(nb)),                    \
         (m), (n), (i), (j), (m), (n), p, q);                            \
-    morse_desc_mat_alloc( &(descA) );                                   \
+    chameleon_desc_mat_alloc( &(descA) );                                   \
     RUNTIME_desc_create( &(descA) );
 
-#define morse_zdesc_alloc( descA, mb, nb, lm, ln, i, j, m, n, free)     \
-    descA = morse_desc_init(                                            \
+#define chameleon_zdesc_alloc( descA, mb, nb, lm, ln, i, j, m, n, free)     \
+    descA = chameleon_desc_init(                                            \
         ChamComplexDouble, (mb), (nb), ((mb)*(nb)),                    \
         (m), (n), (i), (j), (m), (n), 1, 1);                            \
-    if ( morse_desc_mat_alloc( &(descA) ) ) {                           \
-        morse_error( __func__, "morse_desc_mat_alloc() failed");        \
+    if ( chameleon_desc_mat_alloc( &(descA) ) ) {                           \
+        chameleon_error( __func__, "chameleon_desc_mat_alloc() failed");        \
         {free;};                                                        \
         return CHAMELEON_ERR_OUT_OF_RESOURCES;                              \
     }                                                                   \
@@ -53,91 +53,91 @@
 /**
  *  Declarations of internal sequential functions
  */
-int morse_zshift(CHAM_context_t *morse, int m, int n, CHAMELEON_Complex64_t *A,
+int chameleon_zshift(CHAM_context_t *chamctxt, int m, int n, CHAMELEON_Complex64_t *A,
                   int nprob, int me, int ne, int L,
                   RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
 
 /**
  *  Declarations of parallel functions (dynamic scheduling) - alphabetical order
  */
-void morse_pzbarrier_pnl2tl(CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzbarrier_row2tl(CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzbarrier_tl2pnl(CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzbarrier_tl2row(CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzgebrd_gb2bd(cham_uplo_t uplo, CHAM_desc_t *A, double *D, double *E, CHAM_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzgebrd_ge2gb(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzgelqf(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzgelqfrh(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D, int BS, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzgemm(cham_trans_t transA, cham_trans_t transB, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, CHAMELEON_Complex64_t beta, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzgeqrf(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzgeqrfrh(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D, int BS, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzgetrf_incpiv(CHAM_desc_t *A, CHAM_desc_t *L, CHAM_desc_t *D, int *IPIV, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzgetrf_nopiv(CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzgetrf_reclap(CHAM_desc_t *A, int *IPIV, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzgetrf_rectil(CHAM_desc_t *A, int *IPIV, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzhegst(int itype, cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzhemm(cham_side_t side, cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, CHAMELEON_Complex64_t beta, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzherk(cham_uplo_t uplo, cham_trans_t trans, double alpha, CHAM_desc_t *A, double beta, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzher2k(cham_uplo_t uplo, cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, double beta, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzhetrd_he2hb(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *E, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzlacpy(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzlag2c(CHAM_desc_t *A, CHAM_desc_t *SB, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzlange(cham_normtype_t norm, CHAM_desc_t *A, double *result, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzlanhe(cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A, double *result, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzlansy(cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A, double *result, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzlantr(cham_normtype_t norm, cham_uplo_t uplo, cham_diag_t diag, CHAM_desc_t *A, double *result, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzlascal(cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzlaset( cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t beta, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzlaset2(cham_uplo_t uplo, CHAMELEON_Complex64_t alpha,                          CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzlaswp(CHAM_desc_t *B, int *IPIV, int inc, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzlaswpc(CHAM_desc_t *B, int *IPIV, int inc, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzlauum(cham_uplo_t uplo, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzplghe(double bump, cham_uplo_t uplo, CHAM_desc_t *A, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
-void morse_pzplgsy(CHAMELEON_Complex64_t bump, cham_uplo_t uplo, CHAM_desc_t *A, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
-void morse_pzplrnt(CHAM_desc_t *A, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
-void morse_pzpotrf(cham_uplo_t uplo, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzpotrimm(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzshift(int, int, int, CHAMELEON_Complex64_t *, int *, int, int, int, RUNTIME_sequence_t*, RUNTIME_request_t*);
-void morse_pzsymm(cham_side_t side, cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, CHAMELEON_Complex64_t beta, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzsyrk(cham_uplo_t uplo, cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAMELEON_Complex64_t beta,  CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzsyr2k(cham_uplo_t uplo, cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, CHAMELEON_Complex64_t beta, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzsytrf(cham_uplo_t uplo, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pztile2band(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *descAB, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pztpgqrt( int L, CHAM_desc_t *V1, CHAM_desc_t *T1, CHAM_desc_t *V2, CHAM_desc_t *T2, CHAM_desc_t *Q1, CHAM_desc_t *Q2, CHAM_desc_t *D, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
-void morse_pztpqrt( int L, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
-void morse_pztradd(cham_uplo_t uplo, cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAMELEON_Complex64_t beta, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pztrmm(cham_side_t side, cham_uplo_t uplo, cham_trans_t transA, cham_diag_t diag, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pztrsm(cham_side_t side, cham_uplo_t uplo, cham_trans_t transA, cham_diag_t diag, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pztrsmpl(CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *L, int *IPIV, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pztrsmrv(cham_side_t side, cham_uplo_t uplo, cham_trans_t transA, cham_diag_t diag, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *W, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pztrtri(cham_uplo_t uplo, cham_diag_t diag, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzungbr(cham_side_t side, CHAM_desc_t *A, CHAM_desc_t *O, CHAM_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzungbrrh(cham_side_t side, CHAM_desc_t *A, CHAM_desc_t *O, CHAM_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzungqr(CHAM_desc_t *A, CHAM_desc_t *Q, CHAM_desc_t *T, CHAM_desc_t *D, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzungqrrh(CHAM_desc_t *A, CHAM_desc_t *Q, CHAM_desc_t *T, CHAM_desc_t *D,int BS, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzunglq(CHAM_desc_t *A, CHAM_desc_t *Q, CHAM_desc_t *T, CHAM_desc_t *D, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzunglqrh(CHAM_desc_t *A, CHAM_desc_t *Q, CHAM_desc_t *T, CHAM_desc_t *D, int BS, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzungtr(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *Q, CHAM_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzunmqr(cham_side_t side, cham_trans_t trans, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T, CHAM_desc_t *D, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzunmqrrh(cham_side_t side, cham_trans_t trans, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T, CHAM_desc_t *D, int BS, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzunmlq(cham_side_t side, cham_trans_t trans, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T, CHAM_desc_t *D, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzunmlqrh(cham_side_t side, cham_trans_t trans, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T, CHAM_desc_t *D, int BS, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzbuild( cham_uplo_t uplo, CHAM_desc_t *A, void *user_data, void* user_build_callback, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
-
-void morse_pzgelqf_param(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *D,
+void chameleon_pzbarrier_pnl2tl(CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzbarrier_row2tl(CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzbarrier_tl2pnl(CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzbarrier_tl2row(CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzgebrd_gb2bd(cham_uplo_t uplo, CHAM_desc_t *A, double *D, double *E, CHAM_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzgebrd_ge2gb(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzgelqf(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzgelqfrh(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D, int BS, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzgemm(cham_trans_t transA, cham_trans_t transB, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, CHAMELEON_Complex64_t beta, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzgeqrf(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzgeqrfrh(CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *D, int BS, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzgetrf_incpiv(CHAM_desc_t *A, CHAM_desc_t *L, CHAM_desc_t *D, int *IPIV, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzgetrf_nopiv(CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzgetrf_reclap(CHAM_desc_t *A, int *IPIV, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzgetrf_rectil(CHAM_desc_t *A, int *IPIV, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzhegst(int itype, cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzhemm(cham_side_t side, cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, CHAMELEON_Complex64_t beta, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzherk(cham_uplo_t uplo, cham_trans_t trans, double alpha, CHAM_desc_t *A, double beta, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzher2k(cham_uplo_t uplo, cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, double beta, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzhetrd_he2hb(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *T, CHAM_desc_t *E, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzlacpy(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzlag2c(CHAM_desc_t *A, CHAM_desc_t *SB, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzlange(cham_normtype_t norm, CHAM_desc_t *A, double *result, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzlanhe(cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A, double *result, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzlansy(cham_normtype_t norm, cham_uplo_t uplo, CHAM_desc_t *A, double *result, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzlantr(cham_normtype_t norm, cham_uplo_t uplo, cham_diag_t diag, CHAM_desc_t *A, double *result, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzlascal(cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzlaset( cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t beta, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzlaset2(cham_uplo_t uplo, CHAMELEON_Complex64_t alpha,                          CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzlaswp(CHAM_desc_t *B, int *IPIV, int inc, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzlaswpc(CHAM_desc_t *B, int *IPIV, int inc, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzlauum(cham_uplo_t uplo, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzplghe(double bump, cham_uplo_t uplo, CHAM_desc_t *A, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
+void chameleon_pzplgsy(CHAMELEON_Complex64_t bump, cham_uplo_t uplo, CHAM_desc_t *A, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
+void chameleon_pzplrnt(CHAM_desc_t *A, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
+void chameleon_pzpotrf(cham_uplo_t uplo, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzpotrimm(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzshift(int, int, int, CHAMELEON_Complex64_t *, int *, int, int, int, RUNTIME_sequence_t*, RUNTIME_request_t*);
+void chameleon_pzsymm(cham_side_t side, cham_uplo_t uplo, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, CHAMELEON_Complex64_t beta, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzsyrk(cham_uplo_t uplo, cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAMELEON_Complex64_t beta,  CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzsyr2k(cham_uplo_t uplo, cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, CHAMELEON_Complex64_t beta, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzsytrf(cham_uplo_t uplo, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pztile2band(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *descAB, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pztpgqrt( int L, CHAM_desc_t *V1, CHAM_desc_t *T1, CHAM_desc_t *V2, CHAM_desc_t *T2, CHAM_desc_t *Q1, CHAM_desc_t *Q2, CHAM_desc_t *D, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
+void chameleon_pztpqrt( int L, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
+void chameleon_pztradd(cham_uplo_t uplo, cham_trans_t trans, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAMELEON_Complex64_t beta, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pztrmm(cham_side_t side, cham_uplo_t uplo, cham_trans_t transA, cham_diag_t diag, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pztrsm(cham_side_t side, cham_uplo_t uplo, cham_trans_t transA, cham_diag_t diag, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *B, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pztrsmpl(CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *L, int *IPIV, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pztrsmrv(cham_side_t side, cham_uplo_t uplo, cham_trans_t transA, cham_diag_t diag, CHAMELEON_Complex64_t alpha, CHAM_desc_t *A, CHAM_desc_t *W, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pztrtri(cham_uplo_t uplo, cham_diag_t diag, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzungbr(cham_side_t side, CHAM_desc_t *A, CHAM_desc_t *O, CHAM_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzungbrrh(cham_side_t side, CHAM_desc_t *A, CHAM_desc_t *O, CHAM_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzungqr(CHAM_desc_t *A, CHAM_desc_t *Q, CHAM_desc_t *T, CHAM_desc_t *D, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzungqrrh(CHAM_desc_t *A, CHAM_desc_t *Q, CHAM_desc_t *T, CHAM_desc_t *D,int BS, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzunglq(CHAM_desc_t *A, CHAM_desc_t *Q, CHAM_desc_t *T, CHAM_desc_t *D, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzunglqrh(CHAM_desc_t *A, CHAM_desc_t *Q, CHAM_desc_t *T, CHAM_desc_t *D, int BS, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzungtr(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *Q, CHAM_desc_t *T, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzunmqr(cham_side_t side, cham_trans_t trans, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T, CHAM_desc_t *D, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzunmqrrh(cham_side_t side, cham_trans_t trans, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T, CHAM_desc_t *D, int BS, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzunmlq(cham_side_t side, cham_trans_t trans, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T, CHAM_desc_t *D, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzunmlqrh(cham_side_t side, cham_trans_t trans, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *T, CHAM_desc_t *D, int BS, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
+void chameleon_pzbuild( cham_uplo_t uplo, CHAM_desc_t *A, void *user_data, void* user_build_callback, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request );
+
+void chameleon_pzgelqf_param(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *D,
                          RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzgeqrf_param(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *D,
+void chameleon_pzgeqrf_param(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *D,
                          RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzunmlq_param(const libhqr_tree_t *qrtree, cham_side_t side, cham_trans_t trans,
+void chameleon_pzunmlq_param(const libhqr_tree_t *qrtree, cham_side_t side, cham_trans_t trans,
                          CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *D,
                          RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzunmqr_param(const libhqr_tree_t *qrtree, cham_side_t side, cham_trans_t trans,
+void chameleon_pzunmqr_param(const libhqr_tree_t *qrtree, cham_side_t side, cham_trans_t trans,
                          CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *D,
                          RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzunglq_param(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *Q,
+void chameleon_pzunglq_param(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *Q,
                          CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *D,
                          RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
-void morse_pzungqr_param(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *Q,
+void chameleon_pzungqr_param(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_t *Q,
                          CHAM_desc_t *TS, CHAM_desc_t *TT, CHAM_desc_t *D,
                          RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);
 
@@ -147,26 +147,26 @@ void morse_pzungqr_param(const libhqr_tree_t *qrtree, CHAM_desc_t *A, CHAM_desc_
  * LAPACK interface calls
  */
 static inline int
-morse_zlap2tile( CHAM_context_t *morse,
+chameleon_zlap2tile( CHAM_context_t *chamctxt,
                  CHAM_desc_t *descAl, CHAM_desc_t *descAt,
                  int mode, cham_uplo_t uplo,
                  CHAMELEON_Complex64_t *A, int mb, int nb, int lm, int ln, int m, int n,
                  RUNTIME_sequence_t *seq, RUNTIME_request_t *req )
 {
     /* Initialize the Lapack descriptor */
-    *descAl = morse_desc_init_user( ChamComplexDouble, mb, nb, (mb)*(nb),
+    *descAl = chameleon_desc_init_user( ChamComplexDouble, mb, nb, (mb)*(nb),
                                     lm, ln, 0, 0, m, n, 1, 1,
-                                    morse_getaddr_cm, morse_getblkldd_cm, NULL  );
+                                    chameleon_getaddr_cm, chameleon_getblkldd_cm, NULL  );
     descAl->mat = A;
     descAl->styp = ChamCM;
 
     /* Initialize the tile descriptor */
-    *descAt = morse_desc_init( ChamComplexDouble, mb, nb, (mb)*(nb),
+    *descAt = chameleon_desc_init( ChamComplexDouble, mb, nb, (mb)*(nb),
                                lm, ln, 0, 0, m, n, 1, 1 );
 
     if ( CHAMELEON_TRANSLATION == ChamOutOfPlace ) {
-        if ( morse_desc_mat_alloc( descAt ) ) {
-            morse_error( "morse_zlap2tile", "morse_desc_mat_alloc() failed");
+        if ( chameleon_desc_mat_alloc( descAt ) ) {
+            chameleon_error( "chameleon_zlap2tile", "chameleon_desc_mat_alloc() failed");
             return CHAMELEON_ERR_OUT_OF_RESOURCES;
         }
 
@@ -174,11 +174,11 @@ morse_zlap2tile( CHAM_context_t *morse,
         RUNTIME_desc_create( descAt );
 
         if ( mode & ChamDescInput ) {
-            morse_pzlacpy( uplo, descAl, descAt, seq, req );
+            chameleon_pzlacpy( uplo, descAl, descAt, seq, req );
         }
     }
     else {
-        morse_fatal_error( "morse_zlap2tile", "INPLACE translation not supported yet");
+        chameleon_fatal_error( "chameleon_zlap2tile", "INPLACE translation not supported yet");
         descAt->mat = A;
 
         RUNTIME_desc_create( descAl );
@@ -199,16 +199,16 @@ morse_zlap2tile( CHAM_context_t *morse,
  * in LAPACK interface calls
  */
 static inline int
-morse_ztile2lap( CHAM_context_t *morse, CHAM_desc_t *descAl, CHAM_desc_t *descAt,
+chameleon_ztile2lap( CHAM_context_t *chamctxt, CHAM_desc_t *descAl, CHAM_desc_t *descAt,
                  int mode, cham_uplo_t uplo, RUNTIME_sequence_t *seq, RUNTIME_request_t *req )
 {
     if ( CHAMELEON_TRANSLATION == ChamOutOfPlace ) {
         if ( mode & ChamDescOutput ) {
-            morse_pzlacpy( uplo, descAt, descAl, seq, req );
+            chameleon_pzlacpy( uplo, descAt, descAl, seq, req );
         }
     }
     else {
-        morse_fatal_error( "morse_ztile2lap", "INPLACE translation not supported yet");
+        chameleon_fatal_error( "chameleon_ztile2lap", "INPLACE translation not supported yet");
         if ( mode & ChamDescOutput ) {
             /* CHAMELEON_zgecfi_Async( descAl->lm, descAl->ln, descAl->mat, */
             /*                     ChamCCRB, descAl->mb, descAl->nb,   */
@@ -227,10 +227,10 @@ morse_ztile2lap( CHAM_context_t *morse, CHAM_desc_t *descAl, CHAM_desc_t *descAt
  * conversions in LAPACK interface calls
  */
 static inline void
-morse_ztile2lap_cleanup( CHAM_context_t *morse, CHAM_desc_t *descAl, CHAM_desc_t *descAt )
+chameleon_ztile2lap_cleanup( CHAM_context_t *chamctxt, CHAM_desc_t *descAl, CHAM_desc_t *descAt )
 {
     if ( CHAMELEON_TRANSLATION == ChamOutOfPlace ) {
-        morse_desc_mat_free( descAt );
+        chameleon_desc_mat_free( descAt );
     }
     RUNTIME_desc_destroy( descAl );
     RUNTIME_desc_destroy( descAt );
diff --git a/control/context.c b/control/context.c
index 4403b8c16df9feb01eba8e0d4afe772d23f4035e..9f151be9088e561d05d78e57dbc80b1e774a67a3 100644
--- a/control/context.c
+++ b/control/context.c
@@ -26,7 +26,7 @@
 
 #include <stdlib.h>
 #if defined( _WIN32 ) || defined( _WIN64 )
-#include "control/morsewinthread.h"
+#include "control/chamctxtwinthread.h"
 #else
 #include <pthread.h>
 #endif
@@ -44,70 +44,70 @@
  *  Global data
  */
 /* master threads context lookup table */
-static CHAM_context_t *morse_ctxt = NULL;
+static CHAM_context_t *chameleon_ctxt = NULL;
 
 /**
  *  Create new context
  */
-CHAM_context_t *morse_context_create()
+CHAM_context_t *chameleon_context_create()
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    if ( morse_ctxt != NULL ) {
-        morse_error("morse_context_create", "a context is already existing\n");
+    if ( chameleon_ctxt != NULL ) {
+        chameleon_error("chameleon_context_create", "a context is already existing\n");
         return NULL;
     }
 
-    morse = (CHAM_context_t*)malloc(sizeof(CHAM_context_t));
-    if (morse == NULL) {
-        morse_error("morse_context_create", "malloc() failed");
+    chamctxt = (CHAM_context_t*)malloc(sizeof(CHAM_context_t));
+    if (chamctxt == NULL) {
+        chameleon_error("chameleon_context_create", "malloc() failed");
         return NULL;
     }
 
     /* These initializations are just in case the user
        disables autotuning and does not set nb and ib */
-    morse->nb                 = 128;
-    morse->ib                 = 32;
-    morse->rhblock            = 4;
+    chamctxt->nb                 = 128;
+    chamctxt->ib                 = 32;
+    chamctxt->rhblock            = 4;
 
-    morse->nworkers           = 1;
-    morse->ncudas             = 0;
-    morse->nthreads_per_worker= 1;
+    chamctxt->nworkers           = 1;
+    chamctxt->ncudas             = 0;
+    chamctxt->nthreads_per_worker= 1;
 
-    morse->warnings_enabled     = CHAMELEON_TRUE;
-    morse->autotuning_enabled   = CHAMELEON_TRUE;
-    morse->parallel_enabled     = CHAMELEON_FALSE;
-    morse->profiling_enabled    = CHAMELEON_FALSE;
-    morse->progress_enabled     = CHAMELEON_FALSE;
+    chamctxt->warnings_enabled     = CHAMELEON_TRUE;
+    chamctxt->autotuning_enabled   = CHAMELEON_TRUE;
+    chamctxt->parallel_enabled     = CHAMELEON_FALSE;
+    chamctxt->profiling_enabled    = CHAMELEON_FALSE;
+    chamctxt->progress_enabled     = CHAMELEON_FALSE;
 
-    morse->householder        = ChamFlatHouseholder;
-    morse->translation        = ChamOutOfPlace;
+    chamctxt->householder        = ChamFlatHouseholder;
+    chamctxt->translation        = ChamOutOfPlace;
 
 
     /* Initialize scheduler */
-    RUNTIME_context_create(morse);
+    RUNTIME_context_create(chamctxt);
 
-    morse_ctxt = morse;
-    return morse;
+    chameleon_ctxt = chamctxt;
+    return chamctxt;
 }
 
 
 /**
  *  Return context for a thread
  */
-CHAM_context_t *morse_context_self()
+CHAM_context_t *chameleon_context_self()
 {
-    return morse_ctxt;
+    return chameleon_ctxt;
 }
 
 /**
  *  Clean the context
  */
-int morse_context_destroy(){
+int chameleon_context_destroy(){
 
-    RUNTIME_context_destroy(morse_ctxt);
-    free(morse_ctxt);
-    morse_ctxt = NULL;
+    RUNTIME_context_destroy(chameleon_ctxt);
+    free(chameleon_ctxt);
+    chameleon_ctxt = NULL;
 
     return CHAMELEON_SUCCESS;
 }
@@ -136,40 +136,40 @@ int morse_context_destroy(){
  */
 int CHAMELEON_Enable(int option)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_Enable", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_Enable", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     switch (option)
     {
         case CHAMELEON_WARNINGS:
-            morse->warnings_enabled = CHAMELEON_TRUE;
+            chamctxt->warnings_enabled = CHAMELEON_TRUE;
             break;
         case CHAMELEON_AUTOTUNING:
-            morse->autotuning_enabled = CHAMELEON_TRUE;
+            chamctxt->autotuning_enabled = CHAMELEON_TRUE;
             break;
         case CHAMELEON_PROFILING_MODE:
-            morse->profiling_enabled = CHAMELEON_TRUE;
+            chamctxt->profiling_enabled = CHAMELEON_TRUE;
             break;
         case CHAMELEON_PROGRESS:
-            morse->progress_enabled = CHAMELEON_TRUE;
+            chamctxt->progress_enabled = CHAMELEON_TRUE;
             break;
         case CHAMELEON_GEMM3M:
 #if defined(CBLAS_HAS_ZGEMM3M) && !defined(CHAMELEON_SIMULATION)
             set_coreblas_gemm3m_enabled(1);
 #else
-            morse_error("CHAMELEON_Enable", "cannot enable GEMM3M (not available in cblas)");
+            chameleon_error("CHAMELEON_Enable", "cannot enable GEMM3M (not available in cblas)");
 #endif
             break;
         /* case CHAMELEON_PARALLEL: */
-        /*     morse->parallel_enabled = CHAMELEON_TRUE; */
+        /*     chamctxt->parallel_enabled = CHAMELEON_TRUE; */
         /*     break; */
         default:
-            morse_error("CHAMELEON_Enable", "illegal parameter value");
+            chameleon_error("CHAMELEON_Enable", "illegal parameter value");
             return CHAMELEON_ERR_ILLEGAL_VALUE;
         case CHAMELEON_BOUND:
             break;
@@ -205,26 +205,26 @@ int CHAMELEON_Enable(int option)
  */
 int CHAMELEON_Disable(int option)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_Disable", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_Disable", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     switch ( option )
     {
         case CHAMELEON_WARNINGS:
-            morse->warnings_enabled = CHAMELEON_FALSE;
+            chamctxt->warnings_enabled = CHAMELEON_FALSE;
             break;
         case CHAMELEON_AUTOTUNING:
-            morse->autotuning_enabled = CHAMELEON_FALSE;
+            chamctxt->autotuning_enabled = CHAMELEON_FALSE;
             break;
         case CHAMELEON_PROFILING_MODE:
-            morse->profiling_enabled = CHAMELEON_FALSE;
+            chamctxt->profiling_enabled = CHAMELEON_FALSE;
             break;
         case CHAMELEON_PROGRESS:
-            morse->progress_enabled = CHAMELEON_FALSE;
+            chamctxt->progress_enabled = CHAMELEON_FALSE;
             break;
         case CHAMELEON_GEMM3M:
 #if defined(CBLAS_HAS_ZGEMM3M) && !defined(CHAMELEON_SIMULATION)
@@ -232,10 +232,10 @@ int CHAMELEON_Disable(int option)
 #endif
             break;
         case CHAMELEON_PARALLEL_MODE:
-            morse->parallel_enabled = CHAMELEON_FALSE;
+            chamctxt->parallel_enabled = CHAMELEON_FALSE;
             break;
         default:
-            morse_error("CHAMELEON_Disable", "illegal parameter value");
+            chameleon_error("CHAMELEON_Disable", "illegal parameter value");
             return CHAMELEON_ERR_ILLEGAL_VALUE;
     }
 
@@ -269,70 +269,70 @@ int CHAMELEON_Disable(int option)
  */
 int CHAMELEON_Set(int param, int value)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_Set", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_Set", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     switch (param) {
         case CHAMELEON_TILE_SIZE:
             if (value <= 0) {
-                morse_error("CHAMELEON_Set", "negative tile size");
+                chameleon_error("CHAMELEON_Set", "negative tile size");
                 return CHAMELEON_ERR_ILLEGAL_VALUE;
             }
-            morse->nb = value;
-            if ( morse->autotuning_enabled ) {
-                morse->autotuning_enabled = CHAMELEON_FALSE;
-                morse_warning("CHAMELEON_Set", "autotuning has been automatically disable\n");
+            chamctxt->nb = value;
+            if ( chamctxt->autotuning_enabled ) {
+                chamctxt->autotuning_enabled = CHAMELEON_FALSE;
+                chameleon_warning("CHAMELEON_Set", "autotuning has been automatically disable\n");
             }
             /* Limit ib to nb */
-            morse->ib = chameleon_min( morse->nb, morse->ib );
+            chamctxt->ib = chameleon_min( chamctxt->nb, chamctxt->ib );
             break;
         case CHAMELEON_INNER_BLOCK_SIZE:
             if (value <= 0) {
-                morse_error("CHAMELEON_Set", "negative inner block size");
+                chameleon_error("CHAMELEON_Set", "negative inner block size");
                 return CHAMELEON_ERR_ILLEGAL_VALUE;
             }
-            if (value > morse->nb) {
-                morse_error("CHAMELEON_Set", "inner block larger than tile");
+            if (value > chamctxt->nb) {
+                chameleon_error("CHAMELEON_Set", "inner block larger than tile");
                 return CHAMELEON_ERR_ILLEGAL_VALUE;
             }
-            /* if (morse->nb % value != 0) { */
-            /*     morse_error("CHAMELEON_Set", "inner block does not divide tile"); */
+            /* if (chamctxt->nb % value != 0) { */
+            /*     chameleon_error("CHAMELEON_Set", "inner block does not divide tile"); */
             /*     return CHAMELEON_ERR_ILLEGAL_VALUE; */
             /* } */
-            morse->ib = value;
+            chamctxt->ib = value;
 
-            if ( morse->autotuning_enabled ) {
-                morse->autotuning_enabled = CHAMELEON_FALSE;
-                morse_warning("CHAMELEON_Set", "autotuning has been automatically disable\n");
+            if ( chamctxt->autotuning_enabled ) {
+                chamctxt->autotuning_enabled = CHAMELEON_FALSE;
+                chameleon_warning("CHAMELEON_Set", "autotuning has been automatically disable\n");
             }
             break;
         case CHAMELEON_HOUSEHOLDER_MODE:
             if (value != ChamFlatHouseholder && value != ChamTreeHouseholder) {
-                morse_error("CHAMELEON_Set", "illegal value of CHAMELEON_HOUSEHOLDER_MODE");
+                chameleon_error("CHAMELEON_Set", "illegal value of CHAMELEON_HOUSEHOLDER_MODE");
                 return CHAMELEON_ERR_ILLEGAL_VALUE;
             }
-            morse->householder = value;
+            chamctxt->householder = value;
             break;
         case CHAMELEON_HOUSEHOLDER_SIZE:
             if (value <= 0) {
-                morse_error("CHAMELEON_Set", "negative householder size");
+                chameleon_error("CHAMELEON_Set", "negative householder size");
                 return CHAMELEON_ERR_ILLEGAL_VALUE;
             }
-            morse->rhblock = value;
+            chamctxt->rhblock = value;
             break;
         case CHAMELEON_TRANSLATION_MODE:
             if (value != ChamInPlace && value != ChamOutOfPlace) {
-                morse_error("CHAMELEON_Set", "illegal value of CHAMELEON_TRANSLATION_MODE");
+                chameleon_error("CHAMELEON_Set", "illegal value of CHAMELEON_TRANSLATION_MODE");
                 return CHAMELEON_ERR_ILLEGAL_VALUE;
             }
-            morse->translation = value;
+            chamctxt->translation = value;
             break;
         default:
-            morse_error("CHAMELEON_Set", "unknown parameter");
+            chameleon_error("CHAMELEON_Set", "unknown parameter");
             return CHAMELEON_ERR_ILLEGAL_VALUE;
     }
 
@@ -363,31 +363,31 @@ int CHAMELEON_Set(int param, int value)
  */
 int CHAMELEON_Get(int param, int *value)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_Get", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_Get", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     switch (param) {
         case CHAMELEON_TILE_SIZE:
-            *value = morse->nb;
+            *value = chamctxt->nb;
             return CHAMELEON_SUCCESS;
         case CHAMELEON_INNER_BLOCK_SIZE:
-            *value = morse->ib;
+            *value = chamctxt->ib;
             return CHAMELEON_SUCCESS;
         case CHAMELEON_HOUSEHOLDER_MODE:
-            *value = morse->householder;
+            *value = chamctxt->householder;
             return CHAMELEON_SUCCESS;
         case CHAMELEON_HOUSEHOLDER_SIZE:
-            *value = morse->rhblock;
+            *value = chamctxt->rhblock;
             return CHAMELEON_SUCCESS;
         case CHAMELEON_TRANSLATION_MODE:
-            *value = morse->translation;
+            *value = chamctxt->translation;
             return CHAMELEON_SUCCESS;
         default:
-            morse_error("CHAMELEON_Get", "unknown parameter");
+            chameleon_error("CHAMELEON_Get", "unknown parameter");
             return CHAMELEON_ERR_ILLEGAL_VALUE;
     }
 
diff --git a/control/context.h b/control/context.h
index 3a9637f4abc2b43898d8037f9da861425644aa2f..8c00a2f54fcbd631f5517bec77be8efd1d1eef3b 100644
--- a/control/context.h
+++ b/control/context.h
@@ -31,9 +31,9 @@
 extern "C" {
 #endif
 
-CHAM_context_t* morse_context_create  ();
-CHAM_context_t* morse_context_self    ();
-int              morse_context_destroy ();
+CHAM_context_t* chameleon_context_create  ();
+CHAM_context_t* chameleon_context_self    ();
+int              chameleon_context_destroy ();
 
 #ifdef __cplusplus
 }
diff --git a/control/control.c b/control/control.c
index 57f278b9635ed6a83e4780acdebfcedc1b4b44b9..9a356bf47ec47da318cf217db8164d8b3cf0355f 100644
--- a/control/control.c
+++ b/control/control.c
@@ -80,24 +80,24 @@ int CHAMELEON_Init(int cores, int gpus)
  */
 int CHAMELEON_InitPar(int ncpus, int ncudas, int nthreads_per_worker)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
     /* Create context and insert in the context map */
-    morse = morse_context_create();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_Init", "morse_context_create() failed");
+    chamctxt = chameleon_context_create();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_Init", "chameleon_context_create() failed");
         return CHAMELEON_ERR_OUT_OF_RESOURCES;
     }
 
 #if defined(CHAMELEON_USE_MPI)
 #  if defined(CHAMELEON_SIMULATION)
     /* Assuming that we don't initialize MPI ourself (which SMPI doesn't support anyway) */
-    morse->mpi_outer_init = 1;
+    chamctxt->mpi_outer_init = 1;
 #  else
     {
       int flag = 0, provided = 0;
       MPI_Initialized( &flag );
-      morse->mpi_outer_init = flag;
+      chamctxt->mpi_outer_init = flag;
       if ( !flag ) {
           MPI_Init_thread( NULL, NULL, MPI_THREAD_MULTIPLE, &provided );
       }
@@ -105,11 +105,11 @@ int CHAMELEON_InitPar(int ncpus, int ncudas, int nthreads_per_worker)
 #  endif
 #endif
 
-    RUNTIME_init( morse, ncpus, ncudas, nthreads_per_worker );
+    RUNTIME_init( chamctxt, ncpus, ncudas, nthreads_per_worker );
 
 #if defined(CHAMELEON_USE_MPI)
-    morse->my_mpi_rank   = RUNTIME_comm_rank( morse );
-    morse->mpi_comm_size = RUNTIME_comm_size( morse );
+    chamctxt->my_mpi_rank   = RUNTIME_comm_rank( chamctxt );
+    chamctxt->mpi_comm_size = RUNTIME_comm_size( chamctxt );
 #endif
 
     return CHAMELEON_SUCCESS;
@@ -129,23 +129,23 @@ int CHAMELEON_InitPar(int ncpus, int ncudas, int nthreads_per_worker)
  */
 int CHAMELEON_Finalize(void)
 {
-    CHAM_context_t *morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_Finalize()", "CHAMELEON not initialized");
+    CHAM_context_t *chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_Finalize()", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     RUNTIME_flush();
 #  if !defined(CHAMELEON_SIMULATION)
-    RUNTIME_barrier(morse);
+    RUNTIME_barrier(chamctxt);
 #  endif
-    RUNTIME_finalize( morse );
+    RUNTIME_finalize( chamctxt );
 
 #if defined(CHAMELEON_USE_MPI)
-    if (!morse->mpi_outer_init)
+    if (!chamctxt->mpi_outer_init)
         MPI_Finalize();
 #endif
 
-    morse_context_destroy();
+    chameleon_context_destroy();
     return CHAMELEON_SUCCESS;
 }
 
@@ -163,12 +163,12 @@ int CHAMELEON_Finalize(void)
  */
 int CHAMELEON_Pause(void)
 {
-    CHAM_context_t *morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_Pause()", "CHAMELEON not initialized");
+    CHAM_context_t *chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_Pause()", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    RUNTIME_pause(morse);
+    RUNTIME_pause(chamctxt);
     return CHAMELEON_SUCCESS;
 }
 
@@ -187,12 +187,12 @@ int CHAMELEON_Pause(void)
  */
 int CHAMELEON_Resume(void)
 {
-    CHAM_context_t *morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_Resume()", "CHAMELEON not initialized");
+    CHAM_context_t *chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_Resume()", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    RUNTIME_resume(morse);
+    RUNTIME_resume(chamctxt);
     return CHAMELEON_SUCCESS;
 }
 
@@ -210,12 +210,12 @@ int CHAMELEON_Resume(void)
  */
 int CHAMELEON_Distributed_start(void)
 {
-    CHAM_context_t *morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_Finalize()", "CHAMELEON not initialized");
+    CHAM_context_t *chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_Finalize()", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    RUNTIME_barrier (morse);
+    RUNTIME_barrier (chamctxt);
     return CHAMELEON_SUCCESS;
 }
 
@@ -233,12 +233,12 @@ int CHAMELEON_Distributed_start(void)
  */
 int CHAMELEON_Distributed_stop(void)
 {
-    CHAM_context_t *morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_Finalize()", "CHAMELEON not initialized");
+    CHAM_context_t *chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_Finalize()", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
-    RUNTIME_barrier (morse);
+    RUNTIME_barrier (chamctxt);
     return CHAMELEON_SUCCESS;
 }
 
@@ -256,13 +256,13 @@ int CHAMELEON_Distributed_stop(void)
  */
 int CHAMELEON_Comm_size()
 {
-    CHAM_context_t *morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_Comm_size()", "CHAMELEON not initialized");
+    CHAM_context_t *chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_Comm_size()", "CHAMELEON not initialized");
         return -1;
     }
 
-    return RUNTIME_comm_size( morse );
+    return RUNTIME_comm_size( chamctxt );
 }
 
 /**
@@ -279,13 +279,13 @@ int CHAMELEON_Comm_size()
  */
 int CHAMELEON_Comm_rank()
 {
-    CHAM_context_t *morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_Comm_rank()", "CHAMELEON not initialized");
+    CHAM_context_t *chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_Comm_rank()", "CHAMELEON not initialized");
         return -1;
     }
 
-    return RUNTIME_comm_rank( morse );
+    return RUNTIME_comm_rank( chamctxt );
 }
 
 /**
@@ -303,11 +303,11 @@ int CHAMELEON_Comm_rank()
  */
 int CHAMELEON_GetThreadNbr( )
 {
-    CHAM_context_t *morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_GetThreadNbr()", "CHAMELEON not initialized");
+    CHAM_context_t *chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_GetThreadNbr()", "CHAMELEON not initialized");
         return -1;
     }
 
-    return RUNTIME_thread_size( morse );
+    return RUNTIME_thread_size( chamctxt );
 }
diff --git a/control/descriptor.c b/control/descriptor.c
index dce557bb8934737aebcfbbe7eadb2589c4df17ad..739d1ed9fffea521d833de91ace4c56b5383a640 100644
--- a/control/descriptor.c
+++ b/control/descriptor.c
@@ -36,7 +36,7 @@ static int nbdesc = 0;
  *
  * @ingroup Descriptor
  *
- * morse_desc_init_user - Internal function to create tiled matrix descriptor
+ * chameleon_desc_init_user - Internal function to create tiled matrix descriptor
  * with generic function for data distribution and storage format.
  *
  ******************************************************************************
@@ -96,28 +96,28 @@ static int nbdesc = 0;
  * @return  The descriptor with the matrix description parameters set.
  *
  */
-CHAM_desc_t morse_desc_init_user(cham_flttype_t dtyp, int mb, int nb, int bsiz,
+CHAM_desc_t chameleon_desc_init_user(cham_flttype_t dtyp, int mb, int nb, int bsiz,
                                   int lm, int ln, int i, int j,
                                   int m,  int n,  int p, int q,
                                   void* (*get_blkaddr)( const CHAM_desc_t*, int, int ),
                                   int   (*get_blkldd) ( const CHAM_desc_t*, int      ),
                                   int   (*get_rankof) ( const CHAM_desc_t*, int, int ))
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t desc;
 
     memset( &desc, 0, sizeof(CHAM_desc_t) );
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_Desc_Create", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_Desc_Create", "CHAMELEON not initialized");
         return desc;
     }
 
-    // If one of the function get_* is NULL, we switch back to the default, like in morse_desc_init()
-    desc.get_blkaddr = get_blkaddr ? get_blkaddr : morse_getaddr_ccrb;
-    desc.get_blkldd  = get_blkldd  ? get_blkldd  : morse_getblkldd_ccrb;
-    desc.get_rankof  = get_rankof  ? get_rankof  : morse_getrankof_2d;
+    // If one of the function get_* is NULL, we switch back to the default, like in chameleon_desc_init()
+    desc.get_blkaddr = get_blkaddr ? get_blkaddr : chameleon_getaddr_ccrb;
+    desc.get_blkldd  = get_blkldd  ? get_blkldd  : chameleon_getblkldd_ccrb;
+    desc.get_rankof  = get_rankof  ? get_rankof  : chameleon_getrankof_2d;
     // Matrix properties
     desc.dtyp = dtyp;
     // Should be given as parameter to follow get_blkaddr (unused)
@@ -144,10 +144,10 @@ CHAM_desc_t morse_desc_init_user(cham_flttype_t dtyp, int mb, int nb, int bsiz,
     desc.occurences = 0;
     desc.use_mat      = 1;
     desc.alloc_mat    = 1;
-    desc.register_mat = (morse->ncudas > 0) ? 1 : 0;
+    desc.register_mat = (chamctxt->ncudas > 0) ? 1 : 0;
     desc.ooc          = 0;
 
-    desc.myrank = RUNTIME_comm_rank( morse );
+    desc.myrank = RUNTIME_comm_rank( chamctxt );
 
     // Grid size
     desc.p = p;
@@ -194,39 +194,39 @@ CHAM_desc_t morse_desc_init_user(cham_flttype_t dtyp, int mb, int nb, int bsiz,
 /**
  *  Internal static descriptor initializer
  */
-CHAM_desc_t morse_desc_init(cham_flttype_t dtyp, int mb, int nb, int bsiz,
+CHAM_desc_t chameleon_desc_init(cham_flttype_t dtyp, int mb, int nb, int bsiz,
                              int lm, int ln, int i, int j,
                              int m,  int n,  int p, int q)
 {
-    return morse_desc_init_user(dtyp, mb, nb, bsiz, lm, ln, i, j, m, n, p, q,
-                                morse_getaddr_ccrb, morse_getblkldd_ccrb, morse_getrankof_2d);
+    return chameleon_desc_init_user(dtyp, mb, nb, bsiz, lm, ln, i, j, m, n, p, q,
+                                chameleon_getaddr_ccrb, chameleon_getblkldd_ccrb, chameleon_getrankof_2d);
 }
 
 /**
  *  Internal static descriptor initializer for a block diagonal matrix
  */
-CHAM_desc_t morse_desc_init_diag(cham_flttype_t dtyp, int mb, int nb, int bsiz,
+CHAM_desc_t chameleon_desc_init_diag(cham_flttype_t dtyp, int mb, int nb, int bsiz,
                                   int lm, int ln, int i, int j,
                                   int m,  int n,  int p, int q)
 {
-    return morse_desc_init_user(dtyp, mb, nb, bsiz, lm, ln, i, j, m, n, p, q,
-                                morse_getaddr_ccrb, morse_getblkldd_ccrb, morse_getrankof_2d_diag);
+    return chameleon_desc_init_user(dtyp, mb, nb, bsiz, lm, ln, i, j, m, n, p, q,
+                                chameleon_getaddr_ccrb, chameleon_getblkldd_ccrb, chameleon_getrankof_2d_diag);
 }
 
 /**
  *  Internal static descriptor initializer for submatrices
  */
-CHAM_desc_t* morse_desc_submatrix(CHAM_desc_t *descA, int i, int j, int m, int n)
+CHAM_desc_t* chameleon_desc_submatrix(CHAM_desc_t *descA, int i, int j, int m, int n)
 {
     CHAM_desc_t *descB = malloc(sizeof(CHAM_desc_t));
     int mb, nb;
 
     if ( (descA->i + i + m) > descA->lm ) {
-        morse_error("morse_desc_submatrix", "The number of rows (i+m) of the submatrix doesn't fit in the parent matrix");
+        chameleon_error("chameleon_desc_submatrix", "The number of rows (i+m) of the submatrix doesn't fit in the parent matrix");
         assert((descA->i + i + m) > descA->lm);
     }
     if ( (descA->j + j + n) > descA->ln ) {
-        morse_error("morse_desc_submatrix", "The number of rows (j+n) of the submatrix doesn't fit in the parent matrix");
+        chameleon_error("chameleon_desc_submatrix", "The number of rows (j+n) of the submatrix doesn't fit in the parent matrix");
         assert((descA->j + j + n) > descA->ln);
     }
 
@@ -251,45 +251,45 @@ CHAM_desc_t* morse_desc_submatrix(CHAM_desc_t *descA, int i, int j, int m, int n
 /**
  *  Check for descriptor correctness
  */
-int morse_desc_check(const CHAM_desc_t *desc)
+int chameleon_desc_check(const CHAM_desc_t *desc)
 {
     if (desc == NULL) {
-        morse_error("morse_desc_check", "NULL descriptor");
+        chameleon_error("chameleon_desc_check", "NULL descriptor");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (desc->mat == NULL && desc->use_mat == 1) {
-        morse_error("morse_desc_check", "NULL matrix pointer");
+        chameleon_error("chameleon_desc_check", "NULL matrix pointer");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if (desc->dtyp != ChamRealFloat &&
         desc->dtyp != ChamRealDouble &&
         desc->dtyp != ChamComplexFloat &&
         desc->dtyp != ChamComplexDouble  ) {
-        morse_error("morse_desc_check", "invalid matrix type");
+        chameleon_error("chameleon_desc_check", "invalid matrix type");
         return CHAMELEON_ERR_ILLEGAL_VALUE;
     }
     if (desc->mb <= 0 || desc->nb <= 0) {
-        morse_error("morse_desc_check", "negative tile dimension");
+        chameleon_error("chameleon_desc_check", "negative tile dimension");
         return CHAMELEON_ERR_ILLEGAL_VALUE;
     }
     if (desc->bsiz < desc->mb*desc->nb) {
-        morse_error("morse_desc_check", "tile memory size smaller than the product of dimensions");
+        chameleon_error("chameleon_desc_check", "tile memory size smaller than the product of dimensions");
         return CHAMELEON_ERR_ILLEGAL_VALUE;
     }
     if (desc->lm <= 0 || desc->ln <= 0) {
-        morse_error("morse_desc_check", "negative matrix dimension");
+        chameleon_error("chameleon_desc_check", "negative matrix dimension");
         return CHAMELEON_ERR_ILLEGAL_VALUE;
     }
     if ((desc->lm < desc->m) || (desc->ln < desc->n)) {
-        morse_error("morse_desc_check", "matrix dimensions larger than leading dimensions");
+        chameleon_error("chameleon_desc_check", "matrix dimensions larger than leading dimensions");
         return CHAMELEON_ERR_ILLEGAL_VALUE;
     }
     if ((desc->i > 0 && desc->i >= desc->lm) || (desc->j > 0 && desc->j >= desc->ln)) {
-        morse_error("morse_desc_check", "beginning of the matrix out of scope");
+        chameleon_error("chameleon_desc_check", "beginning of the matrix out of scope");
         return CHAMELEON_ERR_ILLEGAL_VALUE;
     }
     if (desc->i+desc->m > desc->lm || desc->j+desc->n > desc->ln) {
-        morse_error("morse_desc_check", "submatrix out of scope");
+        chameleon_error("chameleon_desc_check", "submatrix out of scope");
         return CHAMELEON_ERR_ILLEGAL_VALUE;
     }
     return CHAMELEON_SUCCESS;
@@ -298,12 +298,12 @@ int morse_desc_check(const CHAM_desc_t *desc)
 /**
  *
  */
-int morse_desc_mat_alloc( CHAM_desc_t *desc )
+int chameleon_desc_mat_alloc( CHAM_desc_t *desc )
 {
     size_t size = (size_t)(desc->llm) * (size_t)(desc->lln)
         * (size_t)CHAMELEON_Element_Size(desc->dtyp);
     if ((desc->mat = RUNTIME_malloc(size)) == NULL) {
-        morse_error("morse_desc_mat_alloc", "malloc() failed");
+        chameleon_error("chameleon_desc_mat_alloc", "malloc() failed");
         return CHAMELEON_ERR_OUT_OF_RESOURCES;
     }
 
@@ -316,7 +316,7 @@ int morse_desc_mat_alloc( CHAM_desc_t *desc )
 /**
  *
  */
-int morse_desc_mat_free( CHAM_desc_t *desc )
+int chameleon_desc_mat_free( CHAM_desc_t *desc )
 {
     if ( (desc->mat       != NULL) &&
          (desc->use_mat   == 1   ) &&
@@ -396,25 +396,25 @@ int morse_desc_mat_free( CHAM_desc_t *desc )
 int CHAMELEON_Desc_Create(CHAM_desc_t **descptr, void *mat, cham_flttype_t dtyp, int mb, int nb, int bsiz,
                       int lm, int ln, int i, int j, int m, int n, int p, int q)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t *desc;
     int status;
 
     *descptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_Desc_Create", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_Desc_Create", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Allocate memory and initialize the descriptor */
     desc = (CHAM_desc_t*)malloc(sizeof(CHAM_desc_t));
     if (desc == NULL) {
-        morse_error("CHAMELEON_Desc_Create", "malloc() failed");
+        chameleon_error("CHAMELEON_Desc_Create", "malloc() failed");
         return CHAMELEON_ERR_OUT_OF_RESOURCES;
     }
-    *desc = morse_desc_init(dtyp, mb, nb, bsiz, lm, ln, i, j, m, n, p, q);
+    *desc = chameleon_desc_init(dtyp, mb, nb, bsiz, lm, ln, i, j, m, n, p, q);
 
     if (mat == NULL) {
 
@@ -422,7 +422,7 @@ int CHAMELEON_Desc_Create(CHAM_desc_t **descptr, void *mat, cham_flttype_t dtyp,
             * (size_t)CHAMELEON_Element_Size(desc->dtyp);
 
         if ((desc->mat = RUNTIME_malloc(size)) == NULL) {
-            morse_error("CHAMELEON_Desc_Create", "malloc() failed");
+            chameleon_error("CHAMELEON_Desc_Create", "malloc() failed");
             free(desc);
             return CHAMELEON_ERR_OUT_OF_RESOURCES;
         }
@@ -441,9 +441,9 @@ int CHAMELEON_Desc_Create(CHAM_desc_t **descptr, void *mat, cham_flttype_t dtyp,
     /* Create scheduler structure like registering data */
     RUNTIME_desc_create( desc );
 
-    status = morse_desc_check( desc );
+    status = chameleon_desc_check( desc );
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_Desc_Create", "invalid descriptor");
+        chameleon_error("CHAMELEON_Desc_Create", "invalid descriptor");
         CHAMELEON_Desc_Destroy( &desc );
         return status;
     }
@@ -513,26 +513,26 @@ int CHAMELEON_Desc_Create_User(CHAM_desc_t **descptr, void *mat, cham_flttype_t
                            int   (*get_blkldd) ( const CHAM_desc_t*, int      ),
                            int   (*get_rankof) ( const CHAM_desc_t*, int, int ))
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t *desc;
     int status;
 
     *descptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_Desc_Create_User", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_Desc_Create_User", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Allocate memory and initialize the descriptor */
     desc = (CHAM_desc_t*)malloc(sizeof(CHAM_desc_t));
     if (desc == NULL) {
-        morse_error("CHAMELEON_Desc_Create_User", "malloc() failed");
+        chameleon_error("CHAMELEON_Desc_Create_User", "malloc() failed");
         return CHAMELEON_ERR_OUT_OF_RESOURCES;
     }
 
-    *desc = morse_desc_init_user(dtyp, mb, nb, bsiz, lm, ln, i, j, m, n, p, q,
+    *desc = chameleon_desc_init_user(dtyp, mb, nb, bsiz, lm, ln, i, j, m, n, p, q,
                                  get_blkaddr, get_blkldd, get_rankof);
 
     /* if the user gives a pointer to the overall data (tiles) we can use it */
@@ -549,9 +549,9 @@ int CHAMELEON_Desc_Create_User(CHAM_desc_t **descptr, void *mat, cham_flttype_t
     /* Create runtime specific structure like registering data */
     RUNTIME_desc_create( desc );
 
-    status = morse_desc_check( desc );
+    status = chameleon_desc_check( desc );
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_Desc_Create_User", "invalid descriptor");
+        chameleon_error("CHAMELEON_Desc_Create_User", "invalid descriptor");
         CHAMELEON_Desc_Destroy( &desc );
         return status;
     }
@@ -613,28 +613,28 @@ int CHAMELEON_Desc_Create_OOC_User(CHAM_desc_t **descptr, cham_flttype_t dtyp, i
     (void)lm; (void)ln; (void)i; (void)j; (void)m; (void)n; (void)p; (void)q;
     (void)get_rankof;
 
-    morse_error("CHAMELEON_Desc_Create_OOC_User", "Only StarPU supports on-demand tile allocation");
+    chameleon_error("CHAMELEON_Desc_Create_OOC_User", "Only StarPU supports on-demand tile allocation");
     return CHAMELEON_ERR_NOT_INITIALIZED;
 #else
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
     CHAM_desc_t *desc;
     int status;
 
     *descptr = NULL;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_Desc_Create_OOC_User", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_Desc_Create_OOC_User", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     /* Allocate memory and initialize the descriptor */
     desc = (CHAM_desc_t*)malloc(sizeof(CHAM_desc_t));
     if (desc == NULL) {
-        morse_error("CHAMELEON_Desc_Create_OOC_User", "malloc() failed");
+        chameleon_error("CHAMELEON_Desc_Create_OOC_User", "malloc() failed");
         return CHAMELEON_ERR_OUT_OF_RESOURCES;
     }
-    *desc = morse_desc_init_user(dtyp, mb, nb, bsiz, lm, ln, i, j, m, n, p, q,
-                                 morse_getaddr_null, NULL, get_rankof);
+    *desc = chameleon_desc_init_user(dtyp, mb, nb, bsiz, lm, ln, i, j, m, n, p, q,
+                                 chameleon_getaddr_null, NULL, get_rankof);
 
     /* memory of the matrix is completely handled by runtime */
     desc->use_mat      = 0;
@@ -647,9 +647,9 @@ int CHAMELEON_Desc_Create_OOC_User(CHAM_desc_t **descptr, cham_flttype_t dtyp, i
     /* Create scheduler structure like registering data */
     RUNTIME_desc_create( desc );
 
-    status = morse_desc_check( desc );
+    status = chameleon_desc_check( desc );
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("CHAMELEON_Desc_Create_OOC_User", "invalid descriptor");
+        chameleon_error("CHAMELEON_Desc_Create_OOC_User", "invalid descriptor");
         CHAMELEON_Desc_Destroy( &desc );
         return status;
     }
@@ -705,7 +705,7 @@ int CHAMELEON_Desc_Create_OOC(CHAM_desc_t **descptr, cham_flttype_t dtyp, int mb
 {
     return CHAMELEON_Desc_Create_OOC_User( descptr, dtyp, mb, nb, bsiz,
                                        lm, ln, i, j, m, n, p, q,
-                                       morse_getrankof_2d );
+                                       chameleon_getrankof_2d );
 }
 
 /**
@@ -728,21 +728,21 @@ int CHAMELEON_Desc_Create_OOC(CHAM_desc_t **descptr, cham_flttype_t dtyp, int mb
  */
 int CHAMELEON_Desc_Destroy(CHAM_desc_t **desc)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_error("CHAMELEON_Desc_Destroy", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_error("CHAMELEON_Desc_Destroy", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     if (*desc == NULL) {
-        morse_error("CHAMELEON_Desc_Destroy", "attempting to destroy a NULL descriptor");
+        chameleon_error("CHAMELEON_Desc_Destroy", "attempting to destroy a NULL descriptor");
         return CHAMELEON_ERR_UNALLOCATED;
     }
 
     RUNTIME_desc_destroy( *desc );
-    morse_desc_mat_free( *desc );
+    chameleon_desc_mat_free( *desc );
     free(*desc);
     *desc = NULL;
     return CHAMELEON_SUCCESS;
diff --git a/control/descriptor.h b/control/descriptor.h
index a81b2f5578a2160653cd4bc9f03c334c277497a3..ac7535e094b81c37743ab0306c2a3ddd6b2fe107 100644
--- a/control/descriptor.h
+++ b/control/descriptor.h
@@ -33,41 +33,41 @@ extern "C" {
 /**
  *  Internal routines
  */
-inline static void* morse_geteltaddr(const CHAM_desc_t *A, int m, int n, int eltsize);
-inline static void* morse_getaddr_cm    (const CHAM_desc_t *A, int m, int n);
-inline static void* morse_getaddr_ccrb  (const CHAM_desc_t *A, int m, int n);
-inline static void* morse_getaddr_null  (const CHAM_desc_t *A, int m, int n);
-inline static int   morse_getblkldd_cm  (const CHAM_desc_t *A, int m);
-inline static int   morse_getblkldd_ccrb(const CHAM_desc_t *A, int m);
+inline static void* chameleon_geteltaddr(const CHAM_desc_t *A, int m, int n, int eltsize);
+inline static void* chameleon_getaddr_cm    (const CHAM_desc_t *A, int m, int n);
+inline static void* chameleon_getaddr_ccrb  (const CHAM_desc_t *A, int m, int n);
+inline static void* chameleon_getaddr_null  (const CHAM_desc_t *A, int m, int n);
+inline static int   chameleon_getblkldd_cm  (const CHAM_desc_t *A, int m);
+inline static int   chameleon_getblkldd_ccrb(const CHAM_desc_t *A, int m);
 
 /**
  *  Data distributions
  */
-inline static int   morse_getrankof_2d(const CHAM_desc_t *desc, int m, int n);
-inline static int   morse_getrankof_2d_diag(const CHAM_desc_t *desc, int m, int n);
+inline static int   chameleon_getrankof_2d(const CHAM_desc_t *desc, int m, int n);
+inline static int   chameleon_getrankof_2d_diag(const CHAM_desc_t *desc, int m, int n);
 
-CHAM_desc_t morse_desc_init(cham_flttype_t dtyp, int mb, int nb, int bsiz,
+CHAM_desc_t chameleon_desc_init(cham_flttype_t dtyp, int mb, int nb, int bsiz,
                              int lm, int ln, int i, int j, int m, int n, int p, int q);
-CHAM_desc_t morse_desc_init_diag(cham_flttype_t dtyp, int mb, int nb, int bsiz,
+CHAM_desc_t chameleon_desc_init_diag(cham_flttype_t dtyp, int mb, int nb, int bsiz,
                                   int lm, int ln, int i, int j, int m, int n, int p, int q);
-CHAM_desc_t morse_desc_init_user(cham_flttype_t dtyp, int mb, int nb, int bsiz,
+CHAM_desc_t chameleon_desc_init_user(cham_flttype_t dtyp, int mb, int nb, int bsiz,
                                   int lm, int ln, int i, int j,
                                   int m,  int n,  int p, int q,
                                   void* (*get_blkaddr)( const CHAM_desc_t*, int, int ),
                                   int (*get_blkldd)( const CHAM_desc_t*, int ),
                                   int (*get_rankof)( const CHAM_desc_t*, int, int ));
-CHAM_desc_t* morse_desc_submatrix(CHAM_desc_t *descA, int i, int j, int m, int n);
+CHAM_desc_t* chameleon_desc_submatrix(CHAM_desc_t *descA, int i, int j, int m, int n);
 
-int morse_desc_check    (const CHAM_desc_t *desc);
-int morse_desc_mat_alloc(CHAM_desc_t *desc);
-int morse_desc_mat_free (CHAM_desc_t *desc);
+int chameleon_desc_check    (const CHAM_desc_t *desc);
+int chameleon_desc_mat_alloc(CHAM_desc_t *desc);
+int chameleon_desc_mat_free (CHAM_desc_t *desc);
 
 #define BLKLDD(A, k) A->get_blkldd( A, k )
 
 /**
  *  Internal function to return address of block (m,n) with m,n = block indices
  */
-inline static void* morse_getaddr_ccrb(const CHAM_desc_t *A, int m, int n)
+inline static void* chameleon_getaddr_ccrb(const CHAM_desc_t *A, int m, int n)
 {
     size_t mm = m + A->i / A->mb;
     size_t nn = n + A->j / A->nb;
@@ -99,7 +99,7 @@ inline static void* morse_getaddr_ccrb(const CHAM_desc_t *A, int m, int n)
 /**
  *  Internal function to return address of block (m,n) with m,n = block indices
  */
-inline static void *morse_getaddr_cm(const CHAM_desc_t *A, int m, int n)
+inline static void *chameleon_getaddr_cm(const CHAM_desc_t *A, int m, int n)
 {
     size_t mm = m + A->i / A->mb;
     size_t nn = n + A->j / A->nb;
@@ -120,7 +120,7 @@ inline static void *morse_getaddr_cm(const CHAM_desc_t *A, int m, int n)
  *  Internal function to return address of block (m,n) with m,n = block indices
  *  This version lets the runtime allocate on-demand.
  */
-inline static void *morse_getaddr_null(const CHAM_desc_t *A, int m, int n)
+inline static void *chameleon_getaddr_null(const CHAM_desc_t *A, int m, int n)
 {
     (void)A; (void)m; (void)n;
     return NULL;
@@ -129,7 +129,7 @@ inline static void *morse_getaddr_null(const CHAM_desc_t *A, int m, int n)
 /**
  *  Internal function to return address of element A(m,n) with m,n = matrix indices
  */
-inline static void* morse_geteltaddr(const CHAM_desc_t *A, int m, int n, int eltsize) // Not used anywhere ?!
+inline static void* chameleon_geteltaddr(const CHAM_desc_t *A, int m, int n, int eltsize) // Not used anywhere ?!
 {
     size_t mm = (m + A->i)/A->mb;
     size_t nn = (n + A->j)/A->nb;
@@ -159,13 +159,13 @@ inline static void* morse_geteltaddr(const CHAM_desc_t *A, int m, int n, int elt
 /**
  *  Internal function to return the leading dimension of element A(m,*) with m,n = block indices
  */
-inline static int morse_getblkldd_ccrb(const CHAM_desc_t *A, int m)
+inline static int chameleon_getblkldd_ccrb(const CHAM_desc_t *A, int m)
 {
     int mm = m + A->i / A->mb;
     return ( ((mm+1) == A->lmt) && ((A->lm % A->mb) != 0)) ? A->lm % A->mb : A->mb;
 }
 
-inline static int morse_getblkldd_cm(const CHAM_desc_t *A, int m) {
+inline static int chameleon_getblkldd_cm(const CHAM_desc_t *A, int m) {
     (void)m;
     return A->llm;
 }
@@ -174,7 +174,7 @@ inline static int morse_getblkldd_cm(const CHAM_desc_t *A, int m) {
 /**
  *  Internal function to return MPI rank of element A(m,n) with m,n = block indices
  */
-inline static int morse_getrankof_2d(const CHAM_desc_t *A, int m, int n)
+inline static int chameleon_getrankof_2d(const CHAM_desc_t *A, int m, int n)
 {
     int mm = m + A->i / A->mb;
     int nn = n + A->j / A->nb;
@@ -184,7 +184,7 @@ inline static int morse_getrankof_2d(const CHAM_desc_t *A, int m, int n)
 /**
  *  Internal function to return MPI rank of element DIAG(m,0) with m,n = block indices
  */
-inline static int morse_getrankof_2d_diag(const CHAM_desc_t *A, int m, int n)
+inline static int chameleon_getrankof_2d_diag(const CHAM_desc_t *A, int m, int n)
 {
     int mm = m + A->i / A->mb;
     assert( n == 0 );
@@ -195,7 +195,7 @@ inline static int morse_getrankof_2d_diag(const CHAM_desc_t *A, int m, int n)
 /**
  * Detect if the tile is local or not
  */
-inline static int morse_desc_islocal( const CHAM_desc_t *A, int m, int n )
+inline static int chameleon_desc_islocal( const CHAM_desc_t *A, int m, int n )
 {
 #if defined(CHAMELEON_USE_MPI)
     return (A->myrank == A->get_rankof(A, m, n));
@@ -214,32 +214,32 @@ inline static int morse_desc_islocal( const CHAM_desc_t *A, int m, int n )
  * CHAMELEON_END_ACCESS_DECLARATION
  */
 #define CHAMELEON_BEGIN_ACCESS_DECLARATION { \
-    unsigned __morse_need_submit = 0; \
+    unsigned __chameleon_need_submit = 0; \
     RUNTIME_BEGIN_ACCESS_DECLARATION
 
 #define CHAMELEON_ACCESS_R(A, Am, An) do { \
-    if (morse_desc_islocal(A, Am, An)) __morse_need_submit = 1; \
+    if (chameleon_desc_islocal(A, Am, An)) __chameleon_need_submit = 1; \
     RUNTIME_ACCESS_R(A, Am, An); \
 } while(0)
 
 #define CHAMELEON_ACCESS_W(A, Am, An) do { \
-    if (morse_desc_islocal(A, Am, An)) __morse_need_submit = 1; \
+    if (chameleon_desc_islocal(A, Am, An)) __chameleon_need_submit = 1; \
     RUNTIME_ACCESS_W(A, Am, An); \
 } while(0)
 
 #define CHAMELEON_ACCESS_RW(A, Am, An) do { \
-    if (morse_desc_islocal(A, Am, An)) __morse_need_submit = 1; \
+    if (chameleon_desc_islocal(A, Am, An)) __chameleon_need_submit = 1; \
     RUNTIME_ACCESS_RW(A, Am, An); \
 } while(0)
 
 #define CHAMELEON_RANK_CHANGED(rank) do {\
-    __morse_need_submit = 1; \
+    __chameleon_need_submit = 1; \
     RUNTIME_RANK_CHANGED(rank); \
 } while (0)
 
 #define CHAMELEON_END_ACCESS_DECLARATION \
     RUNTIME_END_ACCESS_DECLARATION; \
-    if (!__morse_need_submit) return; \
+    if (!__chameleon_need_submit) return; \
 }
 
 #ifdef __cplusplus
diff --git a/control/global.h b/control/global.h
index a09ab145a3256926cf15f2e16f7d0e1e1b6ef78b..07283e635a2fec20aa6de47823594419084b21ce 100644
--- a/control/global.h
+++ b/control/global.h
@@ -26,7 +26,7 @@
 #define _CHAMELEON_GLOBAL_H_
 
 #if defined( _WIN32 ) || defined( _WIN64 )
-#include "control/morsewinthread.h"
+#include "control/chameleonwinthread.h"
 #else
 #include <pthread.h>
 #endif
diff --git a/control/morse_f77.h b/control/morse_f77.h
deleted file mode 100644
index c83871a9ea0b2019df348e3789691797188a1463..0000000000000000000000000000000000000000
--- a/control/morse_f77.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- *
- * @file morse_f77.h
- *
- * @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,
- *                      Univ. Bordeaux. All rights reserved.
- *
- ***
- *
- * @brief Chameleon Fortran77 naming macros
- *
- * @version 1.0.0
- * @author Florent Pruvost
- * @date 2017-05-03
- *
- */
-#ifndef _CHAMELEON_F77_H_
-#define _CHAMELEON_F77_H_
-
-#include "chameleon/mangling.h"
-
-/**
- *  Determine FORTRAN names
- */
-#define CHAMELEON_FNAME(lcname, UCNAME) CHAMELEON_GLOBAL(morse_##lcname, CHAMELEON_##UCNAME)
-#define CHAMELEON_TILE_FNAME(lcname, UCNAME) CHAMELEON_GLOBAL(morse_##lcname##_tile, CHAMELEON_##UCNAME##_TILE)
-#define CHAMELEON_ASYNC_FNAME(lcname, UCNAME) CHAMELEON_GLOBAL(morse_##lcname##_tile_async, CHAMELEON_##UCNAME##_TILE_ASYNC)
-#define CHAMELEON_WS_FNAME(lcname, UCNAME) CHAMELEON_GLOBAL(morse_alloc_workspace_##lcname, CHAMELEON_ALLOC_WORKSPACE_##UCNAME)
-#define CHAMELEON_WST_FNAME(lcname, UCNAME) CHAMELEON_GLOBAL(morse_alloc_workspace_##lcname##_tile, CHAMELEON_ALLOC_WORKSPACE_##UCNAME##_TILE)
-
-#define CHAMELEON_INIT CHAMELEON_GLOBAL(morse_init, CHAMELEON_INIT)
-#define CHAMELEON_FINALIZE CHAMELEON_GLOBAL(morse_finalize, CHAMELEON_FINALIZE)
-#define CHAMELEON_ENABLE CHAMELEON_GLOBAL(morse_enable, CHAMELEON_ENABLE)
-#define CHAMELEON_DISABLE CHAMELEON_GLOBAL(morse_disable, CHAMELEON_DISABLE)
-#define CHAMELEON_SET CHAMELEON_GLOBAL(morse_set, CHAMELEON_SET)
-#define CHAMELEON_GET CHAMELEON_GLOBAL(morse_get, CHAMELEON_GET)
-#define CHAMELEON_DEALLOC_HANDLE CHAMELEON_GLOBAL(morse_dealloc_handle, CHAMELEON_DEALLOC_HANDLE)
-#define CHAMELEON_VERSION CHAMELEON_GLOBAL(morse_version, CHAMELEON_VERSION)
-#define CHAMELEON_DESC_CREATE CHAMELEON_GLOBAL(morse_desc_create, CHAMELEON_DESC_CREATE)
-#define CHAMELEON_DESC_CREATE_OOC CHAMELEON_GLOBAL(morse_desc_create_ooc, CHAMELEON_DESC_CREATE_OOC)
-#define CHAMELEON_DESC_CREATE_USER CHAMELEON_GLOBAL(morse_desc_create_user, CHAMELEON_DESC_CREATE_USER)
-#define CHAMELEON_DESC_CREATE_OOC_USER CHAMELEON_GLOBAL(morse_desc_create_ooc_user, CHAMELEON_DESC_CREATE_OOC_USER)
-#define CHAMELEON_DESC_DESTROY CHAMELEON_GLOBAL(morse_desc_destroy, CHAMELEON_DESC_DESTROY)
-#define CHAMELEON_LAPACK_TO_TILE CHAMELEON_GLOBAL(morse_lapack_to_tile, CHAMELEON_LAPACK_TO_TILE)
-#define CHAMELEON_TILE_TO_LAPACK CHAMELEON_GLOBAL(morse_tile_to_lapack, CHAMELEON_TILE_TO_LAPACK)
-
-#endif
diff --git a/control/workspace.c b/control/workspace.c
index 95b742a9668c7ae19ffd838f6724eabbb1022f82..28ffa861552114188a5814670d681842f258265e 100644
--- a/control/workspace.c
+++ b/control/workspace.c
@@ -31,23 +31,23 @@
 /**
  *
  */
-int morse_alloc_ibnb_tile(int M, int N, cham_tasktype_t func, int type, CHAM_desc_t **desc, int p, int q)
+int chameleon_alloc_ibnb_tile(int M, int N, cham_tasktype_t func, int type, CHAM_desc_t **desc, int p, int q)
 {
     int status;
     int IB, NB, MT, NT;
     int64_t lm, ln;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("morse_alloc_ibnb_tile", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("chameleon_alloc_ibnb_tile", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Tune NB & IB depending on M & N; Set IBNBSIZE */
-    status = morse_tune(func, M, N, 0);
+    status = chameleon_tune(func, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("morse_alloc_ibnb_tile", "morse_tune() failed");
+        chameleon_error("chameleon_alloc_ibnb_tile", "chameleon_tune() failed");
         return CHAMELEON_ERR_UNEXPECTED;
     }
 
@@ -58,7 +58,7 @@ int morse_alloc_ibnb_tile(int M, int N, cham_tasktype_t func, int type, CHAM_des
     NT = (N%NB==0) ? (N/NB) : (N/NB+1);
 
     /* Size is doubled for RH QR to store the reduction T */
-    if ((morse->householder == ChamTreeHouseholder) &&
+    if ((chamctxt->householder == ChamTreeHouseholder) &&
         ((func == CHAMELEON_FUNC_SGELS)  ||
          (func == CHAMELEON_FUNC_DGELS)  ||
          (func == CHAMELEON_FUNC_CGELS)  ||
@@ -75,14 +75,14 @@ int morse_alloc_ibnb_tile(int M, int N, cham_tasktype_t func, int type, CHAM_des
     /* Allocate and initialize descriptor */
     *desc = (CHAM_desc_t*)malloc(sizeof(CHAM_desc_t));
     if (*desc == NULL) {
-        morse_error("morse_alloc_ibnb_tile", "malloc() failed");
+        chameleon_error("chameleon_alloc_ibnb_tile", "malloc() failed");
         return CHAMELEON_ERR_OUT_OF_RESOURCES;
     }
-    **desc = morse_desc_init(type, IB, NB, IB*NB, lm, ln, 0, 0, lm, ln, p, q);
+    **desc = chameleon_desc_init(type, IB, NB, IB*NB, lm, ln, 0, 0, lm, ln, p, q);
 
     /* Allocate matrix */
-    if (morse_desc_mat_alloc(*desc)) {
-        morse_error("morse_alloc_ibnb_tile", "malloc() failed");
+    if (chameleon_desc_mat_alloc(*desc)) {
+        chameleon_error("chameleon_alloc_ibnb_tile", "malloc() failed");
         free(*desc);
         return CHAMELEON_ERR_OUT_OF_RESOURCES;
     }
@@ -90,9 +90,9 @@ int morse_alloc_ibnb_tile(int M, int N, cham_tasktype_t func, int type, CHAM_des
     RUNTIME_desc_create( *desc );
 
     /* Check that everything is ok */
-    status = morse_desc_check(*desc);
+    status = chameleon_desc_check(*desc);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("morse_alloc_ibnb_tile", "invalid descriptor");
+        chameleon_error("chameleon_alloc_ibnb_tile", "invalid descriptor");
         free(*desc);
         return status;
     }
@@ -103,24 +103,24 @@ int morse_alloc_ibnb_tile(int M, int N, cham_tasktype_t func, int type, CHAM_des
 /**
  *
  */
-int morse_alloc_ipiv(int M, int N, cham_tasktype_t func, int type, CHAM_desc_t **desc, void **IPIV, int p, int q)
+int chameleon_alloc_ipiv(int M, int N, cham_tasktype_t func, int type, CHAM_desc_t **desc, void **IPIV, int p, int q)
 {
     int status;
     int NB, IB, MT, NT;
     int64_t lm, ln;
     size_t size;
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("morse_alloc_ipiv", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("chameleon_alloc_ipiv", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
 
     /* Tune NB & IB depending on M & N; Set IBNBSIZE */
-    status = morse_tune(func, M, N, 0);
+    status = chameleon_tune(func, M, N, 0);
     if (status != CHAMELEON_SUCCESS) {
-        morse_error("morse_alloc_ipiv", "morse_tune() failed");
+        chameleon_error("chameleon_alloc_ipiv", "chameleon_tune() failed");
         return CHAMELEON_ERR_UNEXPECTED;
     }
 
@@ -143,10 +143,10 @@ int morse_alloc_ipiv(int M, int N, cham_tasktype_t func, int type, CHAM_desc_t *
     *IPIV = (int*)malloc( size );
 
     *desc = (CHAM_desc_t*)malloc(sizeof(CHAM_desc_t));
-    **desc = morse_desc_init(type, IB, NB, IB*NB, lm, ln, 0, 0, lm, ln, p, q );
+    **desc = chameleon_desc_init(type, IB, NB, IB*NB, lm, ln, 0, 0, lm, ln, p, q );
 
-    if ( morse_desc_mat_alloc(*desc) ) {
-        morse_error("morse_alloc_ipiv", "malloc() failed");
+    if ( chameleon_desc_mat_alloc(*desc) ) {
+        chameleon_error("chameleon_alloc_ipiv", "malloc() failed");
         free(*desc);
         return CHAMELEON_ERR_OUT_OF_RESOURCES;
     }
@@ -176,22 +176,22 @@ int morse_alloc_ipiv(int M, int N, cham_tasktype_t func, int type, CHAM_desc_t *
  */
 int CHAMELEON_Dealloc_Workspace(CHAM_desc_t **desc)
 {
-    CHAM_context_t *morse;
+    CHAM_context_t *chamctxt;
 
-    morse = morse_context_self();
-    if (morse == NULL) {
-        morse_fatal_error("CHAMELEON_Dealloc_Workspace", "CHAMELEON not initialized");
+    chamctxt = chameleon_context_self();
+    if (chamctxt == NULL) {
+        chameleon_fatal_error("CHAMELEON_Dealloc_Workspace", "CHAMELEON not initialized");
         return CHAMELEON_ERR_NOT_INITIALIZED;
     }
     if (*desc == NULL) {
-        morse_error("CHAMELEON_Dealloc_Workspace", "attempting to deallocate a NULL descriptor");
+        chameleon_error("CHAMELEON_Dealloc_Workspace", "attempting to deallocate a NULL descriptor");
         return CHAMELEON_ERR_UNALLOCATED;
     }
     if ((*desc)->mat == NULL && (*desc)->use_mat == 1) {
-        morse_error("CHAMELEON_Dealloc_Worspace", "attempting to deallocate a NULL pointer");
+        chameleon_error("CHAMELEON_Dealloc_Worspace", "attempting to deallocate a NULL pointer");
         return CHAMELEON_ERR_UNALLOCATED;
     }
-    morse_desc_mat_free( *desc );
+    chameleon_desc_mat_free( *desc );
     RUNTIME_desc_destroy( *desc );
 
     free(*desc);
diff --git a/control/workspace.h b/control/workspace.h
index 3eab106a78a13f1f371cbef34d61be67f75f7058..32a8b63583e4b69930fd06a68ac2072b22fbf454 100644
--- a/control/workspace.h
+++ b/control/workspace.h
@@ -27,8 +27,8 @@ extern "C" {
 /**
  *  Internal routines
  */
-int morse_alloc_ibnb_tile(int M, int N, cham_tasktype_t func, int type, CHAM_desc_t **desc, int p, int q);
-int morse_alloc_ipiv(int M, int N, cham_tasktype_t func, int type, CHAM_desc_t **desc, void **IPIV, int p, int q);
+int chameleon_alloc_ibnb_tile(int M, int N, cham_tasktype_t func, int type, CHAM_desc_t **desc, int p, int q);
+int chameleon_alloc_ipiv(int M, int N, cham_tasktype_t func, int type, CHAM_desc_t **desc, void **IPIV, int p, int q);
 
 #ifdef __cplusplus
 }
diff --git a/control/workspace_z.c b/control/workspace_z.c
index fd761f7a3f09a21ed2de7fc5d8c4d8ccd11494e8..3b950a8610f1d63f4d1eb20d3d9c1a2b31cd1503 100644
--- a/control/workspace_z.c
+++ b/control/workspace_z.c
@@ -50,7 +50,7 @@
  *
  */
 int CHAMELEON_Alloc_Workspace_zgeev(int N, CHAM_desc_t **descT, int p, int q) {
-    return morse_alloc_ibnb_tile(N, N, CHAMELEON_FUNC_ZGEEV, ChamComplexDouble, descT, p, q); }
+    return chameleon_alloc_ibnb_tile(N, N, CHAMELEON_FUNC_ZGEEV, ChamComplexDouble, descT, p, q); }
 
 /**
  *
@@ -75,7 +75,7 @@ int CHAMELEON_Alloc_Workspace_zgeev(int N, CHAM_desc_t **descT, int p, int q) {
  *
  */
 int CHAMELEON_Alloc_Workspace_zgehrd(int N, CHAM_desc_t **descT, int p, int q) {
-    return morse_alloc_ibnb_tile(N, N, CHAMELEON_FUNC_ZGEHRD, ChamComplexDouble, descT, p, q); }
+    return chameleon_alloc_ibnb_tile(N, N, CHAMELEON_FUNC_ZGEHRD, ChamComplexDouble, descT, p, q); }
 
 /**
  *
@@ -102,7 +102,7 @@ int CHAMELEON_Alloc_Workspace_zgehrd(int N, CHAM_desc_t **descT, int p, int q) {
  *
  */
 int CHAMELEON_Alloc_Workspace_zgebrd(int M, int N, CHAM_desc_t **descT, int p, int q) {
-    return morse_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZGEBRD, ChamComplexDouble, descT, p, q); }
+    return chameleon_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZGEBRD, ChamComplexDouble, descT, p, q); }
 
 /**
  *
@@ -130,7 +130,7 @@ int CHAMELEON_Alloc_Workspace_zgebrd(int M, int N, CHAM_desc_t **descT, int p, i
  *
  */
 int CHAMELEON_Alloc_Workspace_zgels(int M, int N, CHAM_desc_t **descT, int p, int q) {
-    return morse_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZGELS, ChamComplexDouble, descT, p, q); }
+    return chameleon_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZGELS, ChamComplexDouble, descT, p, q); }
 
 /**
  *
@@ -164,7 +164,7 @@ int CHAMELEON_Alloc_Workspace_zgels(int M, int N, CHAM_desc_t **descT, int p, in
  *
  */
 int CHAMELEON_Alloc_Workspace_zgels_Tile(int M, int N, CHAM_desc_t **descT, int p, int q) {
-    return morse_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZGELS, ChamComplexDouble, descT, p, q); }
+    return chameleon_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZGELS, ChamComplexDouble, descT, p, q); }
 
 /**
  *
@@ -198,7 +198,7 @@ int CHAMELEON_Alloc_Workspace_zgels_Tile(int M, int N, CHAM_desc_t **descT, int
  *
  */
 int CHAMELEON_Alloc_Workspace_zgeqrf(int M, int N, CHAM_desc_t **descT, int p, int q) {
-    return morse_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZGELS, ChamComplexDouble, descT, p, q); }
+    return chameleon_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZGELS, ChamComplexDouble, descT, p, q); }
 
 /**
  *
@@ -232,7 +232,7 @@ int CHAMELEON_Alloc_Workspace_zgeqrf(int M, int N, CHAM_desc_t **descT, int p, i
  *
  */
 int CHAMELEON_Alloc_Workspace_zgeqrf_Tile(int M, int N, CHAM_desc_t **descT, int p, int q) {
-    return morse_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZGELS, ChamComplexDouble, descT, p, q); }
+    return chameleon_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZGELS, ChamComplexDouble, descT, p, q); }
 
 /**
  *
@@ -266,7 +266,7 @@ int CHAMELEON_Alloc_Workspace_zgeqrf_Tile(int M, int N, CHAM_desc_t **descT, int
  *
  */
 int CHAMELEON_Alloc_Workspace_zgelqf(int M, int N, CHAM_desc_t **descT, int p, int q) {
-    return morse_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZGELS, ChamComplexDouble, descT, p, q); }
+    return chameleon_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZGELS, ChamComplexDouble, descT, p, q); }
 
 /**
  *
@@ -299,7 +299,7 @@ int CHAMELEON_Alloc_Workspace_zgelqf(int M, int N, CHAM_desc_t **descT, int p, i
  *
  */
 int CHAMELEON_Alloc_Workspace_zgelqf_Tile(int M, int N, CHAM_desc_t **descT, int p, int q) {
-    return morse_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZGELS, ChamComplexDouble, descT, p, q); }
+    return chameleon_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZGELS, ChamComplexDouble, descT, p, q); }
 
 /**
  *
@@ -329,7 +329,7 @@ int CHAMELEON_Alloc_Workspace_zgelqf_Tile(int M, int N, CHAM_desc_t **descT, int
  *
  */
 int CHAMELEON_Alloc_Workspace_zgesv_incpiv(int N, CHAM_desc_t **descL, int **IPIV, int p, int q) {
-    return morse_alloc_ipiv(N, N, CHAMELEON_FUNC_ZGESV, ChamComplexDouble, descL, (void**)IPIV, p, q); }
+    return chameleon_alloc_ipiv(N, N, CHAMELEON_FUNC_ZGESV, ChamComplexDouble, descL, (void**)IPIV, p, q); }
 
 /**
  *
@@ -360,7 +360,7 @@ int CHAMELEON_Alloc_Workspace_zgesv_incpiv(int N, CHAM_desc_t **descL, int **IPI
  */
 int CHAMELEON_Alloc_Workspace_zgesv_incpiv_Tile(int N, CHAM_desc_t **descL, int **IPIV, int p, int q)
 {
-    return morse_alloc_ipiv(N, N, CHAMELEON_FUNC_ZGESV, ChamComplexDouble, descL, (void**)IPIV, p, q);
+    return chameleon_alloc_ipiv(N, N, CHAMELEON_FUNC_ZGESV, ChamComplexDouble, descL, (void**)IPIV, p, q);
 }
 /**
  *
@@ -393,7 +393,7 @@ int CHAMELEON_Alloc_Workspace_zgesv_incpiv_Tile(int N, CHAM_desc_t **descL, int
  *
  */
 int CHAMELEON_Alloc_Workspace_zgesvd(int M, int N, CHAM_desc_t **descT, int p, int q) {
-    return morse_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZGESVD, ChamComplexDouble, descT, p, q); }
+    return chameleon_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZGESVD, ChamComplexDouble, descT, p, q); }
 
 /**
  *
@@ -432,7 +432,7 @@ int CHAMELEON_Alloc_Workspace_zgesvd(int M, int N, CHAM_desc_t **descT, int p, i
  *
  */
 int CHAMELEON_Alloc_Workspace_zgetrf_incpiv(int M, int N, CHAM_desc_t **descL, int **IPIV, int p, int q) {
-    return morse_alloc_ipiv(M, N, CHAMELEON_FUNC_ZGESV, ChamComplexDouble, descL, (void**)IPIV, p, q); }
+    return chameleon_alloc_ipiv(M, N, CHAMELEON_FUNC_ZGESV, ChamComplexDouble, descL, (void**)IPIV, p, q); }
 
 /**
  *
@@ -461,7 +461,7 @@ int CHAMELEON_Alloc_Workspace_zgetrf_incpiv(int M, int N, CHAM_desc_t **descL, i
  *
  */
 int CHAMELEON_Alloc_Workspace_zgetrf_incpiv_Tile(int N, CHAM_desc_t **descL, int **IPIV, int p, int q) {
-    return morse_alloc_ipiv(N, N, CHAMELEON_FUNC_ZGESV, ChamComplexDouble, descL, (void**)IPIV, p, q); }
+    return chameleon_alloc_ipiv(N, N, CHAMELEON_FUNC_ZGESV, ChamComplexDouble, descL, (void**)IPIV, p, q); }
 
 /**
  *
@@ -493,7 +493,7 @@ int CHAMELEON_Alloc_Workspace_zgetrf_incpiv_Tile(int N, CHAM_desc_t **descL, int
  *
  */
 int CHAMELEON_Alloc_Workspace_zheev(int M, int N, CHAM_desc_t **descT, int p, int q) {
-    return morse_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZHEEV, ChamComplexDouble, descT, p, q); }
+    return chameleon_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZHEEV, ChamComplexDouble, descT, p, q); }
 
 /**
  *
@@ -525,7 +525,7 @@ int CHAMELEON_Alloc_Workspace_zheev(int M, int N, CHAM_desc_t **descT, int p, in
  *
  */
 int CHAMELEON_Alloc_Workspace_zheevd(int M, int N, CHAM_desc_t **descT, int p, int q) {
-    return morse_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZHEEVD, ChamComplexDouble, descT, p, q); }
+    return chameleon_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZHEEVD, ChamComplexDouble, descT, p, q); }
 
 /**
  *
@@ -557,7 +557,7 @@ int CHAMELEON_Alloc_Workspace_zheevd(int M, int N, CHAM_desc_t **descT, int p, i
  *
  */
 int CHAMELEON_Alloc_Workspace_zhegv(int M, int N, CHAM_desc_t **descT, int p, int q) {
-    return morse_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZHEGV, ChamComplexDouble, descT, p, q); }
+    return chameleon_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZHEGV, ChamComplexDouble, descT, p, q); }
 
 /**
  *
@@ -589,7 +589,7 @@ int CHAMELEON_Alloc_Workspace_zhegv(int M, int N, CHAM_desc_t **descT, int p, in
  *
  */
 int CHAMELEON_Alloc_Workspace_zhegvd(int M, int N, CHAM_desc_t **descT, int p, int q) {
-    return morse_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZHEGVD, ChamComplexDouble, descT, p, q); }
+    return chameleon_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZHEGVD, ChamComplexDouble, descT, p, q); }
 
 /**
  *
@@ -621,4 +621,4 @@ int CHAMELEON_Alloc_Workspace_zhegvd(int M, int N, CHAM_desc_t **descT, int p, i
  *
  */
 int CHAMELEON_Alloc_Workspace_zhetrd(int M, int N, CHAM_desc_t **descT, int p, int q) {
-    return morse_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZHETRD, ChamComplexDouble, descT, p, q); }
+    return chameleon_alloc_ibnb_tile(M, N, CHAMELEON_FUNC_ZHETRD, ChamComplexDouble, descT, p, q); }
diff --git a/coreblas/compute/CMakeLists.txt b/coreblas/compute/CMakeLists.txt
index 19072fc23c257241ce50b20fdd997a8f52d5eb00..9e758c418cc273d7c6b95b8d61fc860d1454e60e 100644
--- a/coreblas/compute/CMakeLists.txt
+++ b/coreblas/compute/CMakeLists.txt
@@ -25,7 +25,7 @@
 #
 ###
 
-# Generate the morse sources for all possible precisions
+# Generate the chameleon sources for all possible precisions
 # ------------------------------------------------------
 
 set(COREBLAS_SRCS_GENERATED "")
diff --git a/coreblas/compute/core_zgelqt.c b/coreblas/compute/core_zgelqt.c
index 8eb252682052d2d36549c7d4c9f10e521ee8499f..3d1849b11ca8c2ee5591615bf1d22d7efab2787a 100644
--- a/coreblas/compute/core_zgelqt.c
+++ b/coreblas/compute/core_zgelqt.c
@@ -131,8 +131,8 @@ int CORE_zgelqt(int M, int N, int IB,
                             &A[LDA*i+i], LDA, &TAU[i], WORK);
 
         LAPACKE_zlarft_work(LAPACK_COL_MAJOR,
-            morse_lapack_const(ChamDirForward),
-            morse_lapack_const(ChamRowwise),
+            chameleon_lapack_const(ChamDirForward),
+            chameleon_lapack_const(ChamRowwise),
             N-i, sb,
             &A[LDA*i+i], LDA, &TAU[i],
             &T[LDT*i], LDT);
@@ -140,10 +140,10 @@ int CORE_zgelqt(int M, int N, int IB,
         if (M > i+sb) {
             LAPACKE_zlarfb_work(
                 LAPACK_COL_MAJOR,
-                morse_lapack_const(ChamRight),
-                morse_lapack_const(ChamNoTrans),
-                morse_lapack_const(ChamDirForward),
-                morse_lapack_const(ChamRowwise),
+                chameleon_lapack_const(ChamRight),
+                chameleon_lapack_const(ChamNoTrans),
+                chameleon_lapack_const(ChamDirForward),
+                chameleon_lapack_const(ChamRowwise),
                 M-i-sb, N-i, sb,
                 &A[LDA*i+i],      LDA,
                 &T[LDT*i],        LDT,
diff --git a/coreblas/compute/core_zgeqrt.c b/coreblas/compute/core_zgeqrt.c
index c73676e118db74da0264a93756d1f07934c28cbd..9bed12cef28be40cc05da7a3782782eac1728ba2 100644
--- a/coreblas/compute/core_zgeqrt.c
+++ b/coreblas/compute/core_zgeqrt.c
@@ -132,8 +132,8 @@ int CORE_zgeqrt(int M, int N, int IB,
                             &A[LDA*i+i], LDA, &TAU[i], WORK);
 
         LAPACKE_zlarft_work(LAPACK_COL_MAJOR,
-            morse_lapack_const(ChamDirForward),
-            morse_lapack_const(ChamColumnwise),
+            chameleon_lapack_const(ChamDirForward),
+            chameleon_lapack_const(ChamColumnwise),
             M-i, sb,
             &A[LDA*i+i], LDA, &TAU[i],
             &T[LDT*i], LDT);
@@ -141,10 +141,10 @@ int CORE_zgeqrt(int M, int N, int IB,
         if (N > i+sb) {
             LAPACKE_zlarfb_work(
                 LAPACK_COL_MAJOR,
-                morse_lapack_const(ChamLeft),
-                morse_lapack_const(ChamConjTrans),
-                morse_lapack_const(ChamDirForward),
-                morse_lapack_const(ChamColumnwise),
+                chameleon_lapack_const(ChamLeft),
+                chameleon_lapack_const(ChamConjTrans),
+                chameleon_lapack_const(ChamDirForward),
+                chameleon_lapack_const(ChamColumnwise),
                 M-i, N-i-sb, sb,
                 &A[LDA*i+i],      LDA,
                 &T[LDT*i],        LDT,
diff --git a/coreblas/compute/core_zgesplit.c b/coreblas/compute/core_zgesplit.c
index ad9ffdc8beb41295ea6fd5c18cc187f9a7b7e83f..b027ed23e0376a8d0ba58cf8667c24de4cd08b0b 100644
--- a/coreblas/compute/core_zgesplit.c
+++ b/coreblas/compute/core_zgesplit.c
@@ -93,11 +93,11 @@ int CORE_zgesplit(cham_side_t side, cham_diag_t diag,
     }
 
     LAPACKE_zlacpy_work(LAPACK_COL_MAJOR,
-                        morse_lapack_const(ChamUpperLower),
+                        chameleon_lapack_const(ChamUpperLower),
                         M, N, A, LDA, B, LDB);
 
     LAPACKE_zlaset_work(LAPACK_COL_MAJOR,
-                        morse_lapack_const(uplo),
+                        chameleon_lapack_const(uplo),
                         M, N, 0., 1., A, LDA);
 
     (void)diag;
diff --git a/coreblas/compute/core_zlacpy.c b/coreblas/compute/core_zlacpy.c
index 2b7439f56a90e461df5f216b0ec4ed5314b72b3e..15f0a03995421045b034093ca1fe526088e89d2b 100644
--- a/coreblas/compute/core_zlacpy.c
+++ b/coreblas/compute/core_zlacpy.c
@@ -37,7 +37,7 @@ void CORE_zlacpy(cham_uplo_t uplo, int M, int N,
 {
     LAPACKE_zlacpy_work(
         LAPACK_COL_MAJOR,
-        morse_lapack_const(uplo),
+        chameleon_lapack_const(uplo),
         M, N, A, LDA, B, LDB);
 }
 
diff --git a/coreblas/compute/core_zlange.c b/coreblas/compute/core_zlange.c
index 5a01464ab8e8a98ba08e0758360d15682cfc5cc1..6359d947ad77544478097323ba616271a96c8c5f 100644
--- a/coreblas/compute/core_zlange.c
+++ b/coreblas/compute/core_zlange.c
@@ -79,6 +79,6 @@ void CORE_zlange(cham_normtype_t norm, int M, int N,
 {
     *normA = LAPACKE_zlange_work(
         LAPACK_COL_MAJOR,
-        morse_lapack_const(norm),
+        chameleon_lapack_const(norm),
         M, N, A, LDA, work);
 }
diff --git a/coreblas/compute/core_zlanhe.c b/coreblas/compute/core_zlanhe.c
index 43c11761e5fde696e3184b6938f13b0626946770..d4cbc7fd15f6031d42da4a05a595557f5ead61d3 100644
--- a/coreblas/compute/core_zlanhe.c
+++ b/coreblas/compute/core_zlanhe.c
@@ -81,6 +81,6 @@ void CORE_zlanhe(cham_normtype_t norm, cham_uplo_t uplo, int N,
 {
     *normA = LAPACKE_zlanhe_work(
         LAPACK_COL_MAJOR,
-        morse_lapack_const(norm), morse_lapack_const(uplo),
+        chameleon_lapack_const(norm), chameleon_lapack_const(uplo),
         N, A, LDA, work);
 }
diff --git a/coreblas/compute/core_zlansy.c b/coreblas/compute/core_zlansy.c
index 19b52700488907048f9779d7a4408e3f25c81c7d..703a8c71f77eb4456cee224f8c0370357aaf4505 100644
--- a/coreblas/compute/core_zlansy.c
+++ b/coreblas/compute/core_zlansy.c
@@ -81,6 +81,6 @@ void CORE_zlansy(cham_normtype_t norm, cham_uplo_t uplo, int N,
 {
     *normA = LAPACKE_zlansy_work(
         LAPACK_COL_MAJOR,
-        morse_lapack_const(norm), morse_lapack_const(uplo),
+        chameleon_lapack_const(norm), chameleon_lapack_const(uplo),
         N, A, LDA, work);
 }
diff --git a/coreblas/compute/core_zlantr.c b/coreblas/compute/core_zlantr.c
index 4c2db1a4c00037a9ffd1f8a182b872133f3e779e..2eec1229b69066e5c3242c4ccb190b6f0967788d 100644
--- a/coreblas/compute/core_zlantr.c
+++ b/coreblas/compute/core_zlantr.c
@@ -93,9 +93,9 @@ void CORE_zlantr(cham_normtype_t norm, cham_uplo_t uplo, cham_diag_t diag,
 #if defined(LAPACKE_CORRECT_DLANTR)
     *normA = LAPACKE_zlantr_work(
         LAPACK_COL_MAJOR,
-        morse_lapack_const(norm),
-        morse_lapack_const(uplo),
-        morse_lapack_const(diag),
+        chameleon_lapack_const(norm),
+        chameleon_lapack_const(uplo),
+        chameleon_lapack_const(diag),
         M, N, A, LDA, work);
 #else
     const CHAMELEON_Complex64_t *tmpA;
diff --git a/coreblas/compute/core_zlaset.c b/coreblas/compute/core_zlaset.c
index 87cf3cb4c052243acb36ddae354bb9f3c8f841da..6c667f0d15d725cfbe0119416d31cca13e594a00 100644
--- a/coreblas/compute/core_zlaset.c
+++ b/coreblas/compute/core_zlaset.c
@@ -67,7 +67,7 @@ void CORE_zlaset(cham_uplo_t uplo, int M, int N,
 {
     LAPACKE_zlaset_work(
         LAPACK_COL_MAJOR,
-        morse_lapack_const(uplo),
+        chameleon_lapack_const(uplo),
         M, N, alpha, beta, A, LDA);
 }
 
diff --git a/coreblas/compute/core_zlaset2.c b/coreblas/compute/core_zlaset2.c
index 59b83aec54c529a02efdce34365023d7aad66c37..f07cea6fc51cfc8fa2cf8d83566df0eaca845ce2 100644
--- a/coreblas/compute/core_zlaset2.c
+++ b/coreblas/compute/core_zlaset2.c
@@ -65,19 +65,19 @@ void CORE_zlaset2(cham_uplo_t uplo, int M, int N,
     if (uplo == ChamUpper) {
         LAPACKE_zlaset_work(
             LAPACK_COL_MAJOR,
-            morse_lapack_const(uplo),
+            chameleon_lapack_const(uplo),
             M, N-1, alpha, alpha, A+LDA, LDA);
     }
     else if (uplo == ChamLower) {
         LAPACKE_zlaset_work(
             LAPACK_COL_MAJOR,
-            morse_lapack_const(uplo),
+            chameleon_lapack_const(uplo),
             M-1, N, alpha, alpha, A+1, LDA);
     }
     else {
         LAPACKE_zlaset_work(
             LAPACK_COL_MAJOR,
-            morse_lapack_const(uplo),
+            chameleon_lapack_const(uplo),
             M, N, alpha, alpha, A, LDA);
     }
 }
diff --git a/coreblas/compute/core_zlauum.c b/coreblas/compute/core_zlauum.c
index 0f9ea904ff8ad18623dfaf92fe24398d1d806ea2..59b37225c0df1f9c8fa3322ac68e652b8f7348e8 100644
--- a/coreblas/compute/core_zlauum.c
+++ b/coreblas/compute/core_zlauum.c
@@ -33,7 +33,7 @@
  */
 void CORE_zlauum(cham_uplo_t uplo, int N, CHAMELEON_Complex64_t *A, int LDA)
 {
-    LAPACKE_zlauum_work(LAPACK_COL_MAJOR, morse_lapack_const(uplo), N, A, LDA );
+    LAPACKE_zlauum_work(LAPACK_COL_MAJOR, chameleon_lapack_const(uplo), N, A, LDA );
 }
 
 
diff --git a/coreblas/compute/core_zpamm.c b/coreblas/compute/core_zpamm.c
index 1e0beec5c88282149d25017fcbb64280cc1ed340..5da5615d96af42c769345a33015a42e68eec9d5b 100644
--- a/coreblas/compute/core_zpamm.c
+++ b/coreblas/compute/core_zpamm.c
@@ -331,7 +331,7 @@ CORE_zpamm_w(cham_side_t side, cham_trans_t trans, cham_uplo_t uplo,
 
             /* W = A2_2 */
             LAPACKE_zlacpy_work(LAPACK_COL_MAJOR,
-                morse_lapack_const(ChamUpperLower),
+                chameleon_lapack_const(ChamUpperLower),
                 L, N,
                 &A2[K-L], LDA2, W, LDW);
 
@@ -397,7 +397,7 @@ CORE_zpamm_w(cham_side_t side, cham_trans_t trans, cham_uplo_t uplo,
 
                 /* W = A2_2 */
                 LAPACKE_zlacpy_work(LAPACK_COL_MAJOR,
-                    morse_lapack_const(ChamUpperLower),
+                    chameleon_lapack_const(ChamUpperLower),
                     M, L,
                     &A2[LDA2*(K-L)], LDA2, W, LDW);
 
diff --git a/coreblas/compute/core_zpotrf.c b/coreblas/compute/core_zpotrf.c
index 5503e64313d651d317cba494533f469b25fb3bc2..1e818f19523d319a6e0e775acb24f4e2ee128a63 100644
--- a/coreblas/compute/core_zpotrf.c
+++ b/coreblas/compute/core_zpotrf.c
@@ -35,7 +35,7 @@ void CORE_zpotrf(cham_uplo_t uplo, int N, CHAMELEON_Complex64_t *A, int LDA, int
 {
     *INFO = LAPACKE_zpotrf_work(
         LAPACK_COL_MAJOR,
-        morse_lapack_const(uplo),
+        chameleon_lapack_const(uplo),
         N, A, LDA );
 }
 
diff --git a/coreblas/compute/core_ztrtri.c b/coreblas/compute/core_ztrtri.c
index 9700e59534f046ddb9525226c7d778848cdc58ec..1fcdfd158b1da658523d7087cac0921b54f5d2ae 100644
--- a/coreblas/compute/core_ztrtri.c
+++ b/coreblas/compute/core_ztrtri.c
@@ -35,7 +35,7 @@ void CORE_ztrtri(cham_uplo_t uplo, cham_diag_t diag, int N, CHAMELEON_Complex64_
 {
     *info = LAPACKE_ztrtri_work(
         LAPACK_COL_MAJOR,
-        morse_lapack_const(uplo), morse_lapack_const(diag),
+        chameleon_lapack_const(uplo), chameleon_lapack_const(diag),
         N, A, LDA);
 }
 
diff --git a/coreblas/compute/core_zunmlq.c b/coreblas/compute/core_zunmlq.c
index 612e2a3822524194ed5ea52fd5d8e80d42783333..e6f3b0f0e7db41d7d820ea26bb5b3ff2392bcbb0 100644
--- a/coreblas/compute/core_zunmlq.c
+++ b/coreblas/compute/core_zunmlq.c
@@ -218,10 +218,10 @@ int CORE_zunmlq(cham_side_t side, cham_trans_t trans,
          * Apply H or H'
          */
         LAPACKE_zlarfb_work(LAPACK_COL_MAJOR,
-            morse_lapack_const(side),
-            morse_lapack_const(trans),
-            morse_lapack_const(ChamDirForward),
-            morse_lapack_const(ChamRowwise),
+            chameleon_lapack_const(side),
+            chameleon_lapack_const(trans),
+            chameleon_lapack_const(ChamDirForward),
+            chameleon_lapack_const(ChamRowwise),
             mi, ni, kb,
             &A[LDA*i+i], LDA,
             &T[LDT*i], LDT,
diff --git a/coreblas/compute/core_zunmqr.c b/coreblas/compute/core_zunmqr.c
index b5981650444981df7c47e529c8588a60b7896704..30e7ad3355ca7bfb2a82c8d1438d4a645daa6e76 100644
--- a/coreblas/compute/core_zunmqr.c
+++ b/coreblas/compute/core_zunmqr.c
@@ -212,10 +212,10 @@ int CORE_zunmqr(cham_side_t side, cham_trans_t trans,
          * Apply H or H'
          */
         LAPACKE_zlarfb_work(LAPACK_COL_MAJOR,
-            morse_lapack_const(side),
-            morse_lapack_const(trans),
-            morse_lapack_const(ChamDirForward),
-            morse_lapack_const(ChamColumnwise),
+            chameleon_lapack_const(side),
+            chameleon_lapack_const(trans),
+            chameleon_lapack_const(ChamDirForward),
+            chameleon_lapack_const(ChamColumnwise),
             mi, ni, kb,
             &A[LDA*i+i], LDA,
             &T[LDT*i], LDT,
diff --git a/coreblas/compute/global.c b/coreblas/compute/global.c
index 519d4b7a128a11ff003a02bcb2994b01dd0d0b1d..e8167a8bf6f80a42ea9e14a3ffedc17ba09632ec 100644
--- a/coreblas/compute/global.c
+++ b/coreblas/compute/global.c
@@ -32,7 +32,7 @@ get_coreblas_gemm3m_enabled(void) {
 /**
  *  LAPACK Constants
  */
-char *morse_lapack_constants[] =
+char *chameleon_lapack_constants[] =
 {
     "", "", "", "", "", "", "", "", "", "",
     "", "", "", "", "", "", "", "", "", "",
diff --git a/coreblas/include/coreblas.h b/coreblas/include/coreblas.h
index c7e79c0c753da6e849e3bc1039f3831c16f47d52..92b4bb8b245d60efdadb1ad69a3334fd4714d556 100644
--- a/coreblas/include/coreblas.h
+++ b/coreblas/include/coreblas.h
@@ -77,8 +77,8 @@ END_C_DECLS
  */
 BEGIN_C_DECLS
 
-extern char *morse_lapack_constants[];
-#define morse_lapack_const(morse_const) morse_lapack_constants[morse_const][0]
+extern char *chameleon_lapack_constants[];
+#define chameleon_lapack_const(chameleon_const) chameleon_lapack_constants[chameleon_const][0]
 
 void set_coreblas_gemm3m_enabled( int v );
 int  get_coreblas_gemm3m_enabled( void );
diff --git a/cudablas/compute/CMakeLists.txt b/cudablas/compute/CMakeLists.txt
index e192c299859b32d04a88273f3e0d09430cc1b1ff..7822fdfc8baacf6907b909f6cb6256738dc11578 100644
--- a/cudablas/compute/CMakeLists.txt
+++ b/cudablas/compute/CMakeLists.txt
@@ -23,7 +23,7 @@
 #
 ###
 
-# Generate the morse sources for all possible precisions
+# Generate the chameleon sources for all possible precisions
 # ------------------------------------------------------
 set(CUDABLAS_SRCS_GENERATED "")
 set(ZSRC
diff --git a/cudablas/compute/cuda_zgeadd.c b/cudablas/compute/cuda_zgeadd.c
index b37c2f66fbb4c8481f4e39262152a3dac61ab1be..aedd54d08c12fa4767e4df9e8f7a60178dc27695 100644
--- a/cudablas/compute/cuda_zgeadd.c
+++ b/cudablas/compute/cuda_zgeadd.c
@@ -86,7 +86,7 @@ int CUDA_zgeadd(cham_trans_t trans,
                 CUBLAS_STREAM_PARAM)
 {
     cublasZgeam(CUBLAS_HANDLE
-                morse_cublas_const(trans), morse_cublas_const(ChamNoTrans),
+                chameleon_cublas_const(trans), chameleon_cublas_const(ChamNoTrans),
                 m, n,
                 CUBLAS_VALUE(alpha), A, lda,
                 CUBLAS_VALUE(beta),  B, ldb,
diff --git a/cudablas/compute/cuda_zgemm.c b/cudablas/compute/cuda_zgemm.c
index 75f11da77e17ac893f523cc2ba5add41a94ad679..bd8ebbc9997141278d7d290af124e67aba2cb54b 100644
--- a/cudablas/compute/cuda_zgemm.c
+++ b/cudablas/compute/cuda_zgemm.c
@@ -29,7 +29,7 @@ int CUDA_zgemm(cham_trans_t transa, cham_trans_t transb,
                CUBLAS_STREAM_PARAM)
 {
     cublasZgemm(CUBLAS_HANDLE
-                morse_cublas_const(transa), morse_cublas_const(transb),
+                chameleon_cublas_const(transa), chameleon_cublas_const(transb),
                 m, n, k,
                 CUBLAS_VALUE(alpha), A, lda,
                                      B, ldb,
diff --git a/cudablas/compute/cuda_zhemm.c b/cudablas/compute/cuda_zhemm.c
index eb0691f9bb36bb60b92d6f611ece0004ff5c24cd..06a4cda74bb74cefd46c4a162983d726ccd820ec 100644
--- a/cudablas/compute/cuda_zhemm.c
+++ b/cudablas/compute/cuda_zhemm.c
@@ -29,7 +29,7 @@ int CUDA_zhemm(cham_side_t side, cham_uplo_t uplo,
                CUBLAS_STREAM_PARAM)
 {
     cublasZhemm(CUBLAS_HANDLE
-                morse_cublas_const(side), morse_cublas_const(uplo),
+                chameleon_cublas_const(side), chameleon_cublas_const(uplo),
                 m, n,
                 CUBLAS_VALUE(alpha), A, lda,
                                      B, ldb,
diff --git a/cudablas/compute/cuda_zher2k.c b/cudablas/compute/cuda_zher2k.c
index 8d9a82ee274b53cde1f110b11977d4e0a9fb43d0..ce5a09b277389667f048f2dcd47bcb876600bef2 100644
--- a/cudablas/compute/cuda_zher2k.c
+++ b/cudablas/compute/cuda_zher2k.c
@@ -29,7 +29,7 @@ int CUDA_zher2k(cham_uplo_t uplo, cham_trans_t trans,
                 CUBLAS_STREAM_PARAM)
 {
     cublasZher2k(CUBLAS_HANDLE
-                 morse_cublas_const(uplo), morse_cublas_const(trans),
+                 chameleon_cublas_const(uplo), chameleon_cublas_const(trans),
                  n, k,
                  CUBLAS_VALUE(alpha), A, lda,
                                       B, ldb,
diff --git a/cudablas/compute/cuda_zherk.c b/cudablas/compute/cuda_zherk.c
index a2e73d76d1267dcc2610341c907304319a5552ad..74cf9503e696c05b708ac1c6f13baafd7e337253 100644
--- a/cudablas/compute/cuda_zherk.c
+++ b/cudablas/compute/cuda_zherk.c
@@ -28,7 +28,7 @@ int CUDA_zherk( cham_uplo_t uplo, cham_trans_t trans,
                 CUBLAS_STREAM_PARAM)
 {
     cublasZherk( CUBLAS_HANDLE
-                 morse_cublas_const(uplo), morse_cublas_const(trans),
+                 chameleon_cublas_const(uplo), chameleon_cublas_const(trans),
                  n, k,
                  CUBLAS_VALUE(alpha), A, lda,
                  CUBLAS_VALUE(beta),  B, ldb);
diff --git a/cudablas/compute/cuda_zlarfb.c b/cudablas/compute/cuda_zlarfb.c
index 47f99a1a2264139417de8b7e1e901274c31f19f3..7cdeb41342e7e7d2d6df9f6239eba53bbccfe582 100644
--- a/cudablas/compute/cuda_zlarfb.c
+++ b/cudablas/compute/cuda_zlarfb.c
@@ -97,7 +97,7 @@ CUDA_zlarfb(cham_side_t side, cham_trans_t trans,
 
         // W = C^H V
         cublasZgemm( CUBLAS_HANDLE
-                     morse_cublas_const(ChamConjTrans), morse_cublas_const(notransV),
+                     chameleon_cublas_const(ChamConjTrans), chameleon_cublas_const(notransV),
                      N, K, M,
                      CUBLAS_SADDR(zone),  C, LDC,
                                           V, LDV,
@@ -112,7 +112,7 @@ CUDA_zlarfb(cham_side_t side, cham_trans_t trans,
 
         // C = C - V W^H = C - V T V^H C = (I - V T V^H) C = H C
         cublasZgemm( CUBLAS_HANDLE
-                     morse_cublas_const(notransV), morse_cublas_const(ChamConjTrans),
+                     chameleon_cublas_const(notransV), chameleon_cublas_const(ChamConjTrans),
                      M, N, K,
                      CUBLAS_SADDR(mzone), V,    LDV,
                                           WORK, LDWORK,
@@ -124,7 +124,7 @@ CUDA_zlarfb(cham_side_t side, cham_trans_t trans,
 
         // W = C V
         cublasZgemm( CUBLAS_HANDLE
-                     morse_cublas_const(ChamNoTrans), morse_cublas_const(notransV),
+                     chameleon_cublas_const(ChamNoTrans), chameleon_cublas_const(notransV),
                      M, K, N,
                      CUBLAS_SADDR(zone),  C, LDC,
                                           V, LDV,
@@ -139,7 +139,7 @@ CUDA_zlarfb(cham_side_t side, cham_trans_t trans,
 
         // C = C - W V^H = C - C V T V^H = C (I - V T V^H) = C H
         cublasZgemm( CUBLAS_HANDLE
-                     morse_cublas_const(ChamNoTrans), morse_cublas_const(transV),
+                     chameleon_cublas_const(ChamNoTrans), chameleon_cublas_const(transV),
                      M, N, K,
                      CUBLAS_SADDR(mzone), WORK, LDWORK,
                                           V,    LDV,
diff --git a/cudablas/compute/cuda_zparfb.c b/cudablas/compute/cuda_zparfb.c
index 648e067bdb042a8affe5e2fa7072974fd27f5e4a..d35dcbe9eccf888381e9403f0f184b3531a81c64 100644
--- a/cudablas/compute/cuda_zparfb.c
+++ b/cudablas/compute/cuda_zparfb.c
@@ -237,7 +237,7 @@ CUDA_zparfb(cham_side_t side, cham_trans_t trans,
             transA2 = storev == ChamColumnwise ? ChamNoTrans : ChamConjTrans;
 
             cublasZgemm(CUBLAS_HANDLE
-                        morse_cublas_const(transW), morse_cublas_const(ChamNoTrans),
+                        chameleon_cublas_const(transW), chameleon_cublas_const(ChamNoTrans),
                         K, N1, M2,
                         CUBLAS_SADDR(zone),
                         V     /* K*M2  */, LDV,
@@ -263,7 +263,7 @@ CUDA_zparfb(cham_side_t side, cham_trans_t trans,
 
                 /* A2 = A2 - op(V) * W  */
                 cublasZgemm(CUBLAS_HANDLE
-                            morse_cublas_const(transA2), morse_cublas_const(ChamNoTrans),
+                            chameleon_cublas_const(transA2), chameleon_cublas_const(ChamNoTrans),
                             M2, N2, K,
                             CUBLAS_SADDR(mzone), V    /* M2*K  */, LDV,
                                                  WORK /* K*N2  */, LDWORK,
@@ -272,7 +272,7 @@ CUDA_zparfb(cham_side_t side, cham_trans_t trans,
             } else {
                 /* Wc = V * op(T) */
                 cublasZgemm( CUBLAS_HANDLE
-                             morse_cublas_const(transA2), morse_cublas_const(trans),
+                             chameleon_cublas_const(transA2), chameleon_cublas_const(trans),
                              M2, K, K,
                              CUBLAS_SADDR(zone),  V, LDV,
                                                   T, LDT,
@@ -280,7 +280,7 @@ CUDA_zparfb(cham_side_t side, cham_trans_t trans,
 
                 /* A1 = A1 - opt(T) * W */
                 cublasZgemm( CUBLAS_HANDLE
-                             morse_cublas_const(trans), morse_cublas_const(ChamNoTrans),
+                             chameleon_cublas_const(trans), chameleon_cublas_const(ChamNoTrans),
                              K, N1, K,
                              CUBLAS_SADDR(mzone), T,    LDT,
                                                   WORK, LDWORK,
@@ -288,7 +288,7 @@ CUDA_zparfb(cham_side_t side, cham_trans_t trans,
 
                 /* A2 = A2 - Wc * W */
                 cublasZgemm( CUBLAS_HANDLE
-                             morse_cublas_const(ChamNoTrans), morse_cublas_const(ChamNoTrans),
+                             chameleon_cublas_const(ChamNoTrans), chameleon_cublas_const(ChamNoTrans),
                              M2, N2, K,
                              CUBLAS_SADDR(mzone), WORKC, LDWORKC,
                                                   WORK,  LDWORK,
@@ -319,7 +319,7 @@ CUDA_zparfb(cham_side_t side, cham_trans_t trans,
             transA2 = storev == ChamColumnwise ? ChamConjTrans : ChamNoTrans;
 
             cublasZgemm(CUBLAS_HANDLE
-                        morse_cublas_const(ChamNoTrans), morse_cublas_const(transW),
+                        chameleon_cublas_const(ChamNoTrans), chameleon_cublas_const(transW),
                         M1, K, N2,
                         CUBLAS_SADDR(zone), A2   /* M1*N2 */, LDA2,
                                             V    /* N2*K  */, LDV,
@@ -343,7 +343,7 @@ CUDA_zparfb(cham_side_t side, cham_trans_t trans,
 
                 /* A2 = A2 - W * op(V)  */
                 cublasZgemm(CUBLAS_HANDLE
-                            morse_cublas_const(ChamNoTrans), morse_cublas_const(transA2),
+                            chameleon_cublas_const(ChamNoTrans), chameleon_cublas_const(transA2),
                             M2, N2, K,
                             CUBLAS_SADDR(mzone), WORK /* M2*K  */, LDWORK,
                                                  V    /* K*N2  */, LDV,
@@ -352,7 +352,7 @@ CUDA_zparfb(cham_side_t side, cham_trans_t trans,
             } else {
                 /* A1 = A1 - W * opt(T) */
                 cublasZgemm( CUBLAS_HANDLE
-                             morse_cublas_const(ChamNoTrans), morse_cublas_const(trans),
+                             chameleon_cublas_const(ChamNoTrans), chameleon_cublas_const(trans),
                              M1, K, K,
                              CUBLAS_SADDR(mzone), WORK, LDWORK,
                                                   T,    LDT,
@@ -360,7 +360,7 @@ CUDA_zparfb(cham_side_t side, cham_trans_t trans,
 
                 /* Wc = op(T) * V */
                 cublasZgemm( CUBLAS_HANDLE
-                             morse_cublas_const(trans), morse_cublas_const(transA2),
+                             chameleon_cublas_const(trans), chameleon_cublas_const(transA2),
                              K, N2, K,
                              CUBLAS_SADDR(zone),  T,     LDT,
                                                   V,     LDV,
@@ -368,7 +368,7 @@ CUDA_zparfb(cham_side_t side, cham_trans_t trans,
 
                 /* A2 = A2 - W * Wc */
                 cublasZgemm( CUBLAS_HANDLE
-                             morse_cublas_const(ChamNoTrans), morse_cublas_const(ChamNoTrans),
+                             chameleon_cublas_const(ChamNoTrans), chameleon_cublas_const(ChamNoTrans),
                              M2, N2, K,
                              CUBLAS_SADDR(mzone), WORK,  LDWORK,
                                                   WORKC, LDWORKC,
diff --git a/cudablas/compute/cuda_zsymm.c b/cudablas/compute/cuda_zsymm.c
index 220390c1a43fbf26bf5abf9cc30b84fddab02344..230e3d203bd7f98709082ed379a4d8ee4872f660 100644
--- a/cudablas/compute/cuda_zsymm.c
+++ b/cudablas/compute/cuda_zsymm.c
@@ -29,7 +29,7 @@ int CUDA_zsymm(cham_side_t side, cham_uplo_t uplo,
                CUBLAS_STREAM_PARAM)
 {
     cublasZsymm(CUBLAS_HANDLE
-                morse_cublas_const(side), morse_cublas_const(uplo),
+                chameleon_cublas_const(side), chameleon_cublas_const(uplo),
                 m, n,
                 CUBLAS_VALUE(alpha), A, lda,
                                      B, ldb,
diff --git a/cudablas/compute/cuda_zsyr2k.c b/cudablas/compute/cuda_zsyr2k.c
index 27839cddf0c664da0d5011676cfbd9f5d5badfe9..25d755b85221d20ae765aa678fce6df1203ef1cd 100644
--- a/cudablas/compute/cuda_zsyr2k.c
+++ b/cudablas/compute/cuda_zsyr2k.c
@@ -30,7 +30,7 @@ int CUDA_zsyr2k(
         CUBLAS_STREAM_PARAM)
 {
     cublasZsyr2k(CUBLAS_HANDLE
-                 morse_cublas_const(uplo), morse_cublas_const(trans),
+                 chameleon_cublas_const(uplo), chameleon_cublas_const(trans),
                  n, k,
                  CUBLAS_VALUE(alpha), A, lda,
                                       B, ldb,
diff --git a/cudablas/compute/cuda_zsyrk.c b/cudablas/compute/cuda_zsyrk.c
index 0fb7e77884f51d37c167e89c803e236a3594fc99..d23629b19f9532206387aa96284b9261b3724f26 100644
--- a/cudablas/compute/cuda_zsyrk.c
+++ b/cudablas/compute/cuda_zsyrk.c
@@ -28,7 +28,7 @@ int CUDA_zsyrk(cham_uplo_t uplo, cham_trans_t trans,
                CUBLAS_STREAM_PARAM)
 {
     cublasZsyrk(CUBLAS_HANDLE
-                morse_cublas_const(uplo), morse_cublas_const(trans),
+                chameleon_cublas_const(uplo), chameleon_cublas_const(trans),
                 n, k,
                 CUBLAS_VALUE(alpha), A, lda,
                 CUBLAS_VALUE(beta),  C, ldc);
diff --git a/cudablas/compute/cuda_ztrmm.c b/cudablas/compute/cuda_ztrmm.c
index 29a082c5b4ae2682a8426a69363b35efb0c3bd23..674eafcdaa99a9d20b22851af3a2cf681d536cf1 100644
--- a/cudablas/compute/cuda_ztrmm.c
+++ b/cudablas/compute/cuda_ztrmm.c
@@ -33,8 +33,8 @@ int CUDA_ztrmm(
 
     cublasZtrmm(
         CUBLAS_HANDLE
-        morse_cublas_const(side), morse_cublas_const(uplo),
-        morse_cublas_const(transa), morse_cublas_const(diag),
+        chameleon_cublas_const(side), chameleon_cublas_const(uplo),
+        chameleon_cublas_const(transa), chameleon_cublas_const(diag),
         m, n,
         CUBLAS_VALUE(alpha), A, lda,
         B, ldb,
@@ -44,8 +44,8 @@ int CUDA_ztrmm(
 
     cublasZtrmm(
         CUBLAS_HANDLE
-        morse_cublas_const(side), morse_cublas_const(uplo),
-        morse_cublas_const(transa), morse_cublas_const(diag),
+        chameleon_cublas_const(side), chameleon_cublas_const(uplo),
+        chameleon_cublas_const(transa), chameleon_cublas_const(diag),
         m, n,
         CUBLAS_VALUE(alpha), A, lda,
                              B, ldb);
diff --git a/cudablas/compute/cuda_ztrsm.c b/cudablas/compute/cuda_ztrsm.c
index 50c3ed41009c0789fac28b62057b9d9a65044f03..5fbc88e75c023a6552059f34ee63922c6c8b4414 100644
--- a/cudablas/compute/cuda_ztrsm.c
+++ b/cudablas/compute/cuda_ztrsm.c
@@ -28,8 +28,8 @@ int CUDA_ztrsm(cham_side_t side, cham_uplo_t uplo,
                CUBLAS_STREAM_PARAM)
 {
     cublasZtrsm(CUBLAS_HANDLE
-        morse_cublas_const(side), morse_cublas_const(uplo),
-        morse_cublas_const(transa), morse_cublas_const(diag),
+        chameleon_cublas_const(side), chameleon_cublas_const(uplo),
+        chameleon_cublas_const(transa), chameleon_cublas_const(diag),
         m, n,
         CUBLAS_VALUE(alpha), A, lda,
         B, ldb);
diff --git a/cudablas/compute/cudaglobal.c b/cudablas/compute/cudaglobal.c
index 83ab2985ab2af495e78dc5d6fb3d7d58295610e8..4a0fdbac95fe4112c72872cb3a62c99da650cb6e 100644
--- a/cudablas/compute/cudaglobal.c
+++ b/cudablas/compute/cudaglobal.c
@@ -21,7 +21,7 @@
 /**
  *  LAPACK Constants
  */
-int morse_cublas_constants[] =
+int chameleon_cublas_constants[] =
 {
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
diff --git a/cudablas/include/cudablas.h b/cudablas/include/cudablas.h
index 984de4f1099516651c021bc33aac63f760acb780..8326144f324f29fce7e9480f813fd0b0ee9eb767 100644
--- a/cudablas/include/cudablas.h
+++ b/cudablas/include/cudablas.h
@@ -89,15 +89,15 @@ END_C_DECLS
  */
 BEGIN_C_DECLS
 
-extern char *morse_lapack_constants[];
-#define morse_lapack_const(morse_const) morse_lapack_constants[morse_const][0]
+extern char *chameleon_lapack_constants[];
+#define chameleon_lapack_const(chameleon_const) chameleon_lapack_constants[chameleon_const][0]
 
-extern int morse_cublas_constants[];
+extern int chameleon_cublas_constants[];
 
 #if defined(CHAMELEON_USE_CUBLAS_V2)
-#define morse_cublas_const(morse_const) morse_cublas_constants[morse_const]
+#define chameleon_cublas_const(chameleon_const) chameleon_cublas_constants[chameleon_const]
 #else
-#define morse_cublas_const(morse_const) morse_lapack_constants[morse_const][0]
+#define chameleon_cublas_const(chameleon_const) chameleon_lapack_constants[chameleon_const][0]
 #endif
 
 END_C_DECLS
diff --git a/doc/orgmode/CMakeLists.txt b/doc/orgmode/CMakeLists.txt
index e8a52e447373862514bea3c2619ddb68c1b43fe3..0d92f218a833a867a979a514f33d6f1069055729 100644
--- a/doc/orgmode/CMakeLists.txt
+++ b/doc/orgmode/CMakeLists.txt
@@ -12,7 +12,7 @@
 #     Univ. of Tennessee,
 #     King Abdullah Univesity of Science and Technology
 #     Univ. of California Berkeley,
-#     Univ. of Colorado Denver. 
+#     Univ. of Colorado Denver.
 #
 # @version 1.0.0
 #  @author Florent Pruvost
@@ -31,7 +31,7 @@ configure_file("users_guide.org.in"
                "users_guide.org"
                @ONLY)
 
-set(FIGURES 
+set(FIGURES
     tile_lu.pdf
     tile_lu.jpg
     tile_layout.pdf
@@ -39,14 +39,14 @@ set(FIGURES
     trace_qr.pdf
     trace_qr.jpg
     potri_async.png
-    morse_header.png
+    chameleon_header.png
     )
-set(FIGURES_HTML 
+set(FIGURES_HTML
     tile_lu.jpg
     tile_layout.jpg
     trace_qr.jpg
     potri_async.png
-    morse_header.png
+    chameleon_header.png
     )
 
 foreach(_fig ${FIGURES})
@@ -65,7 +65,7 @@ if(EMACS_COMPILER)
     # ----------
     add_custom_command(OUTPUT  users_guide.html
                        COMMAND ${EMACS_COMPILER}
-                       ARGS    ${CMAKE_CURRENT_BINARY_DIR}/users_guide.org 
+                       ARGS    ${CMAKE_CURRENT_BINARY_DIR}/users_guide.org
                                --batch
                                -f
                                org-html-export-to-html
@@ -75,7 +75,7 @@ if(EMACS_COMPILER)
                       )
     add_custom_command(OUTPUT  users_guide.pdf
                        COMMAND ${EMACS_COMPILER}
-                       ARGS    ${CMAKE_CURRENT_BINARY_DIR}/users_guide.org 
+                       ARGS    ${CMAKE_CURRENT_BINARY_DIR}/users_guide.org
                                --batch
                                -f
                                org-latex-export-to-pdf
diff --git a/doc/orgmode/chapters/morse_header.png b/doc/orgmode/chapters/chameleon_header.png
similarity index 100%
rename from doc/orgmode/chapters/morse_header.png
rename to doc/orgmode/chapters/chameleon_header.png
diff --git a/doc/orgmode/chapters/introduction.org b/doc/orgmode/chapters/introduction.org
index 08570c05f8614f4ca7b533a376ec6bb1f850d055..0341d5f231bfc399c9e6f3d10cba92adf8eb4b6c 100644
--- a/doc/orgmode/chapters/introduction.org
+++ b/doc/orgmode/chapters/introduction.org
@@ -2,9 +2,9 @@
 # Copyright (C) 2017 Inria
 # See the file ../users_guide.org for copying conditions.
 ** CHAMELEON project
-   #+NAME: fig:morse_header
+   #+NAME: fig:chameleon_header
    #+ATTR_HTML: :align center
-   [[file:morse_header.png]]
+   [[file:chameleon_header.png]]
 
    Chameleon is a linear algebra software created jointly by several
    research teams as part of the CHAMELEON associate team: [[http://www.icl.utk.edu/][ICL]], [[https://www.inria.fr/en/][Inria]],
diff --git a/doc/orgmode/chapters/using.org b/doc/orgmode/chapters/using.org
index bdd0fc2f824ab627a25d96005be81f834398adf4..6ab2d7c4929aead34bf1f1c70d7bf0cbc60ea14c 100644
--- a/doc/orgmode/chapters/using.org
+++ b/doc/orgmode/chapters/using.org
@@ -79,7 +79,7 @@
 # #
 # #     Chameleon provides a Fortran interface to user functions. Example:
 # #     #+begin_src
-# #     call morse_version(major, minor, patch) !or
+# #     call chameleon_version(major, minor, patch) !or
 # #     call CHAMELEON_VERSION(major, minor, patch)
 # #     #+end_src
 # #
@@ -117,7 +117,7 @@
    option ~-[-]help~ or ~-[-]h~.  This set of binaries are separated into
    three categories and can be found in three different directories:
    * *example*: contains examples of API usage and more specifically the
-     sub-directory ~lapack_to_morse/~ provides a tutorial that explains
+     sub-directory ~lapack_to_chameleon/~ provides a tutorial that explains
      how to use Chameleon functionalities starting from a full LAPACK
      code, see [[sec:tuto][Tutorial LAPACK to Chameleon]]
    * *testing*: contains testing drivers to check numerical correctness of
@@ -349,7 +349,7 @@
     to let Chameleon initialize user's data (matrices/vectors) in
     parallel.
 
-    Source files can be found in the ~example/lapack_to_morse/~
+    Source files can be found in the ~example/lapack_to_chameleon/~
     directory.  If CMake option *CHAMELEON_ENABLE_EXAMPLE* is ON then
     source files are compiled with the project libraries.  The
     arithmetic precision is /double/.  To execute a step
@@ -580,7 +580,7 @@
      #+begin_example
      /* Cham structure containing parameters and a structure to interact with
       * the Runtime system */
-     CHAM_context_t *morse;
+     CHAM_context_t *chamctxt;
      /* CHAMELEON sequence uniquely identifies a set of asynchronous function calls
       * sharing common exception handling */
      RUNTIME_sequence_t *sequence = NULL;
@@ -590,7 +590,7 @@
 
      ...
 
-     morse_sequence_create(morse, &sequence);
+     chameleon_sequence_create(chamctxt, &sequence);
 
      /* Factorization: */
      CHAMELEON_dpotrf_Tile_Async( UPLO, descA, sequence, &request );
@@ -600,7 +600,7 @@
 
      /* Synchronization barrier (the runtime ensures that all submitted tasks
       * have been terminated */
-     RUNTIME_barrier(morse);
+     RUNTIME_barrier(chamctxt);
      /* Ensure that all data processed on the gpus we are depending on are back
       * in main memory */
      RUNTIME_desc_getoncpu(descA);
@@ -701,9 +701,9 @@
                             NB, NB, NB*NB, N, N,
                             0, 0, N, N,
                             GRID_P, GRID_Q,
-                            morse_getaddr_ccrb,
-                            morse_getblkldd_ccrb,
-                            morse_getrankof_2d);
+                            chameleon_getaddr_ccrb,
+                            chameleon_getblkldd_ccrb,
+                            chameleon_getrankof_2d);
      #+end_example
      is equivalent to the following call
 
@@ -713,15 +713,15 @@
                        0, 0, N, N,
                        GRID_P, GRID_Q);
      #+end_example
-     functions *morse_getaddr_ccrb*, *morse_getblkldd_ccrb*,
-     *morse_getrankof_2d* being used in *Desc_Create*.  It is interesting
+     functions *chameleon_getaddr_ccrb*, *chameleon_getblkldd_ccrb*,
+     *chameleon_getrankof_2d* being used in *Desc_Create*.  It is interesting
      to notice that the code is almost the same as Step5.  The only
      additional information to give is the way tiles are distributed
      through the third function given to *CHAMELEON_Desc_Create_User*.
      Here, because we have made experiments only with a 2-D
      block-cyclic distribution, we have parameters P and Q in the
      interface of *Desc_Create* but they have sense only for 2-D
-     block-cyclic distribution and then using *morse_getrankof_2d*
+     block-cyclic distribution and then using *chameleon_getrankof_2d*
      function.  Of course it could be used with other distributions,
      being no more the parameters of a 2-D block-cyclic grid but of
      another distribution.
diff --git a/example/lapack_to_chameleon/CMakeLists.txt b/example/lapack_to_chameleon/CMakeLists.txt
index f31616316f2125e2aa5e8177ff03c665fae62dfc..cb08bc97df70eca1848acb61e4fe9bb68c5c1f76 100644
--- a/example/lapack_to_chameleon/CMakeLists.txt
+++ b/example/lapack_to_chameleon/CMakeLists.txt
@@ -61,14 +61,14 @@ foreach(_ltm ${LTM_SOURCES})
     set_property(TARGET ${_name_exe} PROPERTY LINKER_LANGUAGE Fortran)
     target_link_libraries(${_name_exe} ${libs_for_ltm})
     install(TARGETS ${_name_exe}
-            DESTINATION bin/example/lapack_to_morse)
+            DESTINATION bin/example/lapack_to_chameleon)
 endforeach()
 
 add_executable(step0 step0.c)
 set_property(TARGET step0 PROPERTY LINKER_LANGUAGE Fortran)
 target_link_libraries(step0 ${libs_for_step0})
 install(TARGETS step0
-        DESTINATION bin/example/lapack_to_morse)
+        DESTINATION bin/example/lapack_to_chameleon)
 
 #-------- Tests ---------
 include(CTestLists.cmake)
diff --git a/example/lapack_to_chameleon/CTestLists.cmake b/example/lapack_to_chameleon/CTestLists.cmake
index 2021405718989afac4b61146b772f8432c17dfbf..a32e3686f6d0c221ccbaa42245e469ecb41568bd 100644
--- a/example/lapack_to_chameleon/CTestLists.cmake
+++ b/example/lapack_to_chameleon/CTestLists.cmake
@@ -1,5 +1,5 @@
 #
-# Check Example lapack_to_morse
+# Check Example lapack_to_chameleon
 #
 
 set(TESTLIST 
diff --git a/example/lapack_to_chameleon/step2.c b/example/lapack_to_chameleon/step2.c
index 58931f5ca328d7dd5095fd22edc89aa6c73f8ebb..8344554bb5e4466f1e651f3f5aa4e8a1427072e3 100644
--- a/example/lapack_to_chameleon/step2.c
+++ b/example/lapack_to_chameleon/step2.c
@@ -79,7 +79,7 @@ int main(int argc, char *argv[]) {
         return EXIT_FAILURE;
     }
 
-    /* Question morse to get the block (tile) size (number of columns) */
+    /* Question chameleon to get the block (tile) size (number of columns) */
     CHAMELEON_Get( CHAMELEON_TILE_SIZE, &NB );
 
     /*
diff --git a/example/lapack_to_chameleon/step3.c b/example/lapack_to_chameleon/step3.c
index a0bb2c8ec9681322a42a74d274d2c97186dce91a..078b6127197cf6265e9eed879681bf195105a96c 100644
--- a/example/lapack_to_chameleon/step3.c
+++ b/example/lapack_to_chameleon/step3.c
@@ -80,7 +80,7 @@ int main(int argc, char *argv[]) {
         return EXIT_FAILURE;
     }
 
-    /* Question morse to get the block (tile) size (number of columns) */
+    /* Question chameleon to get the block (tile) size (number of columns) */
     CHAMELEON_Get( CHAMELEON_TILE_SIZE, &NB );
 
     /* allocate tile data */
@@ -110,8 +110,8 @@ int main(int argc, char *argv[]) {
      * in your matrix. The only thing important is to have well defined
      * functions get_blkaddr, get_blkldd, get_rankof corresponding to your data.
      * Note that this call of CHAMELEON_Desc_Create_User routine with
-     * morse_getaddr_ccrb, morse_getblkldd_ccrband morse_getrankof_2d functions
-     * is equivalent to a call to CHAMELEON_Desc_Create (morse_get... are the
+     * chameleon_getaddr_ccrb, chameleon_getblkldd_ccrband chameleon_getrankof_2d functions
+     * is equivalent to a call to CHAMELEON_Desc_Create (chameleon_get... are the
      * functions used inside CHAMELEON_Desc_Create).
      */
     CHAMELEON_Desc_Create(&descB, NULL, ChamRealDouble,
diff --git a/example/lapack_to_chameleon/step4.c b/example/lapack_to_chameleon/step4.c
index daf227dfe0dc69beac246048c9a2a82c9153e997..3e4a1e15ff8a9bd1db5cfada44488036b0bb675a 100644
--- a/example/lapack_to_chameleon/step4.c
+++ b/example/lapack_to_chameleon/step4.c
@@ -88,7 +88,7 @@ int main(int argc, char *argv[]) {
         return EXIT_FAILURE;
     }
 
-    /* Question morse to get the block (tile) size (number of columns) */
+    /* Question chameleon to get the block (tile) size (number of columns) */
     CHAMELEON_Get( CHAMELEON_TILE_SIZE, &NB );
 
     /* Initialize the structure required for CHAMELEON tile interface */
diff --git a/example/link_chameleon/CMakeLists.txt b/example/link_chameleon/CMakeLists.txt
index 23a14c5a260de718e69dbf5208e3b33218f932ac..13d1acd447a8f085db8a7d5d27659749679088ab 100644
--- a/example/link_chameleon/CMakeLists.txt
+++ b/example/link_chameleon/CMakeLists.txt
@@ -3,7 +3,7 @@
 cmake_minimum_required(VERSION 2.8)
 project(LINK_CHAMELEON Fortran C CXX)
 
-# Add extra cmake module path and initialize morse cmake modules
+# Add extra cmake module path and initialize chameleon cmake modules
 # --------------------------------------------------------------
 set( CHAMELEON_DISTRIB_DIR "" CACHE PATH "Directory of CHAMELEON distribution")
 option( CHAMELEON_CHAMELEON_USE_QUARK "CHAMELEON to be linked with QUARK runtime" OFF)
diff --git a/example/link_chameleon/link_chameleon.f90 b/example/link_chameleon/link_chameleon.f90
index 4c84844bdd93b9a4629edf96672ce092e8510cea..2a5722ceda8725e7e3b8ded3fef798cfaf9e5ca1 100644
--- a/example/link_chameleon/link_chameleon.f90
+++ b/example/link_chameleon/link_chameleon.f90
@@ -1,7 +1,7 @@
 
 program fortran_example
     implicit none
-    include 'morse_fortran.h'
+    include 'chameleon_fortran.h'
     integer, parameter:: dp=kind(0.d0) ! double precision
     integer, parameter :: NCPU=2, NGPU=0
     integer, parameter :: N=500, NRHS=1
diff --git a/example/out_of_core/out_of_core.c b/example/out_of_core/out_of_core.c
index 9b7dcfa71eb7549f6c1e780eee16ba30c71566fc..adbb4f9eac0e756c9170e29713626b55e0fa78c0 100644
--- a/example/out_of_core/out_of_core.c
+++ b/example/out_of_core/out_of_core.c
@@ -97,9 +97,9 @@ int main(int argc, char *argv[]) {
 
     CHAMELEON_Desc_Create_User(&descA, NULL, ChamRealDouble,
                            NB, NB, NB*NB, N, N, 0, 0, N, N, 1, 1,
-                           morse_getaddr_null, // specific function
-                           morse_getblkldd_ccrb,
-                           morse_getrankof_2d);
+                           chameleon_getaddr_null, // specific function
+                           chameleon_getblkldd_ccrb,
+                           chameleon_getrankof_2d);
     CHAMELEON_Desc_Create(&descB,  NULL, ChamRealDouble,
                       NB, NB,  NB*NB, N, NRHS, 0, 0, N, NRHS, 1, 1);
     CHAMELEON_Desc_Create(&descX,  NULL, ChamRealDouble,
diff --git a/plasma-conversion/callGeneration.bash b/plasma-conversion/callGeneration.bash
index 66681726841f745e61cc23711ca0327c8b5af00f..7f884f7b903744f8b825fcc921265a872cfc7140 100755
--- a/plasma-conversion/callGeneration.bash
+++ b/plasma-conversion/callGeneration.bash
@@ -50,9 +50,9 @@ plasma_dir="$PWD/plasma_$plasma_relname"
 licence_dir="$PWD/insert-licence"
 # source of the original chameleon
 # ex in this plasma_conversion directory: svn checkout https://scm.gforge.inria.fr/anonscm/svn/morse/trunk/chameleon
-morse_dir="$PWD/.."
+chameleon_dir="$PWD/.."
 # source of the converted chameleon
-morse_tmp="$PWD/chameleon"
+chameleon_tmp="$PWD/chameleon"
 
 if [[ ! -e $plasma_dir ]]; then
     echo "plasma_dir is set to $plasma_dir which does not exist, please set the variable plasma_dir in the script $0"
@@ -62,19 +62,19 @@ if [[ ! -e $licence_dir ]]; then
     echo "licence_dir is set to $licence_dir which does not exist, please set the variable licence_dir in the script $0"
     exit $?
 fi
-if [[ ! -e $morse_dir ]]; then
-    echo "morse_dir is set to $morse_dir which does not exist, try to download it"
+if [[ ! -e $chameleon_dir ]]; then
+    echo "chameleon_dir is set to $chameleon_dir which does not exist, try to download it"
     svn export svn+ssh://fpruvost@scm.gforge.inria.fr/svnroot/morse/trunk/chameleon
-    if [[ ! -e $morse_dir ]]; then
-        echo "morse_dir is set to $morse_dir which does not exist, please set the variable morse_dir in the script $0 and check that this path exists"
+    if [[ ! -e $chameleon_dir ]]; then
+        echo "chameleon_dir is set to $chameleon_dir which does not exist, please set the variable chameleon_dir in the script $0 and check that this path exists"
         exit $?
     fi
 fi
-if [[ ! -e $morse_tmp ]]; then
-    echo "morse_tmp is set to $morse_tmp which does not exist, lets create it"
-    mkdir $morse_tmp
-    if [[ ! -e $morse_tmp ]]; then
-        echo "morse_tmp is set to $morse_tmp which does not exist, please set the variable morse_tmp in the script $0"
+if [[ ! -e $chameleon_tmp ]]; then
+    echo "chameleon_tmp is set to $chameleon_tmp which does not exist, lets create it"
+    mkdir $chameleon_tmp
+    if [[ ! -e $chameleon_tmp ]]; then
+        echo "chameleon_tmp is set to $chameleon_tmp which does not exist, please set the variable chameleon_tmp in the script $0"
         exit $?
     fi
 fi
@@ -441,14 +441,14 @@ timing/time_zgesv_incpiv_tile.c
 
 # Génération des sources
 # ----------------------
-python ${plasma_conv_dir}/generate_morseSrc.py -o ${morse_tmp} -p ${plasma_dir} -f "${list_file}" --force
+python ${plasma_conv_dir}/generate_morseSrc.py -o ${chameleon_tmp} -p ${plasma_dir} -f "${list_file}" --force
 
 # Copie de la licence en entête des fichiers générés
 current_dir=$PWD
-cd ${morse_tmp}
+cd ${chameleon_tmp}
 ${licence_dir}/insert-licence-chameleon.sh
 cd ${current_dir}
 
 # Recopie de magma_morse
 # ----------------------
-python ${plasma_conv_dir}/generate_morseSrc.py -o ${morse_dir} -m ${morse_tmp} --force
+python ${plasma_conv_dir}/generate_morseSrc.py -o ${chameleon_dir} -m ${chameleon_tmp} --force
diff --git a/plasma-conversion/insert-licence/insert-licence-chameleon.sh b/plasma-conversion/insert-licence/insert-licence-chameleon.sh
index a5ef743dec5f1a88bf7cca600629e317e4fb52bc..545ff9eda4c0a795389d77096796780dbe7f9753 100755
--- a/plasma-conversion/insert-licence/insert-licence-chameleon.sh
+++ b/plasma-conversion/insert-licence/insert-licence-chameleon.sh
@@ -52,7 +52,7 @@
 #  @date 2012-07-13
 #
 ###
-for i in $(find . -name "*.c" -or -name "*.h" -not -path "*svn*" -not -name "morse_fortran.h")
+for i in $(find . -name "*.c" -or -name "*.h" -not -path "*svn*" -not -name "chameleon_fortran.h")
 do
   cat $(dirname $0)/chameleon_c.licence > $(dirname $0)/buffer.tmp
   cat $i >> $(dirname $0)/buffer.tmp
@@ -60,7 +60,7 @@ do
   rm $(dirname $0)/buffer.tmp
 done
 
-for i in $(find . -name "*.f" -or -name "*.F" -or -name "*.f77" -or -name "*.F77" -or -name "*.f90" -or -name "*.F90" -or -name "morse_fortran.h")
+for i in $(find . -name "*.f" -or -name "*.F" -or -name "*.f77" -or -name "*.F77" -or -name "*.f90" -or -name "*.F90" -or -name "chameleon_fortran.h")
 do
   cat $(dirname $0)/chameleon_f.licence > $(dirname $0)/buffer.tmp
   cat $i >> $(dirname $0)/buffer.tmp
diff --git a/plasma-conversion/rulesSubstitutions.py b/plasma-conversion/rulesSubstitutions.py
index 86f323822192345262ef8c8d2e8f1028decd32bf..9993a37aef3089ff6c99c4a5dfbe525b12fb159a 100644
--- a/plasma-conversion/rulesSubstitutions.py
+++ b/plasma-conversion/rulesSubstitutions.py
@@ -67,31 +67,31 @@ subs = {
     ( 'r', '#include([\s\S]*)plasma_private_alloc\(([^,]*),([\s\S]*?),([^)]*)\)',         '//WS_ALLOC : \\3\n#include\\1'                                ),
     # end get
 
-    ( 'u', 'plasma_static_call_([\w]*)\(([\s\\\]*)plasma_([\w]*),([^;]*);',               'morse_\\3(,\\4;'                                              ),
-    ( 'u', 'plasma_dynamic_call_([\w]*)\(([\s\\\]*)plasma_([\w]*),([^;]*);',              'morse_\\3(,\\4;'                                              ),
-    ( 'u', 'plasma_parallel_call_([\w]*)\(([\s\\\]*)plasma_([\w]*),([^;]*);',             'morse_\\3(,\\4;'                                              ),
-    ( 'u', 'plasma_static_call_([\w]*)\(([\s\\\]*)plasma_([\w]*),([\s\S]*?)request\)',    'morse_\\3(,\\4)'                                              ),
-    ( 'u', 'plasma_dynamic_call_([\w]*)\(([\s\\\]*)plasma_([\w]*),([\s\S]*?)request\)',   'morse_\\3(,\\4)'                                              ),
-    ( 'u', 'plasma_parallel_call_([\w]*)\(([\s\\\]*)plasma_([\w]*),([\s\S]*?)request\)',  'morse_\\3(,\\4)'                                              ),
-    # Dirty replacement to put the correct call of 'morse_pz***` by removing all types
+    ( 'u', 'plasma_static_call_([\w]*)\(([\s\\\]*)plasma_([\w]*),([^;]*);',               'chameleon_\\3(,\\4;'                                              ),
+    ( 'u', 'plasma_dynamic_call_([\w]*)\(([\s\\\]*)plasma_([\w]*),([^;]*);',              'chameleon_\\3(,\\4;'                                              ),
+    ( 'u', 'plasma_parallel_call_([\w]*)\(([\s\\\]*)plasma_([\w]*),([^;]*);',             'chameleon_\\3(,\\4;'                                              ),
+    ( 'u', 'plasma_static_call_([\w]*)\(([\s\\\]*)plasma_([\w]*),([\s\S]*?)request\)',    'chameleon_\\3(,\\4)'                                              ),
+    ( 'u', 'plasma_dynamic_call_([\w]*)\(([\s\\\]*)plasma_([\w]*),([\s\S]*?)request\)',   'chameleon_\\3(,\\4)'                                              ),
+    ( 'u', 'plasma_parallel_call_([\w]*)\(([\s\\\]*)plasma_([\w]*),([\s\S]*?)request\)',  'chameleon_\\3(,\\4)'                                              ),
+    # Dirty replacement to put the correct call of 'chameleon_pz***` by removing all types
     # The 8 first lines are called n times more to be sure to change all `plasma_desc_mat_free(&desc` to `RUNTIME_desc_getoncpu(`
-    ( 'r', 'morse_p([\w]*)\(([^;]*),([\s\w]*)PLASMA_enum([ \w\*]*),([^;]*);',             'morse_p\\1(\\2,\\5;'                                          ),
-    ( 'r', 'morse_p([\w]*)\(([^;]*),([\s\w]*)PLASMA_desc([ \w\*]*),([^;]*);',             'morse_p\\1(\\2,\\5;'                                          ),
-    ( 'r', 'morse_p([\w]*)\(([^;]*),([\s\w]*)PLASMA_Complex64_t([ \w\*]*),([^;]*);',      'morse_p\\1(\\2,\\5;'                                          ),
-    ( 'r', 'morse_p([\w]*)\(([^;]*),([\s\w]*)PLASMA_sequence([ \w\*]*),([^;]*);',         'morse_p\\1(\\2,\\5;'                                          ),
-    ( 'r', 'morse_p([\w]*)\(([^;]*),([\s\w]*)PLASMA_request([ \w\*]*),([^;]*);',          'morse_p\\1(\\2,\\5;'                                          ),
-    ( 'r', 'morse_p([\w]*)\(([^;]*),([\s\w]*)int([ \w\*]*),([^;]*);',                     'morse_p\\1(\\2,\\5;'                                          ),
-    ( 'r', 'morse_p([\w]*)\(([^;]*),([\s\w]*)float([ \w\*]*),([^;]*);',                   'morse_p\\1(\\2,\\5;'                                          ),
-    ( 'r', 'morse_p([\w]*)\(([^;]*),([\s\w]*)double([ \w\*]*),([^;]*);',                  'morse_p\\1(\\2,\\5;'                                          ),
-
-    ( 'u', 'morse_p([\w]*)\(([, ]*)',                                                     'morse_p\\1('                                                  ),
+    ( 'r', 'chameleon_p([\w]*)\(([^;]*),([\s\w]*)PLASMA_enum([ \w\*]*),([^;]*);',             'chameleon_p\\1(\\2,\\5;'                                          ),
+    ( 'r', 'chameleon_p([\w]*)\(([^;]*),([\s\w]*)PLASMA_desc([ \w\*]*),([^;]*);',             'chameleon_p\\1(\\2,\\5;'                                          ),
+    ( 'r', 'chameleon_p([\w]*)\(([^;]*),([\s\w]*)PLASMA_Complex64_t([ \w\*]*),([^;]*);',      'chameleon_p\\1(\\2,\\5;'                                          ),
+    ( 'r', 'chameleon_p([\w]*)\(([^;]*),([\s\w]*)PLASMA_sequence([ \w\*]*),([^;]*);',         'chameleon_p\\1(\\2,\\5;'                                          ),
+    ( 'r', 'chameleon_p([\w]*)\(([^;]*),([\s\w]*)PLASMA_request([ \w\*]*),([^;]*);',          'chameleon_p\\1(\\2,\\5;'                                          ),
+    ( 'r', 'chameleon_p([\w]*)\(([^;]*),([\s\w]*)int([ \w\*]*),([^;]*);',                     'chameleon_p\\1(\\2,\\5;'                                          ),
+    ( 'r', 'chameleon_p([\w]*)\(([^;]*),([\s\w]*)float([ \w\*]*),([^;]*);',                   'chameleon_p\\1(\\2,\\5;'                                          ),
+    ( 'r', 'chameleon_p([\w]*)\(([^;]*),([\s\w]*)double([ \w\*]*),([^;]*);',                  'chameleon_p\\1(\\2,\\5;'                                          ),
+
+    ( 'u', 'chameleon_p([\w]*)\(([, ]*)',                                                     'chameleon_p\\1('                                                  ),
   ],
   #
   #
   'compute' : [
     # Check the 2 next lines when plasma const will be right
     ( 'u', 'OUTOFPLACE([^}]+)plasma_zooptile2lap\(([\s]*)([^,]+),([^}]+)plasma_dynamic_sync\(\);([\s]*)plasma_desc_mat_free([^}]+)}',
-           'OUTOFPLACE\\1morse_zooptile2lap(\\3,\\4RUNTIME_barrier(morse);\\5RUNTIME_desc_getoncpu(&\\3);\\5plasma_desc_mat_free\\6}'                    ),
+           'OUTOFPLACE\\1chameleon_zooptile2lap(\\3,\\4RUNTIME_barrier(morse);\\5RUNTIME_desc_getoncpu(&\\3);\\5plasma_desc_mat_free\\6}'                    ),
     ( 'u', 'OUTOFPLACE([^}]+)RUNTIME_desc_getoncpu([^;]+);([\s]*)([^}]+)}([\s\S]*)_Tile\(([\s\S]*)plasma_dynamic_sync\(\);([\s]*)status = sequence->status',
            'OUTOFPLACE\\1RUNTIME_desc_getoncpu\\2;\\4}\\5_Tile(\\6RUNTIME_barrier(morse);\\7\\4\\7status = sequence->status'                             ),
     # Dirty replacement for CHAMELEON_z*_Tile to put RUNTIME_desc_getoncpu
@@ -103,11 +103,11 @@ subs = {
     # TODO: it works because it is the last call in the function
     #       we need to find better delimiters
     ( 'u', '_zplghe\(([\s\S]*)\n([ \t]*)plasma_ziptile2lap\(([^;]*);',
-           '_zplghe(\\1\n\\2RUNTIME_barrier(morse);\n\\2morse_zooptile2lap(\\3;' ),
+           '_zplghe(\\1\n\\2RUNTIME_barrier(morse);\n\\2chameleon_zooptile2lap(\\3;' ),
     ( 'u', '_zplgsy\(([\s\S]*)\n([ \t]*)plasma_ziptile2lap\(([^;]*);',
-           '_zplgsy(\\1\n\\2RUNTIME_barrier(morse);\n\\2morse_zooptile2lap(\\3;' ),
+           '_zplgsy(\\1\n\\2RUNTIME_barrier(morse);\n\\2chameleon_zooptile2lap(\\3;' ),
     ( 'u', '_zplrnt\(([\s\S]*)\n([ \t]*)plasma_ziptile2lap\(([^;]*);',
-           '_zplrnt(\\1\n\\2RUNTIME_barrier(morse);\n\\2morse_zooptile2lap(\\3;' ),
+           '_zplrnt(\\1\n\\2RUNTIME_barrier(morse);\n\\2chameleon_zooptile2lap(\\3;' ),
     # end specific
 
     # Remove INPLACE / OUTOFPLACE
@@ -119,11 +119,11 @@ subs = {
     ( 'u', '\n([ ]+)([\s]*)plasma_ziplap2tile([^;]*);([ \t]*)\n',                         '\n/*\\1\\2plasma_ziplap2tile\\3;\\4*/\n'                      ),
     # end remove
 
-    # Change plasma_desc_init into morse_zdesc_alloc
-    ( 'u', 'desc([\w]*)([ \t]*)=([ \t]*)plasma_desc_init\(([^,]*),([^;]*);([\s]*)([^;]*);', 'morse_zdesc_alloc(desc\\1,\\5;'                             ),
-    ( 'u', 'morse_zdesc_alloc\(([^;]*),([\w\s]*)\*([\w\s]*),([^;]*);',                      'morse_zdesc_alloc(\\1,\\4;'                                 ),
-    ( 'u', 'morse_zdesc_alloc\(([^;]*)\n([ \t]*)([^;]*);',                                  'morse_zdesc_alloc(\\1 \\3;'                                 ),
-    ( 'u', 'morse_zdesc_alloc\(desc([\w]*)([^;]*)\);',                                   'morse_zdesc_alloc(desc\\1\\2, morse_desc_mat_free(&desc\\1));' ),
+    # Change plasma_desc_init into chameleon_zdesc_alloc
+    ( 'u', 'desc([\w]*)([ \t]*)=([ \t]*)plasma_desc_init\(([^,]*),([^;]*);([\s]*)([^;]*);', 'chameleon_zdesc_alloc(desc\\1,\\5;'                             ),
+    ( 'u', 'chameleon_zdesc_alloc\(([^;]*),([\w\s]*)\*([\w\s]*),([^;]*);',                      'chameleon_zdesc_alloc(\\1,\\4;'                                 ),
+    ( 'u', 'chameleon_zdesc_alloc\(([^;]*)\n([ \t]*)([^;]*);',                                  'chameleon_zdesc_alloc(\\1 \\3;'                                 ),
+    ( 'u', 'chameleon_zdesc_alloc\(desc([\w]*)([^;]*)\);',                                   'chameleon_zdesc_alloc(desc\\1\\2, chameleon_desc_mat_free(&desc\\1));' ),
     # end chhange
 
     # Remove desc in Async
@@ -139,13 +139,13 @@ subs = {
            '_Tile_Async(\\1\n\\7\n}\n'                                                                                                                   ),
     ( 'r', '_Tile_Async\(([\s\S]*)\n([ \t]*)}([ \t]*)else([ \t]*){([\s]*)}([ \t]*)\n([\s\S]*)\n}\n' ,
            '_Tile_Async(\\1\n\\2}\n\\7\n}\n'                                                                                                             ),
-    ( 'r', '_Tile_Async\(([\s\S]*)morse_p([\w]*)\(([^;]*)desc([a-zA-Z0-9]+)([^;]*);([\s\S]*)\n}\n' ,
-           '_Tile_Async(\\1morse_p\\2(\\3\\4\\5;\\6\n}\n'                                                                                                ),
+    ( 'r', '_Tile_Async\(([\s\S]*)chameleon_p([\w]*)\(([^;]*)desc([a-zA-Z0-9]+)([^;]*);([\s\S]*)\n}\n' ,
+           '_Tile_Async(\\1chameleon_p\\2(\\3\\4\\5;\\6\n}\n'                                                                                                ),
     # end remove
 
-    # Patch for morse_desc_submatrix (this will not work with 2-sided and LU inversion)
-    ( 'r', '_Tile_Async\(([\s\S]*)^([\s]*)morse_p([\w]*)\(([^;]*)plasma_desc_submatrix\(([\s]*)([a-zA-Z0-9]+),([\s\S]*)\),([^;]*);',
-           '_Tile_Async(\\1\\2sub\\6 = morse_desc_submatrix(\\5\\6,\\7);\n\\2morse_p\\3(\\4sub\\6,\\8;\n\\2free(sub\\6);'                                ),
+    # Patch for chameleon_desc_submatrix (this will not work with 2-sided and LU inversion)
+    ( 'r', '_Tile_Async\(([\s\S]*)^([\s]*)chameleon_p([\w]*)\(([^;]*)plasma_desc_submatrix\(([\s]*)([a-zA-Z0-9]+),([\s\S]*)\),([^;]*);',
+           '_Tile_Async(\\1\\2sub\\6 = chameleon_desc_submatrix(\\5\\6,\\7);\n\\2chameleon_p\\3(\\4sub\\6,\\8;\n\\2free(sub\\6);'                                ),
     ( 'r', '_Tile_Async\(([^)]*)\)([\s]*){([\s\S]*)free\(sub([\w]*)\)',
            '_Tile_Async(\\1)\\2{\n\tCHAM_desc_t *sub\\4;\\3FLAGFREE(sub\\4)'                                                                            ),
     ( 'r', '_Tile_Async\(([^)]*)\)([\s]*){([\s\S]*)CHAM_desc_t \*sub([\w]*);([\s\S]*)\n^([\s]*)CHAM_desc_t \*sub\\4;',
@@ -166,10 +166,10 @@ subs = {
     ( 'u', 'plasma',                                                                      'morse'                                                        ),
 
     # Fix for zgels et zgelqs
-    ( 'u', 'CHAMELEON_zgels_Tile_Async([\s\S]*)sub([\w]*) = ([\s\S]*?)morse_pztile_zero([\s\S]*?)free([^;]*);',
-           'CHAMELEON_zgels_Tile_Async\\1/* sub\\2 = \\3morse_pztile_zero\\4free\\5; */'                                                                     ),
-    ( 'u', 'CHAMELEON_zgelqs_Tile_Async([\s\S]*)sub([\w]*) = ([\s\S]*?)morse_pztile_zero([\s\S]*?)free([^;]*);',
-           'CHAMELEON_zgelqs_Tile_Async\\1/* sub\\2 = \\3morse_pztile_zero\\4free\\5; */'                                                                    ),
+    ( 'u', 'CHAMELEON_zgels_Tile_Async([\s\S]*)sub([\w]*) = ([\s\S]*?)chameleon_pztile_zero([\s\S]*?)free([^;]*);',
+           'CHAMELEON_zgels_Tile_Async\\1/* sub\\2 = \\3chameleon_pztile_zero\\4free\\5; */'                                                                     ),
+    ( 'u', 'CHAMELEON_zgelqs_Tile_Async([\s\S]*)sub([\w]*) = ([\s\S]*?)chameleon_pztile_zero([\s\S]*?)free([^;]*);',
+           'CHAMELEON_zgelqs_Tile_Async\\1/* sub\\2 = \\3chameleon_pztile_zero\\4free\\5; */'                                                                    ),
 
   ],
 
@@ -177,7 +177,7 @@ subs = {
   # replacements applied to pcompute files.
   'pcompute' : [
     ( 'u', '#if 0([\s\S]*?)#endif',                                                       ''                                                             ),
-    ( 'u', 'plasma_([\w]*)_quark\(',                                                      'morse_\\1('                                                   ),
+    ( 'u', 'plasma_([\w]*)_quark\(',                                                      'chameleon_\\1('                                                   ),
     ( 'u', '\*\*/([\s]*?)void([\s]*?)plasma_([\w]*?)\(([\s\S]*)}([\s]*?)/\*\*',           '**/\\1\n/**'                                                  ),
     ( 'u', 'static scheduling([\s\S]*)dynamic scheduling',                                'dynamic scheduling'                                           ),
 
@@ -217,7 +217,7 @@ subs = {
   #
   # specific patch because of dirty source code
   'pzgebrd_tb2bd.c' : [
-    ( 'u', '#define A\(_m, _n\) \(CHAMELEON_Complex64_t \*\)morse_geteltaddr\(&A, \(_m\), \(_n\), eltsize\)',
+    ( 'u', '#define A\(_m, _n\) \(CHAMELEON_Complex64_t \*\)chameleon_geteltaddr\(&A, \(_m\), \(_n\), eltsize\)',
            '#define A(_m,_n) BLKADDR(&dA, CHAMELEON_Complex64_t, _m, _n)'                                                                                    ),
   ],
   'pzgetrf_reclap.c' : [
@@ -296,7 +296,7 @@ subs = {
   # ------------------------------------------------------------
   # replacements applied to codelet_quark files.
   'codelet_quark' : [
-    ( 'u', '#include "common.h"',                                                         '#include "morse_quark.h"'                                     ),
+    ( 'u', '#include "common.h"',                                                         '#include "chameleon_quark.h"'                                     ),
     ( 'u', '#if defined\(PLASMA_HAVE_WEAK\)([\s\S]*?)#endif',                             ''                                                             ),
 
     ( 'u', '\n([\s\w]*)void([\s]*)CORE_([a-zA-Z0-9]*)\(([^)]*)\)([\s]*){([\s\S]*?)\n}',   ''                                                             ),
@@ -367,7 +367,7 @@ subs = {
   # replacements applied to codelet_starpu files.
   'codelet_starpu' : [
     # Transformation for cl_***_cpu_func
-    ( 'u', '#include "morse_quark.h"',                                                    '#include "morse_starpu.h"'                                    ),
+    ( 'u', '#include "chameleon_quark.h"',                                                    '#include "chameleon_starpu.h"'                                    ),
     ( 'u', 'void([ \t]*)CORE_([\w]*)_quark\(([^)]*)\)',                                   'static void cl_\\2_cpu_func(void *descr[], void *cl_arg)'     ),
     ( 'u', '\n([ \t]*)RUNTIME_sequence_t([ \t]*)\*sequence;([ \t]*)\n',                     '\n'                                                           ),
     ( 'u', '\n([ \t]*)RUNTIME_request_t([ \t]*)\*request;([ \t]*)\n',                       '\n'                                                           ),
@@ -620,13 +620,13 @@ subs = {
   # replacements applied to control files.
   'control' : [
     ( 'u', 'plasma_alloc_ipiv\(([\w]*), ([\w]*), PLASMA_FUNC_ZGESV, \(void([ ]*)\*\*\)IPIV\)',
-           'morse_alloc_ipiv(\\1, \\2, CHAMELEON_FUNC_ZGESV, ChamComplexDouble, descL, (void**)IPIV)'                                                       ),
-    ( 'u', 'plasma_shared_alloc',                                                         'morse_desc_mat_alloc'                                         ),
+           'chameleon_alloc_ipiv(\\1, \\2, CHAMELEON_FUNC_ZGESV, ChamComplexDouble, descL, (void**)IPIV)'                                                       ),
+    ( 'u', 'plasma_shared_alloc',                                                         'chameleon_desc_mat_alloc'                                         ),
     ( 'u', 'Declarations of parallel functions \(static scheduling\)([\s\S]*?)Declarations of internal sequential functions',
            'Declarations of internal sequential functions'                                                                                               ),
-    ( 'u', 'plasma_parallel_call_([\w]*)\(([\s\\\]*)plasma_([\w]*),([^;]*);',             'morse_\\3(\\4;'                                               ),
-    ( 'u', 'morse_pzlapack_to_tile\(([^;]*?);',                                           'morse_pzlapack_to_tile(A, lm, &descA, seq, req);'             ),
-    ( 'u', 'morse_pztile_to_lapack\(([^;]*?);',                                           'morse_pztile_to_lapack(&descA, A, lm, seq, req);'             ),
+    ( 'u', 'plasma_parallel_call_([\w]*)\(([\s\\\]*)plasma_([\w]*),([^;]*);',             'chameleon_\\3(\\4;'                                               ),
+    ( 'u', 'chameleon_pzlapack_to_tile\(([^;]*?);',                                           'chameleon_pzlapack_to_tile(A, lm, &descA, seq, req);'             ),
+    ( 'u', 'chameleon_pztile_to_lapack\(([^;]*?);',                                           'chameleon_pztile_to_lapack(&descA, A, lm, seq, req);'             ),
     ( 'u', 'PLASMA_Dealloc_Handle_Tile',                                                  'CHAMELEON_Dealloc_Workspace'                                      ),
 
     ( 'u', 'PLASMA_sequence',                                                             'RUNTIME_sequence_t'                                             ),
@@ -639,9 +639,9 @@ subs = {
     ( 'u', 'plasma',                                                                      'morse'                                                        ),
     ( 'u', '_quark',                                                                      ''                                                             ),
 
-    # Add morse_zdesc_alloc in compute_z.h
-    ( 'u', '#define morse_zdesc_alloc',
-           '#define morse_zdesc_alloc2(descA, mb, nb, lm, ln, i, j, m, n)         \\\n\tdescA = morse_desc_init(                                          \\\n\t\tChamComplexDouble, (mb), (nb), ((mb)*(nb)),                  \\\n\t\t(m), (n), (i), (j), (m), (n));                                \\\n\tmorse_desc_mat_alloc( &(descA) );\n\n#define morse_zdesc_alloc' ),
+    # Add chameleon_zdesc_alloc in compute_z.h
+    ( 'u', '#define chameleon_zdesc_alloc',
+           '#define chameleon_zdesc_alloc2(descA, mb, nb, lm, ln, i, j, m, n)         \\\n\tdescA = chameleon_desc_init(                                          \\\n\t\tChamComplexDouble, (mb), (nb), ((mb)*(nb)),                  \\\n\t\t(m), (n), (i), (j), (m), (n));                                \\\n\tchameleon_desc_mat_alloc( &(descA) );\n\n#define chameleon_zdesc_alloc' ),
     # end add
   ],
 
@@ -652,7 +652,7 @@ subs = {
     ( 'u', 'PLASMA_sequence',                                                             'RUNTIME_sequence_t'                                             ),
     ( 'u', 'PLASMA_request',                                                              'RUNTIME_request_t'                                              ),
     ( 'u', 'PLASMA_desc',                                                                 'CHAM_desc_t'                                                 ),
-    ( 'u', 'real_Double_t',                                                               'morse_time_t'                                                 ),
+    ( 'u', 'real_Double_t',                                                               'chameleon_time_t'                                                 ),
     ( 'u', 'PLASMA',                                                                      'CHAMELEON'                                                        ),
     ( 'u', 'Plasma',                                                                      'Cham'                                                        ),
     ( 'u', 'plasma',                                                                      'morse'                                                        ),
@@ -666,7 +666,7 @@ subs = {
   'testing' : [
     ( 'u', 'core_blas.h',                                                                 'coreblas.h'                                                   ),
     ( 'u', 'testing_zmain.h',                                                             'testing_zauxiliary.h'                                         ),
-    ( 'u', 'real_Double_t',                                                               'morse_time_t'                                                 ),
+    ( 'u', 'real_Double_t',                                                               'chameleon_time_t'                                                 ),
     ( 'u', 'int([\s]*)testing_([^{]*){',                                                  'int\\1testing_\\2{\n\tint hres = 0;'                          ),
     ( 'u', 'int([\s]*)testing_([\s\S]*?)return 0;',                                       'int\\1testing_\\2return hres;'                                ),
     ( 'u', 'int([\s]*)testing_([\s\S]*?)FAILED([^;]*?);',                                 'int\\1testing_\\2FAILED\\3;\thres++;'                         ),
diff --git a/runtime/parsec/codelets/codelet_zasum.c b/runtime/parsec/codelets/codelet_zasum.c
index dd9ae90e9f1e596f1000bbcc0bae02f70ca034aa..4addc4753694d5639b2be23fb418f4ed9eddea9b 100644
--- a/runtime/parsec/codelets/codelet_zasum.c
+++ b/runtime/parsec/codelets/codelet_zasum.c
@@ -54,7 +54,7 @@ void INSERT_TASK_dzasum(const RUNTIME_option_t *options,
         sizeof(int),    &uplo,                             VALUE,
         sizeof(int),           &M,                                VALUE,
         sizeof(int),           &N,                                VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),           &lda,                              VALUE,
         PASSED_BY_REF,         RTBLKADDR( B, double, Bm, Bn ),     INOUT | AFFINITY,
         PARSEC_DTD_ARG_END );
diff --git a/runtime/parsec/codelets/codelet_zaxpy.c b/runtime/parsec/codelets/codelet_zaxpy.c
index 974222f42700ee7fac55afbf545769b4ea49721e..38877aa2f0e83f93df90736bae894a6a152f9e9f 100644
--- a/runtime/parsec/codelets/codelet_zaxpy.c
+++ b/runtime/parsec/codelets/codelet_zaxpy.c
@@ -51,9 +51,9 @@ void INSERT_TASK_zaxpy(const RUNTIME_option_t *options,
         PARSEC_dtd_taskpool, CORE_zaxpy_parsec, options->priority,  "axpy",
         sizeof(int),               &M,     VALUE,
         sizeof(CHAMELEON_Complex64_t), &alpha, VALUE,
-        PASSED_BY_REF,  RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,  RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),               &incA, VALUE,
-        PASSED_BY_REF,  RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), morse_parsec_get_arena_index( B ) | INOUT | AFFINITY,
+        PASSED_BY_REF,  RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), chameleon_parsec_get_arena_index( B ) | INOUT | AFFINITY,
         sizeof(int),               &incB, VALUE,
         PARSEC_DTD_ARG_END );
 }
diff --git a/runtime/parsec/codelets/codelet_zbuild.c b/runtime/parsec/codelets/codelet_zbuild.c
index 825619c7af0ab756c6729150e9e7c9cdad5e3fc4..36c8bc908a7d4186923ed2aa034e9c916ba55708 100644
--- a/runtime/parsec/codelets/codelet_zbuild.c
+++ b/runtime/parsec/codelets/codelet_zbuild.c
@@ -59,7 +59,7 @@ void INSERT_TASK_zbuild( const RUNTIME_option_t *options,
         sizeof(int),   &row_max,                          VALUE,
         sizeof(int),   &col_min,                          VALUE,
         sizeof(int),   &col_max,                          VALUE,
-        PASSED_BY_REF,  RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | OUTPUT | AFFINITY,
+        PASSED_BY_REF,  RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | OUTPUT | AFFINITY,
         sizeof(int),   &lda,                              VALUE,
         sizeof(void*), &user_data,                        VALUE,
         sizeof(void*), &user_build_callback,              VALUE,
diff --git a/runtime/parsec/codelets/codelet_zgeadd.c b/runtime/parsec/codelets/codelet_zgeadd.c
index 65ad0e281969ba4966a102e4d5e01b710291b972..aea836f74e7c1e7b95197ff1a4a5e7b7056bffe6 100644
--- a/runtime/parsec/codelets/codelet_zgeadd.c
+++ b/runtime/parsec/codelets/codelet_zgeadd.c
@@ -114,10 +114,10 @@ void INSERT_TASK_zgeadd(const RUNTIME_option_t *options,
         sizeof(int),               &m,     VALUE,
         sizeof(int),               &n,     VALUE,
         sizeof(CHAMELEON_Complex64_t), &alpha, VALUE,
-        PASSED_BY_REF,              RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,              RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),               &lda,   VALUE,
         sizeof(CHAMELEON_Complex64_t), &beta,  VALUE,
-        PASSED_BY_REF,              RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), morse_parsec_get_arena_index( B ) | INOUT | AFFINITY,
+        PASSED_BY_REF,              RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), chameleon_parsec_get_arena_index( B ) | INOUT | AFFINITY,
         sizeof(int),               &ldb,   VALUE,
         PARSEC_DTD_ARG_END );
 
diff --git a/runtime/parsec/codelets/codelet_zgelqt.c b/runtime/parsec/codelets/codelet_zgelqt.c
index 790575a2271a9085416318db02680731952f604b..cd0fe83134bce84168c7bfbdb17abecd5410d6b0 100644
--- a/runtime/parsec/codelets/codelet_zgelqt.c
+++ b/runtime/parsec/codelets/codelet_zgelqt.c
@@ -116,9 +116,9 @@ void INSERT_TASK_zgelqt(const RUNTIME_option_t *options,
         sizeof(int),                        &m,     VALUE,
         sizeof(int),                        &n,     VALUE,
         sizeof(int),                        &ib,    VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
         sizeof(int),           &lda,                VALUE,
-        PASSED_BY_REF,         RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), morse_parsec_get_arena_index( T ) | OUTPUT,
+        PASSED_BY_REF,         RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), chameleon_parsec_get_arena_index( T ) | OUTPUT,
         sizeof(int),           &ldt,                VALUE,
         sizeof(CHAMELEON_Complex64_t)*nb,       NULL,   SCRATCH,
         sizeof(CHAMELEON_Complex64_t)*ib*nb,    NULL,   SCRATCH,
diff --git a/runtime/parsec/codelets/codelet_zgemm.c b/runtime/parsec/codelets/codelet_zgemm.c
index 5142362b71a1f5e21e9a4f995f924f9a35da854d..6fbc63999e803cd5ee8a294b55065eb57cb3d98e 100644
--- a/runtime/parsec/codelets/codelet_zgemm.c
+++ b/runtime/parsec/codelets/codelet_zgemm.c
@@ -72,12 +72,12 @@ void INSERT_TASK_zgemm( const RUNTIME_option_t *options,
         sizeof(int),           &n,                                VALUE,
         sizeof(int),           &k,                                VALUE,
         sizeof(CHAMELEON_Complex64_t),           &alpha,              VALUE,
-        PASSED_BY_REF,     RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,     RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),           &lda,                              VALUE,
-        PASSED_BY_REF,     RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), morse_parsec_get_arena_index( B ) | INPUT,
+        PASSED_BY_REF,     RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), chameleon_parsec_get_arena_index( B ) | INPUT,
         sizeof(int),           &ldb,                              VALUE,
         sizeof(CHAMELEON_Complex64_t),           &beta,               VALUE,
-        PASSED_BY_REF,     RTBLKADDR( C, CHAMELEON_Complex64_t, Cm, Cn ), morse_parsec_get_arena_index( C ) | INOUT | AFFINITY,
+        PASSED_BY_REF,     RTBLKADDR( C, CHAMELEON_Complex64_t, Cm, Cn ), chameleon_parsec_get_arena_index( C ) | INOUT | AFFINITY,
         sizeof(int),           &ldc,                              VALUE,
         PARSEC_DTD_ARG_END );
 
diff --git a/runtime/parsec/codelets/codelet_zgeqrt.c b/runtime/parsec/codelets/codelet_zgeqrt.c
index 900332749cda03a1ec7069504752a8aee452c83b..b471528922227e5ec7d02e4a6861891b04a07cf7 100644
--- a/runtime/parsec/codelets/codelet_zgeqrt.c
+++ b/runtime/parsec/codelets/codelet_zgeqrt.c
@@ -117,9 +117,9 @@ void INSERT_TASK_zgeqrt(const RUNTIME_option_t *options,
         sizeof(int),           &m,                             VALUE,
         sizeof(int),           &n,                             VALUE,
         sizeof(int),           &ib,                            VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
         sizeof(int),           &lda,                           VALUE,
-        PASSED_BY_REF,         RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), morse_parsec_get_arena_index( T ) | OUTPUT,
+        PASSED_BY_REF,         RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), chameleon_parsec_get_arena_index( T ) | OUTPUT,
         sizeof(int),           &ldt,                           VALUE,
         sizeof(CHAMELEON_Complex64_t)*nb,       NULL,                         SCRATCH,
         sizeof(CHAMELEON_Complex64_t)*ib*nb,    NULL,                         SCRATCH,
diff --git a/runtime/parsec/codelets/codelet_zgessm.c b/runtime/parsec/codelets/codelet_zgessm.c
index c0d6da646384723d4187feca4236bbd751d91ada..4257eccc1b92bd17bed8b11a20fac7b0ccabcbce 100644
--- a/runtime/parsec/codelets/codelet_zgessm.c
+++ b/runtime/parsec/codelets/codelet_zgessm.c
@@ -105,11 +105,11 @@ void INSERT_TASK_zgessm(const RUNTIME_option_t *options,
         sizeof(int),           &k,                                VALUE,
         sizeof(int),           &ib,                               VALUE,
         sizeof(int*),          &IPIV,                             VALUE,
-        PASSED_BY_REF,         RTBLKADDR( L, CHAMELEON_Complex64_t, Lm, Ln ), morse_parsec_get_arena_index( L ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( L, CHAMELEON_Complex64_t, Lm, Ln ), chameleon_parsec_get_arena_index( L ) | INPUT,
         sizeof(int),           &ldl,                              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( D, CHAMELEON_Complex64_t, Dm, Dn ), morse_parsec_get_arena_index( D ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( D, CHAMELEON_Complex64_t, Dm, Dn ), chameleon_parsec_get_arena_index( D ) | INPUT,
         sizeof(int),           &ldd,                              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
         sizeof(int),           &lda,                              VALUE,
         PARSEC_DTD_ARG_END );
 
diff --git a/runtime/parsec/codelets/codelet_zgessq.c b/runtime/parsec/codelets/codelet_zgessq.c
index 125fda0e66bf57dac7d9e539e2317fd684bbc0e7..13a7727cc3a989c41af5fee1ccce89b9a50f0319 100644
--- a/runtime/parsec/codelets/codelet_zgessq.c
+++ b/runtime/parsec/codelets/codelet_zgessq.c
@@ -50,7 +50,7 @@ void INSERT_TASK_zgessq( const RUNTIME_option_t *options,
         PARSEC_dtd_taskpool, CORE_zgessq_parsec, options->priority, "gessq",
         sizeof(int),    &m,            VALUE,
         sizeof(int),    &n,            VALUE,
-        PASSED_BY_REF,   RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,   RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),    &lda,          VALUE,
         PASSED_BY_REF,   RTBLKADDR( SCALESUMSQ, double, SCALESUMSQm, SCALESUMSQn ), INOUT | AFFINITY,
         PARSEC_DTD_ARG_END );
diff --git a/runtime/parsec/codelets/codelet_zgetrf.c b/runtime/parsec/codelets/codelet_zgetrf.c
index 93502b3c3f022f72f3947c0c9ba8a9245a79a621..a7eaee7f0dd5141573e1df0c857953f72b218e68 100644
--- a/runtime/parsec/codelets/codelet_zgetrf.c
+++ b/runtime/parsec/codelets/codelet_zgetrf.c
@@ -54,7 +54,7 @@ void INSERT_TASK_zgetrf(const RUNTIME_option_t *options,
         PARSEC_dtd_taskpool, CORE_zgetrf_parsec, options->priority, "getrf",
         sizeof(int),        &m,                          VALUE,
         sizeof(int),        &n,                          VALUE,
-        PASSED_BY_REF,       RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INOUT | AFFINITY,
+        PASSED_BY_REF,       RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
         sizeof(int),        &lda,                        VALUE,
         sizeof(int)*nb,      IPIV,                        SCRATCH,
         sizeof(cham_bool_t), &check_info,                 VALUE,
diff --git a/runtime/parsec/codelets/codelet_zgetrf_incpiv.c b/runtime/parsec/codelets/codelet_zgetrf_incpiv.c
index 1076b1e74af86290f321d79efbbd6084a722e7c2..f8bae1c2b4b7118a6ada0c8accedecd4da4d2027 100644
--- a/runtime/parsec/codelets/codelet_zgetrf_incpiv.c
+++ b/runtime/parsec/codelets/codelet_zgetrf_incpiv.c
@@ -112,7 +112,7 @@ void INSERT_TASK_zgetrf_incpiv( const RUNTIME_option_t *options,
         sizeof(int),           &m,                                VALUE,
         sizeof(int),           &n,                                VALUE,
         sizeof(int),           &ib,                               VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
         sizeof(int),           &lda,                              VALUE,
         sizeof(int*),          &IPIV,                             VALUE,
         sizeof(int),           &check_info,                       VALUE,
diff --git a/runtime/parsec/codelets/codelet_zgetrf_nopiv.c b/runtime/parsec/codelets/codelet_zgetrf_nopiv.c
index 0b4275d7315fa9d79f20119aa5138351b24a0d20..6d755bdadd0aafcf6c9e5584488521a5e827062e 100644
--- a/runtime/parsec/codelets/codelet_zgetrf_nopiv.c
+++ b/runtime/parsec/codelets/codelet_zgetrf_nopiv.c
@@ -100,7 +100,7 @@ void INSERT_TASK_zgetrf_nopiv(const RUNTIME_option_t *options,
         sizeof(int),           &m,                          VALUE,
         sizeof(int),           &n,                          VALUE,
         sizeof(int),           &ib,                         VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
         sizeof(int),           &lda,                        VALUE,
         sizeof(int),           &iinfo,                      VALUE,
         PARSEC_DTD_ARG_END );
diff --git a/runtime/parsec/codelets/codelet_zhemm.c b/runtime/parsec/codelets/codelet_zhemm.c
index 85b19f6da5804df336efe607517750b8937ccd7c..213a01dc70dd81fcec74828f7f857ada8800d586 100644
--- a/runtime/parsec/codelets/codelet_zhemm.c
+++ b/runtime/parsec/codelets/codelet_zhemm.c
@@ -70,12 +70,12 @@ void INSERT_TASK_zhemm(const RUNTIME_option_t *options,
         sizeof(int),                       &m,       VALUE,
         sizeof(int),                       &n,       VALUE,
         sizeof(CHAMELEON_Complex64_t),         &alpha,   VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),           &lda,                 VALUE,
-        PASSED_BY_REF,         RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), morse_parsec_get_arena_index( B ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), chameleon_parsec_get_arena_index( B ) | INPUT,
         sizeof(int),           &ldb,                 VALUE,
         sizeof(CHAMELEON_Complex64_t),         &beta,    VALUE,
-        PASSED_BY_REF,         RTBLKADDR( C, CHAMELEON_Complex64_t, Cm, Cn ), morse_parsec_get_arena_index( C ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( C, CHAMELEON_Complex64_t, Cm, Cn ), chameleon_parsec_get_arena_index( C ) | INOUT | AFFINITY,
         sizeof(int),           &ldc,                 VALUE,
         PARSEC_DTD_ARG_END );
 
diff --git a/runtime/parsec/codelets/codelet_zher2k.c b/runtime/parsec/codelets/codelet_zher2k.c
index 746f4e9a70064c1b8cbe00e99d5f5d4e03489250..ec1f21d19043444d4c0239cdb74c27ce9a098af1 100644
--- a/runtime/parsec/codelets/codelet_zher2k.c
+++ b/runtime/parsec/codelets/codelet_zher2k.c
@@ -70,12 +70,12 @@ void INSERT_TASK_zher2k(const RUNTIME_option_t *options,
         sizeof(int),                        &n,        VALUE,
         sizeof(int),                        &k,        VALUE,
         sizeof(CHAMELEON_Complex64_t),          &alpha,    VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),                        &lda,      VALUE,
-        PASSED_BY_REF,         RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), morse_parsec_get_arena_index( B ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), chameleon_parsec_get_arena_index( B ) | INPUT,
         sizeof(int),                        &ldb,      VALUE,
         sizeof(double),                     &beta,     VALUE,
-        PASSED_BY_REF,         RTBLKADDR( C, CHAMELEON_Complex64_t, Cm, Cn ), morse_parsec_get_arena_index( C ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( C, CHAMELEON_Complex64_t, Cm, Cn ), chameleon_parsec_get_arena_index( C ) | INOUT | AFFINITY,
         sizeof(int),                        &ldc,      VALUE,
         PARSEC_DTD_ARG_END );
 
diff --git a/runtime/parsec/codelets/codelet_zherk.c b/runtime/parsec/codelets/codelet_zherk.c
index a399766fa54fdec04efa28477957a43b4e46ccb2..7d5bfd9fdec140f752010c17f22221c5e26f5884 100644
--- a/runtime/parsec/codelets/codelet_zherk.c
+++ b/runtime/parsec/codelets/codelet_zherk.c
@@ -66,10 +66,10 @@ void INSERT_TASK_zherk(const RUNTIME_option_t *options,
         sizeof(int),           &n,                                VALUE,
         sizeof(int),           &k,                                VALUE,
         sizeof(double),        &alpha,                            VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),           &lda,                              VALUE,
         sizeof(double),        &beta,                             VALUE,
-        PASSED_BY_REF,         RTBLKADDR( C, CHAMELEON_Complex64_t, Cm, Cn ), morse_parsec_get_arena_index( C ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( C, CHAMELEON_Complex64_t, Cm, Cn ), chameleon_parsec_get_arena_index( C ) | INOUT | AFFINITY,
         sizeof(int),           &ldc,                              VALUE,
         PARSEC_DTD_ARG_END );
 
diff --git a/runtime/parsec/codelets/codelet_zhessq.c b/runtime/parsec/codelets/codelet_zhessq.c
index 75d783a2ab0e51971780d83073e54724696a4afb..902026147682515222aac0278f2c16afa7808baa 100644
--- a/runtime/parsec/codelets/codelet_zhessq.c
+++ b/runtime/parsec/codelets/codelet_zhessq.c
@@ -50,7 +50,7 @@ void INSERT_TASK_zhessq( const RUNTIME_option_t *options,
         PARSEC_dtd_taskpool, CORE_zhessq_parsec, options->priority, "hessq",
         sizeof(int),           &uplo,               VALUE,
         sizeof(int),           &n,                  VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),           &lda,                VALUE,
         PASSED_BY_REF,         RTBLKADDR( SCALESUMSQ, double, SCALESUMSQm, SCALESUMSQn ),    INOUT | AFFINITY,
         PARSEC_DTD_ARG_END );
diff --git a/runtime/parsec/codelets/codelet_zlacpy.c b/runtime/parsec/codelets/codelet_zlacpy.c
index 8e37ca81e4cf80db102d17888c9f31eb277f8c6b..3b5d251cbb7157ac8b8110bb41843187b416f8a5 100644
--- a/runtime/parsec/codelets/codelet_zlacpy.c
+++ b/runtime/parsec/codelets/codelet_zlacpy.c
@@ -62,10 +62,10 @@ void INSERT_TASK_zlacpyx( const RUNTIME_option_t *options,
         sizeof(int),           &m,                         VALUE,
         sizeof(int),           &n,                         VALUE,
         sizeof(int),           &displA,                    VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),           &lda,                       VALUE,
         sizeof(int),           &displB,                    VALUE,
-        PASSED_BY_REF,         RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), morse_parsec_get_arena_index( B ) | OUTPUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), chameleon_parsec_get_arena_index( B ) | OUTPUT | AFFINITY,
         sizeof(int),           &ldb,                       VALUE,
         PARSEC_DTD_ARG_END );
     (void)nb;
diff --git a/runtime/parsec/codelets/codelet_zlag2c.c b/runtime/parsec/codelets/codelet_zlag2c.c
index eaf7489646eb04e65961546ef95af36c0701181a..d9f17eaa5d7c170410425fbb44ebe67ff2774ff5 100644
--- a/runtime/parsec/codelets/codelet_zlag2c.c
+++ b/runtime/parsec/codelets/codelet_zlag2c.c
@@ -56,7 +56,7 @@ void INSERT_TASK_zlag2c(const RUNTIME_option_t *options,
     parsec_dtd_taskpool_insert_task(PARSEC_dtd_taskpool, CORE_zlag2c_parsec, "lag2c",
         sizeof(int),                        &m,         VALUE,
         sizeof(int),                        &n,         VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),                        &lda,       VALUE,
         PASSED_BY_REF,         RTBLKADDR( B, CHAMELEON_Complex32_t, Bm, Bn ),     OUTPUT | AFFINITY,
         sizeof(int),                        &ldb,       VALUE,
@@ -100,7 +100,7 @@ void INSERT_TASK_clag2z(const RUNTIME_option_t *options,
         sizeof(int),                        &n,         VALUE,
         PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex32_t, Am, An ),     INPUT,
         sizeof(int),                        &lda,       VALUE,
-        PASSED_BY_REF,         RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), morse_parsec_get_arena_index( B ) | OUTPUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), chameleon_parsec_get_arena_index( B ) | OUTPUT | AFFINITY,
         sizeof(int),                        &ldb,       VALUE,
         PARSEC_DTD_ARG_END );
 }
diff --git a/runtime/parsec/codelets/codelet_zlange.c b/runtime/parsec/codelets/codelet_zlange.c
index 59d1ca5b525220b9bc98e970b233503e923f23ea..e76fd80db4d9e9a737dae48484134b8873f7677c 100644
--- a/runtime/parsec/codelets/codelet_zlange.c
+++ b/runtime/parsec/codelets/codelet_zlange.c
@@ -55,7 +55,7 @@ void INSERT_TASK_zlange(const RUNTIME_option_t *options,
         sizeof(int),            &norm,          VALUE,
         sizeof(int),                   &M,             VALUE,
         sizeof(int),                   &N,             VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),                   &LDA,           VALUE,
         sizeof(double)*szeW,           NULL,           SCRATCH,
         PASSED_BY_REF,         RTBLKADDR( B, double, Bm, Bn ),            OUTPUT | AFFINITY,
diff --git a/runtime/parsec/codelets/codelet_zlanhe.c b/runtime/parsec/codelets/codelet_zlanhe.c
index f61398d7cab70c8d1f86b69c611e631875a8aa88..26e7d8d8d04d24dfe81c1be3b0701e64608eec23 100644
--- a/runtime/parsec/codelets/codelet_zlanhe.c
+++ b/runtime/parsec/codelets/codelet_zlanhe.c
@@ -55,7 +55,7 @@ void INSERT_TASK_zlanhe(const RUNTIME_option_t *options,
         sizeof(int),            &norm,          VALUE,
         sizeof(int),            &uplo,          VALUE,
         sizeof(int),                   &N,             VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),                   &LDA,           VALUE,
         sizeof(double)*szeW,           NULL,           SCRATCH,
         PASSED_BY_REF,         RTBLKADDR( B, double, Bm, Bn ),            OUTPUT | AFFINITY,
diff --git a/runtime/parsec/codelets/codelet_zlansy.c b/runtime/parsec/codelets/codelet_zlansy.c
index f4dd7606304001abb326c50899ade95a123f87cf..07d7fd910e5107a4db5da04edf86658946a69122 100644
--- a/runtime/parsec/codelets/codelet_zlansy.c
+++ b/runtime/parsec/codelets/codelet_zlansy.c
@@ -55,7 +55,7 @@ void INSERT_TASK_zlansy(const RUNTIME_option_t *options,
         sizeof(int),            &norm,          VALUE,
         sizeof(int),            &uplo,          VALUE,
         sizeof(int),                   &N,             VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),                   &LDA,           VALUE,
         sizeof(double)*szeW,           NULL,           SCRATCH,
         PASSED_BY_REF,         RTBLKADDR( B, double, Bm, Bn ),            OUTPUT | AFFINITY,
diff --git a/runtime/parsec/codelets/codelet_zlantr.c b/runtime/parsec/codelets/codelet_zlantr.c
index 26d7e045ec301cd8746ea48c26134390f60b97ba..2ae19669e93cc1ba07b717f47f7e88ef8f8f6c04 100644
--- a/runtime/parsec/codelets/codelet_zlantr.c
+++ b/runtime/parsec/codelets/codelet_zlantr.c
@@ -58,7 +58,7 @@ void INSERT_TASK_zlantr(const RUNTIME_option_t *options,
         sizeof(int),            &diag,          VALUE,
         sizeof(int),                   &M,             VALUE,
         sizeof(int),                   &N,             VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),                   &LDA,           VALUE,
         sizeof(double)*szeW,           NULL,           SCRATCH,
         PASSED_BY_REF,         RTBLKADDR( B, double, Bm, Bn ),            OUTPUT | AFFINITY,
diff --git a/runtime/parsec/codelets/codelet_zlaset.c b/runtime/parsec/codelets/codelet_zlaset.c
index 6a7c8df1b209f0044c5e0e8df957ad5002430a35..440075a1ebed808e4346ed5763c2cf15e5820360 100644
--- a/runtime/parsec/codelets/codelet_zlaset.c
+++ b/runtime/parsec/codelets/codelet_zlaset.c
@@ -90,7 +90,7 @@ void INSERT_TASK_zlaset(const RUNTIME_option_t *options,
         sizeof(int),                     &N,           VALUE,
         sizeof(CHAMELEON_Complex64_t),       &alpha,       VALUE,
         sizeof(CHAMELEON_Complex64_t),       &beta,        VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | OUTPUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | OUTPUT | AFFINITY,
         sizeof(int),                     &LDA,         VALUE,
         PARSEC_DTD_ARG_END );
 }
diff --git a/runtime/parsec/codelets/codelet_zlaset2.c b/runtime/parsec/codelets/codelet_zlaset2.c
index 21df0943d8c1191c5a4853f05f4e847979dbf548..0086484aa8e20709ec5b33668acc5978a17fde30 100644
--- a/runtime/parsec/codelets/codelet_zlaset2.c
+++ b/runtime/parsec/codelets/codelet_zlaset2.c
@@ -85,7 +85,7 @@ void INSERT_TASK_zlaset2(const RUNTIME_option_t *options,
         sizeof(int),                       &M,         VALUE,
         sizeof(int),                       &N,         VALUE,
         sizeof(int),                &alpha,     VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | OUTPUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | OUTPUT | AFFINITY,
         sizeof(int),                       &LDA,       VALUE,
         PARSEC_DTD_ARG_END );
 }
diff --git a/runtime/parsec/codelets/codelet_zlauum.c b/runtime/parsec/codelets/codelet_zlauum.c
index 967ff7743da1d3e4bad257951466890b8cac939f..b2420ffc52c977ba0b572a0194ef22bea733de70 100644
--- a/runtime/parsec/codelets/codelet_zlauum.c
+++ b/runtime/parsec/codelets/codelet_zlauum.c
@@ -53,7 +53,7 @@ void INSERT_TASK_zlauum(const RUNTIME_option_t *options,
         PARSEC_dtd_taskpool, CORE_zlauum_parsec, options->priority, "lauum",
         sizeof(int),    &uplo,                  VALUE,
         sizeof(int),           &n,                     VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
         sizeof(int),           &lda,                   VALUE,
         PARSEC_DTD_ARG_END );
 
diff --git a/runtime/parsec/codelets/codelet_zpamm.c b/runtime/parsec/codelets/codelet_zpamm.c
index 6dae3bc66e6d51cc7d7a73c00fb767b9082db5ef..d611efe52f53592af945c509d67f61492730c298 100644
--- a/runtime/parsec/codelets/codelet_zpamm.c
+++ b/runtime/parsec/codelets/codelet_zpamm.c
@@ -212,13 +212,13 @@ INSERT_TASK_zpamm(const RUNTIME_option_t *options,
         sizeof(int),                        &n,                 VALUE,
         sizeof(int),                        &k,                 VALUE,
         sizeof(int),                        &l,                 VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A1, CHAMELEON_Complex64_t, A1m, A1n ), morse_parsec_get_arena_index( A1 ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( A1, CHAMELEON_Complex64_t, A1m, A1n ), chameleon_parsec_get_arena_index( A1 ) | INPUT,
         sizeof(int),                        &lda1,              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A2, CHAMELEON_Complex64_t, A2m, A2n ), morse_parsec_get_arena_index( A2 ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( A2, CHAMELEON_Complex64_t, A2m, A2n ), chameleon_parsec_get_arena_index( A2 ) | INOUT | AFFINITY,
         sizeof(int),                        &lda2,              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( V, CHAMELEON_Complex64_t, Vm, Vn ), morse_parsec_get_arena_index( V ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( V, CHAMELEON_Complex64_t, Vm, Vn ), chameleon_parsec_get_arena_index( V ) | INPUT,
         sizeof(int),                        &ldv,               VALUE,
-        PASSED_BY_REF,         RTBLKADDR( W, CHAMELEON_Complex64_t, Wm, Wn ), morse_parsec_get_arena_index( W ) | INOUT,
+        PASSED_BY_REF,         RTBLKADDR( W, CHAMELEON_Complex64_t, Wm, Wn ), chameleon_parsec_get_arena_index( W ) | INOUT,
         sizeof(int),                        &ldw,               VALUE,
         PARSEC_DTD_ARG_END );
 }
diff --git a/runtime/parsec/codelets/codelet_zplghe.c b/runtime/parsec/codelets/codelet_zplghe.c
index fd01c692a9ae12378a1f400e86020664e630da41..8d33409a40920b3e982b66a098a5f225f5d024b4 100644
--- a/runtime/parsec/codelets/codelet_zplghe.c
+++ b/runtime/parsec/codelets/codelet_zplghe.c
@@ -54,7 +54,7 @@ void INSERT_TASK_zplghe( const RUNTIME_option_t *options,
         sizeof(double),    &bump,                          VALUE,
         sizeof(int),       &m,                             VALUE,
         sizeof(int),       &n,                             VALUE,
-        PASSED_BY_REF,     RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | OUTPUT | AFFINITY,
+        PASSED_BY_REF,     RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | OUTPUT | AFFINITY,
         sizeof(int),       &lda,                           VALUE,
         sizeof(int),       &bigM,                          VALUE,
         sizeof(int),       &m0,                            VALUE,
diff --git a/runtime/parsec/codelets/codelet_zplgsy.c b/runtime/parsec/codelets/codelet_zplgsy.c
index 81045149dfb0dd90075d47e6956b0884c7fccf8c..b37464158a30b8c476157e06d47cda6119d433f0 100644
--- a/runtime/parsec/codelets/codelet_zplgsy.c
+++ b/runtime/parsec/codelets/codelet_zplgsy.c
@@ -54,7 +54,7 @@ void INSERT_TASK_zplgsy( const RUNTIME_option_t *options,
         sizeof(CHAMELEON_Complex64_t), &bump,                          VALUE,
         sizeof(int),               &m,                             VALUE,
         sizeof(int),               &n,                             VALUE,
-        PASSED_BY_REF,             RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | OUTPUT | AFFINITY,
+        PASSED_BY_REF,             RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | OUTPUT | AFFINITY,
         sizeof(int),               &lda,                           VALUE,
         sizeof(int),               &bigM,                          VALUE,
         sizeof(int),               &m0,                            VALUE,
diff --git a/runtime/parsec/codelets/codelet_zplrnt.c b/runtime/parsec/codelets/codelet_zplrnt.c
index 9cca441738428e49f6bff9bcd4587a1b21d0d828..c3a4e1d2c983b60bae81705796e3a224d343c39a 100644
--- a/runtime/parsec/codelets/codelet_zplrnt.c
+++ b/runtime/parsec/codelets/codelet_zplrnt.c
@@ -52,7 +52,7 @@ void INSERT_TASK_zplrnt( const RUNTIME_option_t *options,
         PARSEC_dtd_taskpool, CORE_zplrnt_parsec, options->priority, "zplrnt",
         sizeof(int),       &m,                          VALUE,
         sizeof(int),       &n,                          VALUE,
-        PASSED_BY_REF,     RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | OUTPUT | AFFINITY,
+        PASSED_BY_REF,     RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | OUTPUT | AFFINITY,
         sizeof(int),       &lda,                        VALUE,
         sizeof(int),       &bigM,                       VALUE,
         sizeof(int),       &m0,                         VALUE,
diff --git a/runtime/parsec/codelets/codelet_zpotrf.c b/runtime/parsec/codelets/codelet_zpotrf.c
index 9fd7d443865f3975ffbe2d5e8397078502acf7ab..32928d1b0de9c0626b78af38e3a7e5322ba781f5 100644
--- a/runtime/parsec/codelets/codelet_zpotrf.c
+++ b/runtime/parsec/codelets/codelet_zpotrf.c
@@ -58,7 +58,7 @@ void INSERT_TASK_zpotrf(const RUNTIME_option_t *options,
         PARSEC_dtd_taskpool, CORE_zpotrf_parsec, options->priority, "potrf",
         sizeof(int),    &uplo,                             VALUE,
         sizeof(int),           &n,                                VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
         sizeof(int),           &lda,                              VALUE,
         sizeof(int),           &iinfo,                            VALUE,
         PARSEC_DTD_ARG_END );
diff --git a/runtime/parsec/codelets/codelet_zssssm.c b/runtime/parsec/codelets/codelet_zssssm.c
index 2fde2c15c59af962007e829ae771a06aefd9d4ca..0132f8d75529780f70d4edd5c56caf1053cf7a37 100644
--- a/runtime/parsec/codelets/codelet_zssssm.c
+++ b/runtime/parsec/codelets/codelet_zssssm.c
@@ -67,13 +67,13 @@ void INSERT_TASK_zssssm(const RUNTIME_option_t *options,
         sizeof(int),           &n2,                                VALUE,
         sizeof(int),           &k,                                 VALUE,
         sizeof(int),           &ib,                                VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A1, CHAMELEON_Complex64_t, A1m, A1n ), morse_parsec_get_arena_index( A1 ) | INOUT,
+        PASSED_BY_REF,         RTBLKADDR( A1, CHAMELEON_Complex64_t, A1m, A1n ), chameleon_parsec_get_arena_index( A1 ) | INOUT,
         sizeof(int),           &lda1,                              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A2, CHAMELEON_Complex64_t, A2m, A2n ), morse_parsec_get_arena_index( A2 ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( A2, CHAMELEON_Complex64_t, A2m, A2n ), chameleon_parsec_get_arena_index( A2 ) | INOUT | AFFINITY,
         sizeof(int),           &lda2,                              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( L1, CHAMELEON_Complex64_t, L1m, L1n ), morse_parsec_get_arena_index( L1 ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( L1, CHAMELEON_Complex64_t, L1m, L1n ), chameleon_parsec_get_arena_index( L1 ) | INPUT,
         sizeof(int),           &ldl1,                              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( L2, CHAMELEON_Complex64_t, L2m, L2n ), morse_parsec_get_arena_index( L2 ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( L2, CHAMELEON_Complex64_t, L2m, L2n ), chameleon_parsec_get_arena_index( L2 ) | INPUT,
         sizeof(int),           &ldl2,                              VALUE,
         sizeof(int*),          &IPIV,                              VALUE,
         PARSEC_DTD_ARG_END );
diff --git a/runtime/parsec/codelets/codelet_zsymm.c b/runtime/parsec/codelets/codelet_zsymm.c
index bc2238aae05058a49574517e946f71fa9052a1df..b8b22c0be999d01f574e59617e495081fdbd5374 100644
--- a/runtime/parsec/codelets/codelet_zsymm.c
+++ b/runtime/parsec/codelets/codelet_zsymm.c
@@ -65,12 +65,12 @@ void INSERT_TASK_zsymm(const RUNTIME_option_t *options,
         sizeof(int),            &m,                 VALUE,
         sizeof(int),            &n,                 VALUE,
         sizeof(CHAMELEON_Complex64_t),  &alpha,         VALUE,
-        PASSED_BY_REF,          RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,          RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),            &lda,               VALUE,
-        PASSED_BY_REF,          RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), morse_parsec_get_arena_index( B ) | INPUT,
+        PASSED_BY_REF,          RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), chameleon_parsec_get_arena_index( B ) | INPUT,
         sizeof(int),            &ldb,               VALUE,
         sizeof(CHAMELEON_Complex64_t),  &beta,          VALUE,
-        PASSED_BY_REF,          RTBLKADDR( C, CHAMELEON_Complex64_t, Cm, Cn ), morse_parsec_get_arena_index( C ) | INOUT | AFFINITY,
+        PASSED_BY_REF,          RTBLKADDR( C, CHAMELEON_Complex64_t, Cm, Cn ), chameleon_parsec_get_arena_index( C ) | INOUT | AFFINITY,
         sizeof(int),            &ldc,               VALUE,
         PARSEC_DTD_ARG_END );
 
diff --git a/runtime/parsec/codelets/codelet_zsyr2k.c b/runtime/parsec/codelets/codelet_zsyr2k.c
index 939d238d9bf99f4a8ce9e0d4819b7d8792ae860c..c946247644081516f65ac695ad2257bd6b24090a 100644
--- a/runtime/parsec/codelets/codelet_zsyr2k.c
+++ b/runtime/parsec/codelets/codelet_zsyr2k.c
@@ -65,12 +65,12 @@ void INSERT_TASK_zsyr2k(const RUNTIME_option_t *options,
         sizeof(int),            &n,                     VALUE,
         sizeof(int),            &k,                     VALUE,
         sizeof(CHAMELEON_Complex64_t), &alpha,              VALUE,
-        PASSED_BY_REF,          RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,          RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),            &lda,                   VALUE,
-        PASSED_BY_REF,          RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), morse_parsec_get_arena_index( B ) | INPUT,
+        PASSED_BY_REF,          RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), chameleon_parsec_get_arena_index( B ) | INPUT,
         sizeof(int),            &ldb,                   VALUE,
         sizeof(CHAMELEON_Complex64_t), &beta,               VALUE,
-        PASSED_BY_REF,          RTBLKADDR( C, CHAMELEON_Complex64_t, Cm, Cn ), morse_parsec_get_arena_index( C ) | INOUT | AFFINITY,
+        PASSED_BY_REF,          RTBLKADDR( C, CHAMELEON_Complex64_t, Cm, Cn ), chameleon_parsec_get_arena_index( C ) | INOUT | AFFINITY,
         sizeof(int),            &ldc,                   VALUE,
         PARSEC_DTD_ARG_END );
 
diff --git a/runtime/parsec/codelets/codelet_zsyrk.c b/runtime/parsec/codelets/codelet_zsyrk.c
index ad2de4ef0aaf9469b9db0af229a67dc5231abd3d..53edd1dd51c40bdc74e3be3d343acec57b9874cf 100644
--- a/runtime/parsec/codelets/codelet_zsyrk.c
+++ b/runtime/parsec/codelets/codelet_zsyrk.c
@@ -61,10 +61,10 @@ void INSERT_TASK_zsyrk(const RUNTIME_option_t *options,
         sizeof(int),           &n,                                 VALUE,
         sizeof(int),           &k,                                 VALUE,
         sizeof(CHAMELEON_Complex64_t),           &alpha,               VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),           &lda,                               VALUE,
         sizeof(CHAMELEON_Complex64_t),           &beta,                VALUE,
-        PASSED_BY_REF,         RTBLKADDR( C, CHAMELEON_Complex64_t, Cm, Cn ), morse_parsec_get_arena_index( C ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( C, CHAMELEON_Complex64_t, Cm, Cn ), chameleon_parsec_get_arena_index( C ) | INOUT | AFFINITY,
         sizeof(int),           &ldc,                               VALUE,
         PARSEC_DTD_ARG_END );
 
diff --git a/runtime/parsec/codelets/codelet_zsyssq.c b/runtime/parsec/codelets/codelet_zsyssq.c
index 2729d4302b3a684f2b72c8af70475db831c268a7..0af91ab63effe6e0da76b990238a2284059590ea 100644
--- a/runtime/parsec/codelets/codelet_zsyssq.c
+++ b/runtime/parsec/codelets/codelet_zsyssq.c
@@ -50,7 +50,7 @@ void INSERT_TASK_zsyssq( const RUNTIME_option_t *options,
         PARSEC_dtd_taskpool, CORE_zsyssq_parsec, options->priority, "syssq",
         sizeof(int),     &uplo,                  VALUE,
         sizeof(int),            &n,                     VALUE,
-        PASSED_BY_REF,          RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,          RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),            &lda,                   VALUE,
         PASSED_BY_REF,          RTBLKADDR( SCALESUMSQ, double, SCALESUMSQm, SCALESUMSQn ),    INOUT | AFFINITY,
         PARSEC_DTD_ARG_END );
diff --git a/runtime/parsec/codelets/codelet_zsytrf_nopiv.c b/runtime/parsec/codelets/codelet_zsytrf_nopiv.c
index f2007dea551c0f68c6a4c43385a21e65f876756f..556416cad2ef7b0243f32adbed5f868927b3db31 100644
--- a/runtime/parsec/codelets/codelet_zsytrf_nopiv.c
+++ b/runtime/parsec/codelets/codelet_zsytrf_nopiv.c
@@ -50,7 +50,7 @@ void INSERT_TASK_zsytrf_nopiv(const RUNTIME_option_t *options,
         PARSEC_dtd_taskpool, CORE_zsytrf_nopiv_parsec, options->priority, "sytrf_nopiv",
         sizeof(int),              &uplo,                VALUE,
         sizeof(int),                     &n,                   VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
         sizeof(int),                     &lda,                 VALUE,
         sizeof(int),                     &iinfo,               VALUE,
         PARSEC_DTD_ARG_END );
diff --git a/runtime/parsec/codelets/codelet_ztile_zero.c b/runtime/parsec/codelets/codelet_ztile_zero.c
index db8698666d9aaca7b5c774841dd44b79501ee072..62c779548b48c1198cff96df14aeaa492f50865a 100644
--- a/runtime/parsec/codelets/codelet_ztile_zero.c
+++ b/runtime/parsec/codelets/codelet_ztile_zero.c
@@ -55,7 +55,7 @@ void INSERT_TASK_ztile_zero( const RUNTIME_option_t *options,
         sizeof(int),       &X2,                       VALUE,
         sizeof(int),       &Y1,                       VALUE,
         sizeof(int),       &Y2,                       VALUE,
-        PASSED_BY_REF,     RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | OUTPUT | AFFINITY,
+        PASSED_BY_REF,     RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | OUTPUT | AFFINITY,
         sizeof(int),       &lda,                      VALUE,
         PARSEC_DTD_ARG_END );
 }
diff --git a/runtime/parsec/codelets/codelet_ztplqt.c b/runtime/parsec/codelets/codelet_ztplqt.c
index be4d79941e0d5f50331411c0c68965f1a89950de..78f93a6eca609bf2e404998e65695c19baf7cc42 100644
--- a/runtime/parsec/codelets/codelet_ztplqt.c
+++ b/runtime/parsec/codelets/codelet_ztplqt.c
@@ -61,11 +61,11 @@ void INSERT_TASK_ztplqt( const RUNTIME_option_t *options,
         sizeof(int),   &N,   VALUE,
         sizeof(int),   &L,   VALUE,
         sizeof(int),   &ib,  VALUE,
-        PASSED_BY_REF,  RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INOUT,
+        PASSED_BY_REF,  RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT,
         sizeof(int),   &lda, VALUE,
-        PASSED_BY_REF,  RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), morse_parsec_get_arena_index( B ) | INOUT | AFFINITY,
+        PASSED_BY_REF,  RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), chameleon_parsec_get_arena_index( B ) | INOUT | AFFINITY,
         sizeof(int),   &ldb, VALUE,
-        PASSED_BY_REF,  RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), morse_parsec_get_arena_index( T ) | OUTPUT,
+        PASSED_BY_REF,  RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), chameleon_parsec_get_arena_index( T ) | OUTPUT,
         sizeof(int),   &ldt, VALUE,
         sizeof(CHAMELEON_Complex64_t)*(ib+1)*nb, NULL, SCRATCH,
         PARSEC_DTD_ARG_END );
diff --git a/runtime/parsec/codelets/codelet_ztpmlqt.c b/runtime/parsec/codelets/codelet_ztpmlqt.c
index 9bd0867565d5a17cc1a146f8c8e10694dc47ea4c..5d11278a25273f43814bd537930300be21a14649 100644
--- a/runtime/parsec/codelets/codelet_ztpmlqt.c
+++ b/runtime/parsec/codelets/codelet_ztpmlqt.c
@@ -71,13 +71,13 @@ void INSERT_TASK_ztpmlqt( const RUNTIME_option_t *options,
         sizeof(int),        &K,     VALUE,
         sizeof(int),        &L,     VALUE,
         sizeof(int),        &ib,    VALUE,
-        PASSED_BY_REF,       RTBLKADDR( V, CHAMELEON_Complex64_t, Vm, Vn ), morse_parsec_get_arena_index( V ) | INPUT,
+        PASSED_BY_REF,       RTBLKADDR( V, CHAMELEON_Complex64_t, Vm, Vn ), chameleon_parsec_get_arena_index( V ) | INPUT,
         sizeof(int),        &ldv,   VALUE,
-        PASSED_BY_REF,       RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), morse_parsec_get_arena_index( T ) | INPUT,
+        PASSED_BY_REF,       RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), chameleon_parsec_get_arena_index( T ) | INPUT,
         sizeof(int),        &ldt,   VALUE,
-        PASSED_BY_REF,       RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INOUT,
+        PASSED_BY_REF,       RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT,
         sizeof(int),        &lda,   VALUE,
-        PASSED_BY_REF,       RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), morse_parsec_get_arena_index( B ) | INOUT | AFFINITY,
+        PASSED_BY_REF,       RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), chameleon_parsec_get_arena_index( B ) | INOUT | AFFINITY,
         sizeof(int),        &ldb,   VALUE,
         sizeof(CHAMELEON_Complex64_t)*ib*nb, NULL, SCRATCH,
         PARSEC_DTD_ARG_END );
diff --git a/runtime/parsec/codelets/codelet_ztpmqrt.c b/runtime/parsec/codelets/codelet_ztpmqrt.c
index aa41576c43858c33ddab348b216dd66b133d93aa..3d75cbdc49506b40c919f2907b82e8d15d33e42e 100644
--- a/runtime/parsec/codelets/codelet_ztpmqrt.c
+++ b/runtime/parsec/codelets/codelet_ztpmqrt.c
@@ -71,13 +71,13 @@ void INSERT_TASK_ztpmqrt( const RUNTIME_option_t *options,
         sizeof(int),        &K,     VALUE,
         sizeof(int),        &L,     VALUE,
         sizeof(int),        &ib,    VALUE,
-        PASSED_BY_REF,       RTBLKADDR( V, CHAMELEON_Complex64_t, Vm, Vn ), morse_parsec_get_arena_index( V ) | INPUT,
+        PASSED_BY_REF,       RTBLKADDR( V, CHAMELEON_Complex64_t, Vm, Vn ), chameleon_parsec_get_arena_index( V ) | INPUT,
         sizeof(int),        &ldv,   VALUE,
-        PASSED_BY_REF,       RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), morse_parsec_get_arena_index( T ) | INPUT,
+        PASSED_BY_REF,       RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), chameleon_parsec_get_arena_index( T ) | INPUT,
         sizeof(int),        &ldt,   VALUE,
-        PASSED_BY_REF,       RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INOUT,
+        PASSED_BY_REF,       RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT,
         sizeof(int),        &lda,   VALUE,
-        PASSED_BY_REF,       RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), morse_parsec_get_arena_index( B ) | INOUT | AFFINITY,
+        PASSED_BY_REF,       RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), chameleon_parsec_get_arena_index( B ) | INOUT | AFFINITY,
         sizeof(int),        &ldb,   VALUE,
         sizeof(CHAMELEON_Complex64_t)*ib*nb, NULL, SCRATCH,
         PARSEC_DTD_ARG_END );
diff --git a/runtime/parsec/codelets/codelet_ztpqrt.c b/runtime/parsec/codelets/codelet_ztpqrt.c
index b12a7f249788c4e554080afc2059a1ad578d676f..7795873a017f9f46fec2518dde169c07b5e18fbf 100644
--- a/runtime/parsec/codelets/codelet_ztpqrt.c
+++ b/runtime/parsec/codelets/codelet_ztpqrt.c
@@ -61,11 +61,11 @@ void INSERT_TASK_ztpqrt( const RUNTIME_option_t *options,
         sizeof(int),   &N,   VALUE,
         sizeof(int),   &L,   VALUE,
         sizeof(int),   &ib,  VALUE,
-        PASSED_BY_REF,  RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INOUT,
+        PASSED_BY_REF,  RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT,
         sizeof(int),   &lda, VALUE,
-        PASSED_BY_REF,  RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), morse_parsec_get_arena_index( B ) | INOUT | AFFINITY,
+        PASSED_BY_REF,  RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), chameleon_parsec_get_arena_index( B ) | INOUT | AFFINITY,
         sizeof(int),   &ldb, VALUE,
-        PASSED_BY_REF,  RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), morse_parsec_get_arena_index( T ) | OUTPUT,
+        PASSED_BY_REF,  RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), chameleon_parsec_get_arena_index( T ) | OUTPUT,
         sizeof(int),   &ldt, VALUE,
         sizeof(CHAMELEON_Complex64_t)*(ib+1)*nb, NULL, SCRATCH,
         PARSEC_DTD_ARG_END );
diff --git a/runtime/parsec/codelets/codelet_ztradd.c b/runtime/parsec/codelets/codelet_ztradd.c
index 421e5ce3bca348282a415e239c3b8b501967b75f..33a59dd72af88388b28ce943f3ced6dffe83d9c2 100644
--- a/runtime/parsec/codelets/codelet_ztradd.c
+++ b/runtime/parsec/codelets/codelet_ztradd.c
@@ -121,10 +121,10 @@ void INSERT_TASK_ztradd(const RUNTIME_option_t *options,
         sizeof(int),               &m,     VALUE,
         sizeof(int),               &n,     VALUE,
         sizeof(CHAMELEON_Complex64_t), &alpha, VALUE,
-        PASSED_BY_REF,              RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,              RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),               &lda,   VALUE,
         sizeof(CHAMELEON_Complex64_t), &beta,  VALUE,
-        PASSED_BY_REF,              RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), morse_parsec_get_arena_index( B ) | INOUT | AFFINITY,
+        PASSED_BY_REF,              RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), chameleon_parsec_get_arena_index( B ) | INOUT | AFFINITY,
         sizeof(int),               &ldb,   VALUE,
         PARSEC_DTD_ARG_END );
 
diff --git a/runtime/parsec/codelets/codelet_ztrasm.c b/runtime/parsec/codelets/codelet_ztrasm.c
index b7ee1825541fd9e2a4b92051c73aa0b0cf81e37e..390b2ca9a8ca608c3a0acca11ec3d2ffba1e08f4 100644
--- a/runtime/parsec/codelets/codelet_ztrasm.c
+++ b/runtime/parsec/codelets/codelet_ztrasm.c
@@ -56,7 +56,7 @@ void INSERT_TASK_ztrasm(const RUNTIME_option_t *options,
         sizeof(int),     &diag,                  VALUE,
         sizeof(int),            &M,                     VALUE,
         sizeof(int),            &N,                     VALUE,
-        PASSED_BY_REF,          RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,          RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),            &lda,                   VALUE,
         PASSED_BY_REF,          RTBLKADDR( B, double, Bm, Bn ),     INOUT | AFFINITY,
         PARSEC_DTD_ARG_END );
diff --git a/runtime/parsec/codelets/codelet_ztrmm.c b/runtime/parsec/codelets/codelet_ztrmm.c
index afe1484d565208f3ef46dab56e31ddf83dee79a6..9b8769aa278aa64aaf067fdbfc973d7ef6cb7385 100644
--- a/runtime/parsec/codelets/codelet_ztrmm.c
+++ b/runtime/parsec/codelets/codelet_ztrmm.c
@@ -66,9 +66,9 @@ void INSERT_TASK_ztrmm(const RUNTIME_option_t *options,
         sizeof(int),            &m,                     VALUE,
         sizeof(int),            &n,                     VALUE,
         sizeof(CHAMELEON_Complex64_t),         &alpha,      VALUE,
-        PASSED_BY_REF,          RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,          RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),            &lda,                   VALUE,
-        PASSED_BY_REF,          RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), morse_parsec_get_arena_index( B ) | INOUT | AFFINITY,
+        PASSED_BY_REF,          RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), chameleon_parsec_get_arena_index( B ) | INOUT | AFFINITY,
         sizeof(int),            &ldb,                   VALUE,
         PARSEC_DTD_ARG_END );
 
diff --git a/runtime/parsec/codelets/codelet_ztrsm.c b/runtime/parsec/codelets/codelet_ztrsm.c
index b7d0a17e3b13ccd1bb8a8f6a0cfe507ab188a547..e7b135e81a6d4bacccdb13670550ffa94bec087f 100644
--- a/runtime/parsec/codelets/codelet_ztrsm.c
+++ b/runtime/parsec/codelets/codelet_ztrsm.c
@@ -58,9 +58,9 @@ void INSERT_TASK_ztrsm(const RUNTIME_option_t *options,
         sizeof(int),           &m,                        VALUE,
         sizeof(int),           &n,                        VALUE,
         sizeof(CHAMELEON_Complex64_t),           &alpha,      VALUE,
-        PASSED_BY_REF,     RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,     RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),           &lda,                      VALUE,
-        PASSED_BY_REF,     RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), morse_parsec_get_arena_index( B ) | INOUT | AFFINITY,
+        PASSED_BY_REF,     RTBLKADDR( B, CHAMELEON_Complex64_t, Bm, Bn ), chameleon_parsec_get_arena_index( B ) | INOUT | AFFINITY,
         sizeof(int),           &ldb,                      VALUE,
         PARSEC_DTD_ARG_END );
 
diff --git a/runtime/parsec/codelets/codelet_ztrssq.c b/runtime/parsec/codelets/codelet_ztrssq.c
index 7f888fc2109c6f319a1852a298a34f059f8c1e54..ce7346e8c80a613772469e387fcfe76abdf8976a 100644
--- a/runtime/parsec/codelets/codelet_ztrssq.c
+++ b/runtime/parsec/codelets/codelet_ztrssq.c
@@ -55,7 +55,7 @@ void INSERT_TASK_ztrssq( const RUNTIME_option_t *options,
         sizeof(int),     &diag,                  VALUE,
         sizeof(int),            &m,                     VALUE,
         sizeof(int),            &n,                     VALUE,
-        PASSED_BY_REF,          RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,          RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),            &lda,                   VALUE,
         PASSED_BY_REF,          RTBLKADDR( SCALESUMSQ, double, SCALESUMSQm, SCALESUMSQn ),    INOUT | AFFINITY,
         PARSEC_DTD_ARG_END );
diff --git a/runtime/parsec/codelets/codelet_ztrtri.c b/runtime/parsec/codelets/codelet_ztrtri.c
index 18b4498acd98945ada1071af5f5cc9309a6fd828..e4eb4b3e09d9f1cab5633d3e8d13ccc8dd1c3bc6 100644
--- a/runtime/parsec/codelets/codelet_ztrtri.c
+++ b/runtime/parsec/codelets/codelet_ztrtri.c
@@ -54,7 +54,7 @@ void INSERT_TASK_ztrtri( const RUNTIME_option_t *options,
         sizeof(int),         &uplo,                  VALUE,
         sizeof(int),         &diag,                  VALUE,
         sizeof(int),                &n,                     VALUE,
-        PASSED_BY_REF,              RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INOUT | AFFINITY,
+        PASSED_BY_REF,              RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
         sizeof(int),                &lda,                   VALUE,
         sizeof(int),                &iinfo,                 VALUE,
         PARSEC_DTD_ARG_END );
diff --git a/runtime/parsec/codelets/codelet_ztslqt.c b/runtime/parsec/codelets/codelet_ztslqt.c
index 2aaf1764919a9dab607f96dcf91ff0eb1ce0478c..7f77c06d1939c2639ce33642218e516619ebdffa 100644
--- a/runtime/parsec/codelets/codelet_ztslqt.c
+++ b/runtime/parsec/codelets/codelet_ztslqt.c
@@ -58,11 +58,11 @@ void INSERT_TASK_ztslqt(const RUNTIME_option_t *options,
         sizeof(int),            &m,                     VALUE,
         sizeof(int),            &n,                     VALUE,
         sizeof(int),            &ib,                    VALUE,
-        PASSED_BY_REF,          RTBLKADDR( A1, CHAMELEON_Complex64_t, A1m, A1n ), morse_parsec_get_arena_index( A1 ) | INOUT,
+        PASSED_BY_REF,          RTBLKADDR( A1, CHAMELEON_Complex64_t, A1m, A1n ), chameleon_parsec_get_arena_index( A1 ) | INOUT,
         sizeof(int),            &lda1,                  VALUE,
-        PASSED_BY_REF,          RTBLKADDR( A2, CHAMELEON_Complex64_t, A2m, A2n ), morse_parsec_get_arena_index( A2 ) | INOUT | AFFINITY,
+        PASSED_BY_REF,          RTBLKADDR( A2, CHAMELEON_Complex64_t, A2m, A2n ), chameleon_parsec_get_arena_index( A2 ) | INOUT | AFFINITY,
         sizeof(int),            &lda2,                  VALUE,
-        PASSED_BY_REF,          RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), morse_parsec_get_arena_index( T ) | OUTPUT,
+        PASSED_BY_REF,          RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), chameleon_parsec_get_arena_index( T ) | OUTPUT,
         sizeof(int),                        &ldt,       VALUE,
         sizeof(CHAMELEON_Complex64_t)*nb,       NULL,       SCRATCH,
         sizeof(CHAMELEON_Complex64_t)*ib*nb,    NULL,       SCRATCH,
diff --git a/runtime/parsec/codelets/codelet_ztsmlq.c b/runtime/parsec/codelets/codelet_ztsmlq.c
index 13e3bd3c0ac18ca1fea8d118ee9f9a41391c11cc..da84611eaaaff29aa27281faa5292a060e64ee1f 100644
--- a/runtime/parsec/codelets/codelet_ztsmlq.c
+++ b/runtime/parsec/codelets/codelet_ztsmlq.c
@@ -75,13 +75,13 @@ void INSERT_TASK_ztsmlq(const RUNTIME_option_t *options,
         sizeof(int),                        &n2,        VALUE,
         sizeof(int),                        &k,         VALUE,
         sizeof(int),                        &ib,        VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A1, CHAMELEON_Complex64_t, A1m, A1n ), morse_parsec_get_arena_index( A1 ) | INOUT,
+        PASSED_BY_REF,         RTBLKADDR( A1, CHAMELEON_Complex64_t, A1m, A1n ), chameleon_parsec_get_arena_index( A1 ) | INOUT,
         sizeof(int),           &lda1,                   VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A2, CHAMELEON_Complex64_t, A2m, A2n ), morse_parsec_get_arena_index( A2 ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( A2, CHAMELEON_Complex64_t, A2m, A2n ), chameleon_parsec_get_arena_index( A2 ) | INOUT | AFFINITY,
         sizeof(int),           &lda2,                   VALUE,
-        PASSED_BY_REF,         RTBLKADDR( V, CHAMELEON_Complex64_t, Vm, Vn ), morse_parsec_get_arena_index( V ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( V, CHAMELEON_Complex64_t, Vm, Vn ), chameleon_parsec_get_arena_index( V ) | INPUT,
         sizeof(int),           &ldv,                    VALUE,
-        PASSED_BY_REF,         RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), morse_parsec_get_arena_index( T ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), chameleon_parsec_get_arena_index( T ) | INPUT,
         sizeof(int),           &ldt,                    VALUE,
         sizeof(CHAMELEON_Complex64_t)*ib*nb,    NULL,       SCRATCH,
         sizeof(int),           &ldwork,                 VALUE,
diff --git a/runtime/parsec/codelets/codelet_ztsmqr.c b/runtime/parsec/codelets/codelet_ztsmqr.c
index 56e959983dd9d14c39d8eefe0c92bc601ebad738..e586540c165c18dbb3cea282139ea4fe3dba34ed 100644
--- a/runtime/parsec/codelets/codelet_ztsmqr.c
+++ b/runtime/parsec/codelets/codelet_ztsmqr.c
@@ -75,13 +75,13 @@ void INSERT_TASK_ztsmqr(const RUNTIME_option_t *options,
         sizeof(int),           &n2,                                VALUE,
         sizeof(int),           &k,                                 VALUE,
         sizeof(int),           &ib,                                VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A1, CHAMELEON_Complex64_t, A1m, A1n ), morse_parsec_get_arena_index( A1 ) | INOUT,
+        PASSED_BY_REF,         RTBLKADDR( A1, CHAMELEON_Complex64_t, A1m, A1n ), chameleon_parsec_get_arena_index( A1 ) | INOUT,
         sizeof(int),           &lda1,                              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A2, CHAMELEON_Complex64_t, A2m, A2n ), morse_parsec_get_arena_index( A2 ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( A2, CHAMELEON_Complex64_t, A2m, A2n ), chameleon_parsec_get_arena_index( A2 ) | INOUT | AFFINITY,
         sizeof(int),           &lda2,                              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( V, CHAMELEON_Complex64_t, Vm, Vn ), morse_parsec_get_arena_index( V ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( V, CHAMELEON_Complex64_t, Vm, Vn ), chameleon_parsec_get_arena_index( V ) | INPUT,
         sizeof(int),           &ldv,                               VALUE,
-        PASSED_BY_REF,         RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), morse_parsec_get_arena_index( T ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), chameleon_parsec_get_arena_index( T ) | INPUT,
         sizeof(int),           &ldt,                               VALUE,
         sizeof(CHAMELEON_Complex64_t)*ib*nb,    NULL,                  SCRATCH,
         sizeof(int),           &ldwork,                            VALUE,
diff --git a/runtime/parsec/codelets/codelet_ztsqrt.c b/runtime/parsec/codelets/codelet_ztsqrt.c
index 2ee68ab930a42aadb6b99b3120f7662158ae105c..a2b31fcea6c8036165361786ff1a4263a9b5ba7f 100644
--- a/runtime/parsec/codelets/codelet_ztsqrt.c
+++ b/runtime/parsec/codelets/codelet_ztsqrt.c
@@ -58,11 +58,11 @@ void INSERT_TASK_ztsqrt(const RUNTIME_option_t *options,
         sizeof(int),    &m,                                 VALUE,
         sizeof(int),           &n,                                 VALUE,
         sizeof(int),           &ib,                                VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A1, CHAMELEON_Complex64_t, A1m, A1n ), morse_parsec_get_arena_index( A1 ) | INOUT,
+        PASSED_BY_REF,         RTBLKADDR( A1, CHAMELEON_Complex64_t, A1m, A1n ), chameleon_parsec_get_arena_index( A1 ) | INOUT,
         sizeof(int),           &lda1,                              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A2, CHAMELEON_Complex64_t, A2m, A2n ), morse_parsec_get_arena_index( A2 ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( A2, CHAMELEON_Complex64_t, A2m, A2n ), chameleon_parsec_get_arena_index( A2 ) | INOUT | AFFINITY,
         sizeof(int),           &lda2,                              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), morse_parsec_get_arena_index( T ) | OUTPUT,
+        PASSED_BY_REF,         RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), chameleon_parsec_get_arena_index( T ) | OUTPUT,
         sizeof(int),           &ldt,                               VALUE,
         sizeof(CHAMELEON_Complex64_t)*nb,       NULL,                  SCRATCH,
         sizeof(CHAMELEON_Complex64_t)*ib*nb,    NULL,                  SCRATCH,
diff --git a/runtime/parsec/codelets/codelet_ztstrf.c b/runtime/parsec/codelets/codelet_ztstrf.c
index 913a88304f24c97b720029d5b873d23f0592b749..d5ab7a779ca2e192fc8ce42618049fd0d14f9052 100644
--- a/runtime/parsec/codelets/codelet_ztstrf.c
+++ b/runtime/parsec/codelets/codelet_ztstrf.c
@@ -67,11 +67,11 @@ void INSERT_TASK_ztstrf(const RUNTIME_option_t *options,
         sizeof(int),           &n,                                VALUE,
         sizeof(int),           &ib,                               VALUE,
         sizeof(int),           &nb,                               VALUE,
-        PASSED_BY_REF,         RTBLKADDR( U, CHAMELEON_Complex64_t, Um, Un ), morse_parsec_get_arena_index( U ) | INOUT,
+        PASSED_BY_REF,         RTBLKADDR( U, CHAMELEON_Complex64_t, Um, Un ), chameleon_parsec_get_arena_index( U ) | INOUT,
         sizeof(int),           &ldu,                              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INOUT | AFFINITY,
         sizeof(int),           &lda,                              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( L, CHAMELEON_Complex64_t, Lm, Ln ), morse_parsec_get_arena_index( L ) | OUTPUT,
+        PASSED_BY_REF,         RTBLKADDR( L, CHAMELEON_Complex64_t, Lm, Ln ), chameleon_parsec_get_arena_index( L ) | OUTPUT,
         sizeof(int),           &ldl,                              VALUE,
         sizeof(int*),          &IPIV,                             VALUE,
         sizeof(CHAMELEON_Complex64_t)*ib*nb,    NULL,                 SCRATCH,
diff --git a/runtime/parsec/codelets/codelet_zttlqt.c b/runtime/parsec/codelets/codelet_zttlqt.c
index 42ffa0f221aa34138e4c55872d9646279077e80a..a927d981b5f5d14c9055e1dddfad8faeaaddbc46 100644
--- a/runtime/parsec/codelets/codelet_zttlqt.c
+++ b/runtime/parsec/codelets/codelet_zttlqt.c
@@ -59,11 +59,11 @@ void INSERT_TASK_zttlqt(const RUNTIME_option_t *options,
         sizeof(int),            &m,                     VALUE,
         sizeof(int),            &n,                     VALUE,
         sizeof(int),            &ib,                    VALUE,
-        PASSED_BY_REF,          RTBLKADDR( A1, CHAMELEON_Complex64_t, A1m, A1n ), morse_parsec_get_arena_index( A1 ) | INOUT,
+        PASSED_BY_REF,          RTBLKADDR( A1, CHAMELEON_Complex64_t, A1m, A1n ), chameleon_parsec_get_arena_index( A1 ) | INOUT,
         sizeof(int),            &lda1,                  VALUE,
-        PASSED_BY_REF,          RTBLKADDR( A2, CHAMELEON_Complex64_t, A2m, A2n ), morse_parsec_get_arena_index( A2 ) | INOUT | AFFINITY,
+        PASSED_BY_REF,          RTBLKADDR( A2, CHAMELEON_Complex64_t, A2m, A2n ), chameleon_parsec_get_arena_index( A2 ) | INOUT | AFFINITY,
         sizeof(int),            &lda2,                  VALUE,
-        PASSED_BY_REF,          RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), morse_parsec_get_arena_index( T ) | OUTPUT,
+        PASSED_BY_REF,          RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), chameleon_parsec_get_arena_index( T ) | OUTPUT,
         sizeof(int),            &ldt,                   VALUE,
         sizeof(CHAMELEON_Complex64_t)*nb,       NULL,       SCRATCH,
         sizeof(CHAMELEON_Complex64_t)*ib*nb,    NULL,       SCRATCH,
diff --git a/runtime/parsec/codelets/codelet_zttmlq.c b/runtime/parsec/codelets/codelet_zttmlq.c
index 1b798ed951465f3d16993eef87cb134f24cc9ef6..f7d5a024fe3e8047b23ceaa32e1837eb6690cc25 100644
--- a/runtime/parsec/codelets/codelet_zttmlq.c
+++ b/runtime/parsec/codelets/codelet_zttmlq.c
@@ -75,13 +75,13 @@ void INSERT_TASK_zttmlq(const RUNTIME_option_t *options,
         sizeof(int),            &n2,                        VALUE,
         sizeof(int),            &k,                         VALUE,
         sizeof(int),            &ib,                        VALUE,
-        PASSED_BY_REF,          RTBLKADDR( A1, CHAMELEON_Complex64_t, A1m, A1n ), morse_parsec_get_arena_index( A1 ) | INOUT,
+        PASSED_BY_REF,          RTBLKADDR( A1, CHAMELEON_Complex64_t, A1m, A1n ), chameleon_parsec_get_arena_index( A1 ) | INOUT,
         sizeof(int),            &lda1,                      VALUE,
-        PASSED_BY_REF,          RTBLKADDR( A2, CHAMELEON_Complex64_t, A2m, A2n ), morse_parsec_get_arena_index( A2 ) | INOUT | AFFINITY,
+        PASSED_BY_REF,          RTBLKADDR( A2, CHAMELEON_Complex64_t, A2m, A2n ), chameleon_parsec_get_arena_index( A2 ) | INOUT | AFFINITY,
         sizeof(int),            &lda2,                      VALUE,
-        PASSED_BY_REF,          RTBLKADDR( V, CHAMELEON_Complex64_t, Vm, Vn ), morse_parsec_get_arena_index( V ) | INPUT,
+        PASSED_BY_REF,          RTBLKADDR( V, CHAMELEON_Complex64_t, Vm, Vn ), chameleon_parsec_get_arena_index( V ) | INPUT,
         sizeof(int),            &ldv,                       VALUE,
-        PASSED_BY_REF,          RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), morse_parsec_get_arena_index( T ) | INPUT,
+        PASSED_BY_REF,          RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), chameleon_parsec_get_arena_index( T ) | INPUT,
         sizeof(int),            &ldt,                       VALUE,
         sizeof(CHAMELEON_Complex64_t)*ib*nb,    NULL,           SCRATCH,
         sizeof(int),            &ldwork,                    VALUE,
diff --git a/runtime/parsec/codelets/codelet_zttmqr.c b/runtime/parsec/codelets/codelet_zttmqr.c
index a27607ad22b382686183e24d29e912241847e3f1..a0f9de9d708f7a03181b218dbf2678a4737651e3 100644
--- a/runtime/parsec/codelets/codelet_zttmqr.c
+++ b/runtime/parsec/codelets/codelet_zttmqr.c
@@ -76,13 +76,13 @@ void INSERT_TASK_zttmqr(const RUNTIME_option_t *options,
         sizeof(int),           &n2,                               VALUE,
         sizeof(int),           &k,                                VALUE,
         sizeof(int),           &ib,                               VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A1, CHAMELEON_Complex64_t, A1m, A1n ), morse_parsec_get_arena_index( A1 ) | INOUT,
+        PASSED_BY_REF,         RTBLKADDR( A1, CHAMELEON_Complex64_t, A1m, A1n ), chameleon_parsec_get_arena_index( A1 ) | INOUT,
         sizeof(int),           &lda1,                             VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A2, CHAMELEON_Complex64_t, A2m, A2n ), morse_parsec_get_arena_index( A2 ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( A2, CHAMELEON_Complex64_t, A2m, A2n ), chameleon_parsec_get_arena_index( A2 ) | INOUT | AFFINITY,
         sizeof(int),           &lda2,                             VALUE,
-        PASSED_BY_REF,         RTBLKADDR( V, CHAMELEON_Complex64_t, Vm, Vn ), morse_parsec_get_arena_index( V ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( V, CHAMELEON_Complex64_t, Vm, Vn ), chameleon_parsec_get_arena_index( V ) | INPUT,
         sizeof(int),           &ldv,                              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), morse_parsec_get_arena_index( T ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), chameleon_parsec_get_arena_index( T ) | INPUT,
         sizeof(int),           &ldt,                              VALUE,
         sizeof(CHAMELEON_Complex64_t)*ib*nb,    NULL,                            SCRATCH,
         sizeof(int),           &ldwork,                           VALUE,
diff --git a/runtime/parsec/codelets/codelet_zttqrt.c b/runtime/parsec/codelets/codelet_zttqrt.c
index f0894cf86d4d8b7941ae4e12385eb618c66c9e33..05ae51e3a9679d0fd87e9c6ac33fd9af49545580 100644
--- a/runtime/parsec/codelets/codelet_zttqrt.c
+++ b/runtime/parsec/codelets/codelet_zttqrt.c
@@ -58,11 +58,11 @@ void INSERT_TASK_zttqrt(const RUNTIME_option_t *options,
         sizeof(int),    &m,                                 VALUE,
         sizeof(int),           &n,                                 VALUE,
         sizeof(int),           &ib,                                VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A1, CHAMELEON_Complex64_t, A1m, A1n ), morse_parsec_get_arena_index( A1 ) | INOUT,
+        PASSED_BY_REF,         RTBLKADDR( A1, CHAMELEON_Complex64_t, A1m, A1n ), chameleon_parsec_get_arena_index( A1 ) | INOUT,
         sizeof(int),           &lda1,                              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A2, CHAMELEON_Complex64_t, A2m, A2n ), morse_parsec_get_arena_index( A2 ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( A2, CHAMELEON_Complex64_t, A2m, A2n ), chameleon_parsec_get_arena_index( A2 ) | INOUT | AFFINITY,
         sizeof(int),           &lda2,                              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), morse_parsec_get_arena_index( T ) | OUTPUT,
+        PASSED_BY_REF,         RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), chameleon_parsec_get_arena_index( T ) | OUTPUT,
         sizeof(int),           &ldt,                               VALUE,
         sizeof(CHAMELEON_Complex64_t)*nb,       NULL,                  SCRATCH,
         sizeof(CHAMELEON_Complex64_t)*ib*nb,    NULL,                  SCRATCH,
diff --git a/runtime/parsec/codelets/codelet_zunmlq.c b/runtime/parsec/codelets/codelet_zunmlq.c
index 6cdac94394b1a95fd5db46133ba370a222071dd6..5a0d1c846fd5bd148692ccba81518d61ad6e1fee 100644
--- a/runtime/parsec/codelets/codelet_zunmlq.c
+++ b/runtime/parsec/codelets/codelet_zunmlq.c
@@ -66,11 +66,11 @@ void INSERT_TASK_zunmlq(const RUNTIME_option_t *options,
         sizeof(int),                        &n,                 VALUE,
         sizeof(int),                        &k,                 VALUE,
         sizeof(int),                        &ib,                VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),                        &lda,               VALUE,
-        PASSED_BY_REF,         RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), morse_parsec_get_arena_index( T ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), chameleon_parsec_get_arena_index( T ) | INPUT,
         sizeof(int),                        &ldt,               VALUE,
-        PASSED_BY_REF,         RTBLKADDR( C, CHAMELEON_Complex64_t, Cm, Cn ), morse_parsec_get_arena_index( C ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( C, CHAMELEON_Complex64_t, Cm, Cn ), chameleon_parsec_get_arena_index( C ) | INOUT | AFFINITY,
         sizeof(int),                        &ldc,               VALUE,
         sizeof(CHAMELEON_Complex64_t)*ib*nb,    NULL,               SCRATCH,
         sizeof(int),                        &nb,                VALUE,
diff --git a/runtime/parsec/codelets/codelet_zunmqr.c b/runtime/parsec/codelets/codelet_zunmqr.c
index 460c76ab5fc789e63da811d5c42d8e317bd62879..855b7e3ddc46b6f492bceaf490e538792e655301 100644
--- a/runtime/parsec/codelets/codelet_zunmqr.c
+++ b/runtime/parsec/codelets/codelet_zunmqr.c
@@ -66,11 +66,11 @@ void INSERT_TASK_zunmqr(const RUNTIME_option_t *options,
         sizeof(int),           &n,                                 VALUE,
         sizeof(int),           &k,                                 VALUE,
         sizeof(int),           &ib,                                VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), morse_parsec_get_arena_index( A ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( A, CHAMELEON_Complex64_t, Am, An ), chameleon_parsec_get_arena_index( A ) | INPUT,
         sizeof(int),           &lda,                               VALUE,
-        PASSED_BY_REF,         RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), morse_parsec_get_arena_index( T ) | INPUT,
+        PASSED_BY_REF,         RTBLKADDR( T, CHAMELEON_Complex64_t, Tm, Tn ), chameleon_parsec_get_arena_index( T ) | INPUT,
         sizeof(int),           &ldt,                               VALUE,
-        PASSED_BY_REF,         RTBLKADDR( C, CHAMELEON_Complex64_t, Cm, Cn ), morse_parsec_get_arena_index( C ) | INOUT | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( C, CHAMELEON_Complex64_t, Cm, Cn ), chameleon_parsec_get_arena_index( C ) | INOUT | AFFINITY,
         sizeof(int),           &ldc,                               VALUE,
         sizeof(CHAMELEON_Complex64_t)*ib*nb,   NULL,                          SCRATCH,
         sizeof(int),           &nb,                                VALUE,
diff --git a/runtime/parsec/control/runtime_async.c b/runtime/parsec/control/runtime_async.c
index b19060218616a62a7347e3d213f5204fea2cdefa..d0cf0c5080c3c8ebfc0015e8b7b6e22025f6c266 100644
--- a/runtime/parsec/control/runtime_async.c
+++ b/runtime/parsec/control/runtime_async.c
@@ -23,10 +23,10 @@
 /**
  *  Create a sequence
  */
-int RUNTIME_sequence_create( CHAM_context_t  *morse,
+int RUNTIME_sequence_create( CHAM_context_t  *chamctxt,
                              RUNTIME_sequence_t *sequence )
 {
-    parsec_context_t  *parsec        = (parsec_context_t *)(morse->schedopt);
+    parsec_context_t  *parsec        = (parsec_context_t *)(chamctxt->schedopt);
     parsec_taskpool_t *parsec_dtd_tp = parsec_dtd_taskpool_new();
 
     parsec_enqueue( parsec, (parsec_taskpool_t *)parsec_dtd_tp );
@@ -40,10 +40,10 @@ int RUNTIME_sequence_create( CHAM_context_t  *morse,
 /**
  *  Destroy a sequence
  */
-int RUNTIME_sequence_destroy( CHAM_context_t  *morse,
+int RUNTIME_sequence_destroy( CHAM_context_t  *chamctxt,
                               RUNTIME_sequence_t *sequence )
 {
-    parsec_context_t  *parsec = (parsec_context_t *)(morse->schedopt);
+    parsec_context_t  *parsec = (parsec_context_t *)(chamctxt->schedopt);
     parsec_taskpool_t *parsec_dtd_tp = (parsec_taskpool_t *)(sequence->schedopt);
 
     assert( parsec_dtd_tp );
@@ -57,10 +57,10 @@ int RUNTIME_sequence_destroy( CHAM_context_t  *morse,
 /**
  *  Wait for the completion of a sequence
  */
-int RUNTIME_sequence_wait( CHAM_context_t  *morse,
+int RUNTIME_sequence_wait( CHAM_context_t  *chamctxt,
                            RUNTIME_sequence_t *sequence )
 {
-    parsec_context_t  *parsec = (parsec_context_t *)morse->schedopt;
+    parsec_context_t  *parsec = (parsec_context_t *)chamctxt->schedopt;
     parsec_taskpool_t *parsec_dtd_tp = (parsec_taskpool_t *) sequence->schedopt;
 
     assert( parsec_dtd_tp );
@@ -72,7 +72,7 @@ int RUNTIME_sequence_wait( CHAM_context_t  *morse,
 /**
  *  Terminate a sequence
  */
-void RUNTIME_sequence_flush( CHAM_context_t  *morse,
+void RUNTIME_sequence_flush( CHAM_context_t  *chamctxt,
                              RUNTIME_sequence_t *sequence,
                              RUNTIME_request_t  *request,
                              int status )
@@ -80,6 +80,6 @@ void RUNTIME_sequence_flush( CHAM_context_t  *morse,
     sequence->request = request;
     sequence->status = status;
     request->status = status;
-    (void)morse;
+    (void)chamctxt;
     return;
 }
diff --git a/runtime/parsec/control/runtime_context.c b/runtime/parsec/control/runtime_context.c
index b52c6731675df5fd89a03bccd820964d646417b1..e29a149f55c6b4da8b6b319ec166e0be34132a12 100644
--- a/runtime/parsec/control/runtime_context.c
+++ b/runtime/parsec/control/runtime_context.c
@@ -23,19 +23,19 @@
 /**
  *  Create new context
  */
-void RUNTIME_context_create( CHAM_context_t *morse )
+void RUNTIME_context_create( CHAM_context_t *chamctxt )
 {
     /* In case of PaRSEC, this is done in init */
-    morse->scheduler = RUNTIME_SCHED_PARSEC;
+    chamctxt->scheduler = RUNTIME_SCHED_PARSEC;
     return;
 }
 
 /**
  *  Clean the context
  */
-void RUNTIME_context_destroy( CHAM_context_t *morse )
+void RUNTIME_context_destroy( CHAM_context_t *chamctxt )
 {
-    (void)morse;
+    (void)chamctxt;
     return;
 }
 
diff --git a/runtime/parsec/control/runtime_control.c b/runtime/parsec/control/runtime_control.c
index f9005b49a3643c0c8514c6bb287a5c24dd80d23d..1e4567f3ac1d4439d0e2b31cfc17ad81158232ab 100644
--- a/runtime/parsec/control/runtime_control.c
+++ b/runtime/parsec/control/runtime_control.c
@@ -28,7 +28,7 @@
 /**
  * Initialize CHAMELEON
  */
-int RUNTIME_init( CHAM_context_t *morse,
+int RUNTIME_init( CHAM_context_t *chamctxt,
                   int ncpus,
                   int ncudas,
                   int nthreads_per_worker )
@@ -41,12 +41,12 @@ int RUNTIME_init( CHAM_context_t *morse,
     if( 0 < ncpus ) {
         default_ncores = ncpus;
     }
-    morse->parallel_enabled = CHAMELEON_TRUE;
-    morse->schedopt = (void *)parsec_init(default_ncores, argc, NULL);
+    chamctxt->parallel_enabled = CHAMELEON_TRUE;
+    chamctxt->schedopt = (void *)parsec_init(default_ncores, argc, NULL);
 
-    if(NULL != morse->schedopt) {
-        morse->nworkers = ncpus;
-        morse->nthreads_per_worker = nthreads_per_worker;
+    if(NULL != chamctxt->schedopt) {
+        chamctxt->nworkers = ncpus;
+        chamctxt->nthreads_per_worker = nthreads_per_worker;
         hres = 0;
     }
 
@@ -59,9 +59,9 @@ int RUNTIME_init( CHAM_context_t *morse,
 /**
  * Finalize CHAMELEON
  */
-void RUNTIME_finalize( CHAM_context_t *morse )
+void RUNTIME_finalize( CHAM_context_t *chamctxt )
 {
-    parsec_context_t *parsec = (parsec_context_t*)morse->schedopt;
+    parsec_context_t *parsec = (parsec_context_t*)chamctxt->schedopt;
     parsec_fini(&parsec);
     return;
 }
@@ -69,9 +69,9 @@ void RUNTIME_finalize( CHAM_context_t *morse )
 /**
  *  To suspend the processing of new tasks by workers
  */
-void RUNTIME_pause( CHAM_context_t *morse )
+void RUNTIME_pause( CHAM_context_t *chamctxt )
 {
-    (void)morse;
+    (void)chamctxt;
     return;
 }
 
@@ -79,18 +79,18 @@ void RUNTIME_pause( CHAM_context_t *morse )
  *  This is the symmetrical call to RUNTIME_pause,
  *  used to resume the workers polling for new tasks.
  */
-void RUNTIME_resume( CHAM_context_t *morse )
+void RUNTIME_resume( CHAM_context_t *chamctxt )
 {
-    (void)morse;
+    (void)chamctxt;
     return;
 }
 
 /**
  * Barrier CHAMELEON.
  */
-void RUNTIME_barrier( CHAM_context_t *morse )
+void RUNTIME_barrier( CHAM_context_t *chamctxt )
 {
-    parsec_context_t *parsec = (parsec_context_t*)(morse->schedopt);
+    parsec_context_t *parsec = (parsec_context_t*)(chamctxt->schedopt);
     // This will be a problem with the fake tasks inserted to detect end of DTD algorithms
     parsec_context_wait( parsec );
     return;
@@ -99,56 +99,56 @@ void RUNTIME_barrier( CHAM_context_t *morse )
 /**
  *  Display a progress information when executing the tasks
  */
-void RUNTIME_progress( CHAM_context_t *morse )
+void RUNTIME_progress( CHAM_context_t *chamctxt )
 {
-    (void)morse;
+    (void)chamctxt;
     return;
 }
 
 /**
  * Thread rank.
  */
-int RUNTIME_thread_rank( CHAM_context_t *morse )
+int RUNTIME_thread_rank( CHAM_context_t *chamctxt )
 {
-    (void)morse;
+    (void)chamctxt;
     return 0;
 }
 
 /**
  * Thread rank.
  */
-int RUNTIME_thread_size( CHAM_context_t *morse )
+int RUNTIME_thread_size( CHAM_context_t *chamctxt )
 {
     // TODO: fixme
     //return vpmap_get_nb_total_threads();
-    (void)morse;
+    (void)chamctxt;
     return 1;
 }
 
 /**
  *  This returns the rank of this process
  */
-int RUNTIME_comm_rank( CHAM_context_t *morse )
+int RUNTIME_comm_rank( CHAM_context_t *chamctxt )
 {
     int rank = 0;
 #if defined(CHAMELEON_USE_MPI)
     MPI_Comm_rank(MPI_COMM_WORLD, &rank);
 #endif
 
-    (void)morse;
+    (void)chamctxt;
     return rank;
 }
 
 /**
  *  This returns the size of the distributed computation
  */
-int RUNTIME_comm_size( CHAM_context_t *morse )
+int RUNTIME_comm_size( CHAM_context_t *chamctxt )
 {
     int size = 0;
 #if defined(CHAMELEON_USE_MPI)
     MPI_Comm_size(MPI_COMM_WORLD, &size);
 #endif
 
-    (void)morse;
+    (void)chamctxt;
     return size;
 }
diff --git a/runtime/parsec/control/runtime_descriptor.c b/runtime/parsec/control/runtime_descriptor.c
index cfc69e631b88f0cea6158bfceb58b29438ac2d65..02c4119be1693cd388e73b25ecae218f7da72a9f 100644
--- a/runtime/parsec/control/runtime_descriptor.c
+++ b/runtime/parsec/control/runtime_descriptor.c
@@ -28,15 +28,15 @@
 /* Variable parsec_dtd_no_of_arenas is private and cannot be changed */
 #define CHAMELEON_PARSEC_DTD_NO_OF_ARENA 16 /**< Number of arenas available per DTD */
 
-typedef struct morse_parsec_arena_s {
+typedef struct chameleon_parsec_arena_s {
     /* int mb; */
     /* int nb; */
     /* cham_flttype_t dtype; */
     size_t size;
-} morse_parsec_arena_t;
+} chameleon_parsec_arena_t;
 
-static int morse_parsec_nb_arenas = 0;
-static morse_parsec_arena_t morse_parsec_registered_arenas[CHAMELEON_PARSEC_DTD_NO_OF_ARENA] = { { 0 } };
+static int chameleon_parsec_nb_arenas = 0;
+static chameleon_parsec_arena_t chameleon_parsec_registered_arenas[CHAMELEON_PARSEC_DTD_NO_OF_ARENA] = { { 0 } };
 
 #endif
 
@@ -60,10 +60,10 @@ void RUNTIME_free( void *ptr, size_t size )
 }
 
 static inline void
-morse_parsec_key_to_coordinates(parsec_data_collection_t *data_collection, parsec_data_key_t key,
+chameleon_parsec_key_to_coordinates(parsec_data_collection_t *data_collection, parsec_data_key_t key,
                                 int *m, int *n)
 {
-    morse_parsec_desc_t *pdesc = (morse_parsec_desc_t*)data_collection;
+    chameleon_parsec_desc_t *pdesc = (chameleon_parsec_desc_t*)data_collection;
     CHAM_desc_t *mdesc = pdesc->desc;
     int _m, _n;
 
@@ -74,9 +74,9 @@ morse_parsec_key_to_coordinates(parsec_data_collection_t *data_collection, parse
 }
 
 static inline parsec_data_key_t
-morse_parsec_data_key(parsec_data_collection_t *data_collection, ...)
+chameleon_parsec_data_key(parsec_data_collection_t *data_collection, ...)
 {
-    morse_parsec_desc_t *pdesc = (morse_parsec_desc_t*)data_collection;
+    chameleon_parsec_desc_t *pdesc = (chameleon_parsec_desc_t*)data_collection;
     CHAM_desc_t *mdesc = pdesc->desc;
     va_list ap;
     int m, n;
@@ -95,9 +95,9 @@ morse_parsec_data_key(parsec_data_collection_t *data_collection, ...)
 }
 
 static inline uint32_t
-morse_parsec_rank_of(parsec_data_collection_t *data_collection, ...)
+chameleon_parsec_rank_of(parsec_data_collection_t *data_collection, ...)
 {
-    morse_parsec_desc_t *pdesc = (morse_parsec_desc_t*)data_collection;
+    chameleon_parsec_desc_t *pdesc = (chameleon_parsec_desc_t*)data_collection;
     CHAM_desc_t *mdesc = pdesc->desc;
     va_list ap;
     int m, n;
@@ -116,32 +116,32 @@ morse_parsec_rank_of(parsec_data_collection_t *data_collection, ...)
 }
 
 static inline uint32_t
-morse_parsec_rank_of_key(parsec_data_collection_t *data_collection, parsec_data_key_t key)
+chameleon_parsec_rank_of_key(parsec_data_collection_t *data_collection, parsec_data_key_t key)
 {
     int m, n;
-    morse_parsec_key_to_coordinates(data_collection, key, &m, &n);
-    return morse_parsec_rank_of(data_collection, m, n);
+    chameleon_parsec_key_to_coordinates(data_collection, key, &m, &n);
+    return chameleon_parsec_rank_of(data_collection, m, n);
 }
 
 static inline int32_t
-morse_parsec_vpid_of(parsec_data_collection_t *data_collection, ... )
+chameleon_parsec_vpid_of(parsec_data_collection_t *data_collection, ... )
 {
     (void)data_collection;
     return 0;
 }
 
 static inline int32_t
-morse_parsec_vpid_of_key(parsec_data_collection_t *data_collection, parsec_data_key_t key)
+chameleon_parsec_vpid_of_key(parsec_data_collection_t *data_collection, parsec_data_key_t key)
 {
     int m, n;
-    morse_parsec_key_to_coordinates(data_collection, key, &m, &n);
-    return morse_parsec_vpid_of(data_collection, m, n);
+    chameleon_parsec_key_to_coordinates(data_collection, key, &m, &n);
+    return chameleon_parsec_vpid_of(data_collection, m, n);
 }
 
 static inline parsec_data_t*
-morse_parsec_data_of(parsec_data_collection_t *data_collection, ...)
+chameleon_parsec_data_of(parsec_data_collection_t *data_collection, ...)
 {
-    morse_parsec_desc_t *pdesc = (morse_parsec_desc_t*)data_collection;
+    chameleon_parsec_desc_t *pdesc = (chameleon_parsec_desc_t*)data_collection;
     CHAM_desc_t *mdesc = pdesc->desc;
     va_list ap;
     int m, n;
@@ -161,18 +161,18 @@ morse_parsec_data_of(parsec_data_collection_t *data_collection, ...)
     //assert( data_collection->nodes == 1 );
 #endif
     return parsec_data_create( pdesc->data_map + n * mdesc->lmt + m, data_collection,
-                               morse_parsec_data_key( data_collection, m, n ),
+                               chameleon_parsec_data_key( data_collection, m, n ),
                                mdesc->get_blkaddr( mdesc, m, n ),
                                mdesc->bsiz * CHAMELEON_Element_Size(mdesc->dtyp) );
 }
 
 static inline parsec_data_t*
-morse_parsec_data_of_key(parsec_data_collection_t *data_collection, parsec_data_key_t key)
+chameleon_parsec_data_of_key(parsec_data_collection_t *data_collection, parsec_data_key_t key)
 {
-    morse_parsec_desc_t *pdesc = (morse_parsec_desc_t*)data_collection;
+    chameleon_parsec_desc_t *pdesc = (chameleon_parsec_desc_t*)data_collection;
     CHAM_desc_t *mdesc = pdesc->desc;
     int m, n;
-    morse_parsec_key_to_coordinates(data_collection, key, &m, &n);
+    chameleon_parsec_key_to_coordinates(data_collection, key, &m, &n);
 
 #if defined(CHAMELEON_USE_MPI)
     /* TODO: change displacement in data_map when in distributed */
@@ -185,12 +185,12 @@ morse_parsec_data_of_key(parsec_data_collection_t *data_collection, parsec_data_
 
 #ifdef parsec_PROF_TRACE
 static inline int
-morse_parsec_key_to_string(parsec_data_collection_t *data_collection, parsec_data_key_t key, char * buffer, uint32_t buffer_size)
+chameleon_parsec_key_to_string(parsec_data_collection_t *data_collection, parsec_data_key_t key, char * buffer, uint32_t buffer_size)
 {
-    morse_parsec_desc_t *pdesc = (morse_parsec_desc_t*)data_collection;
+    chameleon_parsec_desc_t *pdesc = (chameleon_parsec_desc_t*)data_collection;
     CHAM_desc_t *mdesc = pdesc->desc;
     int m, n, res;
-    morse_parsec_key_to_coordinates(data_collection, key, &m, &n);
+    chameleon_parsec_key_to_coordinates(data_collection, key, &m, &n);
     res = snprintf(buffer, buffer_size, "(%d, %d)", m, n);
     if (res < 0)
     {
@@ -207,10 +207,10 @@ morse_parsec_key_to_string(parsec_data_collection_t *data_collection, parsec_dat
 void RUNTIME_desc_create( CHAM_desc_t *mdesc )
 {
     parsec_data_collection_t *data_collection;
-    morse_parsec_desc_t *pdesc;
+    chameleon_parsec_desc_t *pdesc;
     int comm_size;
 
-    pdesc = malloc( sizeof(morse_parsec_desc_t) );
+    pdesc = malloc( sizeof(chameleon_parsec_desc_t) );
     data_collection = (parsec_data_collection_t*)pdesc;
 
     /* Super setup */
@@ -218,17 +218,17 @@ void RUNTIME_desc_create( CHAM_desc_t *mdesc )
     data_collection->nodes  = comm_size;
     data_collection->myrank = mdesc->myrank;
 
-    data_collection->data_key    = morse_parsec_data_key;
-    data_collection->rank_of     = morse_parsec_rank_of;
-    data_collection->rank_of_key = morse_parsec_rank_of_key;
-    data_collection->data_of     = morse_parsec_data_of;
-    data_collection->data_of_key = morse_parsec_data_of_key;
-    data_collection->vpid_of     = morse_parsec_vpid_of;
-    data_collection->vpid_of_key = morse_parsec_vpid_of_key;
+    data_collection->data_key    = chameleon_parsec_data_key;
+    data_collection->rank_of     = chameleon_parsec_rank_of;
+    data_collection->rank_of_key = chameleon_parsec_rank_of_key;
+    data_collection->data_of     = chameleon_parsec_data_of;
+    data_collection->data_of_key = chameleon_parsec_data_of_key;
+    data_collection->vpid_of     = chameleon_parsec_vpid_of;
+    data_collection->vpid_of_key = chameleon_parsec_vpid_of_key;
 #if defined(parsec_PROF_TRACE)
     {
         int rc;
-        data_collection->key_to_string = morse_parsec_key_to_string;
+        data_collection->key_to_string = chameleon_parsec_key_to_string;
         data_collection->key           = NULL;
         rc = asprintf(&(data_collection->key_dim), "(%d, %d)", mdesc->lmt, mdesc->lnt);
         (void)rc;
@@ -251,18 +251,18 @@ void RUNTIME_desc_create( CHAM_desc_t *mdesc )
 #if defined(CHAMELEON_USE_MPI)
     /* Look if an arena already exists for this descriptor */
     {
-        morse_parsec_arena_t *arena = morse_parsec_registered_arenas;
+        chameleon_parsec_arena_t *arena = chameleon_parsec_registered_arenas;
         size_t size = mdesc->mb * mdesc->nb * CHAMELEON_Element_Size(mdesc->dtyp);
         int i;
 
-        for(i=0; i<morse_parsec_nb_arenas; i++, arena++) {
+        for(i=0; i<chameleon_parsec_nb_arenas; i++, arena++) {
             if ( size == arena->size) {
                 pdesc->arena_index = i;
                 break;
             }
         }
 
-        if (i == morse_parsec_nb_arenas) {
+        if (i == chameleon_parsec_nb_arenas) {
             parsec_datatype_t datatype;
 
             /* Create a taskpool to make sur the system is initialized */
@@ -272,7 +272,7 @@ void RUNTIME_desc_create( CHAM_desc_t *mdesc )
             }
 
             /* Internal limitation of PaRSEC */
-            assert(morse_parsec_nb_arenas < CHAMELEON_PARSEC_DTD_NO_OF_ARENA);
+            assert(chameleon_parsec_nb_arenas < CHAMELEON_PARSEC_DTD_NO_OF_ARENA);
 
             switch(mdesc->dtyp) {
             case ChamInteger:       datatype = parsec_datatype_int32_t; break;
@@ -280,7 +280,7 @@ void RUNTIME_desc_create( CHAM_desc_t *mdesc )
             case ChamRealDouble:    datatype = parsec_datatype_double_t; break;
             case ChamComplexFloat:  datatype = parsec_datatype_complex_t; break;
             case ChamComplexDouble: datatype = parsec_datatype_double_complex_t; break;
-            default: morse_fatal_error("CHAMELEON_Element_Size", "undefined type"); break;
+            default: chameleon_fatal_error("CHAMELEON_Element_Size", "undefined type"); break;
             }
 
             /* Register the new arena */
@@ -288,7 +288,7 @@ void RUNTIME_desc_create( CHAM_desc_t *mdesc )
                                      mdesc->mb, mdesc->nb, mdesc->mb, PARSEC_ARENA_ALIGNMENT_SSE, -1 );
             arena->size = size;
             pdesc->arena_index = i;
-            morse_parsec_nb_arenas++;
+            chameleon_parsec_nb_arenas++;
         }
     }
 #endif
@@ -303,7 +303,7 @@ void RUNTIME_desc_create( CHAM_desc_t *mdesc )
  */
 void RUNTIME_desc_destroy( CHAM_desc_t *mdesc )
 {
-    morse_parsec_desc_t *pdesc = (morse_parsec_desc_t*)(mdesc->schedopt);
+    chameleon_parsec_desc_t *pdesc = (chameleon_parsec_desc_t*)(mdesc->schedopt);
     if ( pdesc == NULL ) {
         return;
     }
diff --git a/runtime/parsec/control/runtime_options.c b/runtime/parsec/control/runtime_options.c
index 4b9d0e649992f479431550caa5eae87b64b61e3a..73ed66e8d6c7ae8c6ae48b5144ebc6490f4de716 100644
--- a/runtime/parsec/control/runtime_options.c
+++ b/runtime/parsec/control/runtime_options.c
@@ -21,7 +21,7 @@
 #include <stdlib.h>
 #include "chameleon_parsec.h"
 
-void RUNTIME_options_init( RUNTIME_option_t *options, CHAM_context_t *morse,
+void RUNTIME_options_init( RUNTIME_option_t *options, CHAM_context_t *chamctxt,
                            RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
     options->sequence   = sequence;
@@ -36,10 +36,10 @@ void RUNTIME_options_init( RUNTIME_option_t *options, CHAM_context_t *morse,
     return;
 }
 
-void RUNTIME_options_finalize( RUNTIME_option_t *options, CHAM_context_t *morse )
+void RUNTIME_options_finalize( RUNTIME_option_t *options, CHAM_context_t *chamctxt )
 {
     (void)options;
-    (void)morse;
+    (void)chamctxt;
     return;
 }
 
diff --git a/runtime/parsec/control/runtime_profiling.c b/runtime/parsec/control/runtime_profiling.c
index 38ff68f5c08f48a5c91ebf4b336c92f834139861..43ca3381efa2c967b33b8586a708a4a6a7a5fd9b 100644
--- a/runtime/parsec/control/runtime_profiling.c
+++ b/runtime/parsec/control/runtime_profiling.c
@@ -26,45 +26,45 @@ double RUNTIME_get_time(){
 
 void RUNTIME_start_profiling()
 {
-    morse_warning("RUNTIME_start_profiling()", "FxT profiling is not available with PaRSEC\n");
+    chameleon_warning("RUNTIME_start_profiling()", "FxT profiling is not available with PaRSEC\n");
 }
 
 void RUNTIME_stop_profiling()
 {
-    morse_warning("RUNTIME_stop_profiling()", "FxT profiling is not available with PaRSEC\n");
+    chameleon_warning("RUNTIME_stop_profiling()", "FxT profiling is not available with PaRSEC\n");
 }
 
 void RUNTIME_start_stats()
 {
-    morse_warning("RUNTIME_start_stats()", "pruning stats are not available with PaRSEC\n");
+    chameleon_warning("RUNTIME_start_stats()", "pruning stats are not available with PaRSEC\n");
 }
 
 void RUNTIME_stop_stats()
 {
-    morse_warning("RUNTIME_stop_stats()", "pruning stats are not available with PaRSEC\n");
+    chameleon_warning("RUNTIME_stop_stats()", "pruning stats are not available with PaRSEC\n");
 }
 
 void RUNTIME_schedprofile_display(void)
 {
-    morse_warning("RUNTIME_schedprofile_display(parsec)", "Scheduler profiling is not available with PaRSEC\n");
+    chameleon_warning("RUNTIME_schedprofile_display(parsec)", "Scheduler profiling is not available with PaRSEC\n");
 }
 
 void RUNTIME_kernelprofile_display(void)
 {
-    morse_warning("RUNTIME_kernelprofile_display(parsec)", "Kernel profiling is not available with PaRSEC\n");
+    chameleon_warning("RUNTIME_kernelprofile_display(parsec)", "Kernel profiling is not available with PaRSEC\n");
 }
 
 /**
  *  Set iteration numbers for traces
  */
-void RUNTIME_iteration_push( CHAM_context_t *morse, unsigned long iteration )
+void RUNTIME_iteration_push( CHAM_context_t *chamctxt, unsigned long iteration )
 {
-    (void)morse; (void)iteration;
+    (void)chamctxt; (void)iteration;
     return;
 }
-void RUNTIME_iteration_pop( CHAM_context_t *morse )
+void RUNTIME_iteration_pop( CHAM_context_t *chamctxt )
 {
-    (void)morse;
+    (void)chamctxt;
     return;
 }
 
diff --git a/runtime/parsec/control/runtime_zlocality.c b/runtime/parsec/control/runtime_zlocality.c
index b077d03be44f7cf68429c7f4c80ceea680ed5b80..674803efca0845012e11d6fd0de144458cbcfcfb 100644
--- a/runtime/parsec/control/runtime_zlocality.c
+++ b/runtime/parsec/control/runtime_zlocality.c
@@ -22,23 +22,23 @@
 void RUNTIME_zlocality_allrestrict( uint32_t where )
 {
     (void)where;
-    morse_warning("RUNTIME_zlocality_allrestrict(PaRSEC)", "Kernel locality cannot be specified with PaRSEC");
+    chameleon_warning("RUNTIME_zlocality_allrestrict(PaRSEC)", "Kernel locality cannot be specified with PaRSEC");
 }
 
 void RUNTIME_zlocality_onerestrict( cham_tasktype_t kernel, uint32_t where )
 {
     (void)kernel;
     (void)where;
-    morse_warning("RUNTIME_zlocality_onerestrict(PaRSEC)", "Kernel locality cannot be specified with PaRSEC");
+    chameleon_warning("RUNTIME_zlocality_onerestrict(PaRSEC)", "Kernel locality cannot be specified with PaRSEC");
 }
 
 void RUNTIME_zlocality_allrestore( )
 {
-    morse_warning("RUNTIME_zlocality_allrestore(PaRSEC)", "Kernel locality cannot be specified with PaRSEC");
+    chameleon_warning("RUNTIME_zlocality_allrestore(PaRSEC)", "Kernel locality cannot be specified with PaRSEC");
 }
 
 void RUNTIME_zlocality_onerestore( cham_tasktype_t kernel )
 {
     (void)kernel;
-    morse_warning("RUNTIME_zlocality_onerestore(PaRSEC)", "Kernel locality cannot be specified with PaRSEC");
+    chameleon_warning("RUNTIME_zlocality_onerestore(PaRSEC)", "Kernel locality cannot be specified with PaRSEC");
 }
diff --git a/runtime/parsec/control/runtime_zprofiling.c b/runtime/parsec/control/runtime_zprofiling.c
index fb51b833d48a88bc8d1aaa62dfbbe4f28563843c..9288392155f32f99357c4ff5cff34adf615726e1 100644
--- a/runtime/parsec/control/runtime_zprofiling.c
+++ b/runtime/parsec/control/runtime_zprofiling.c
@@ -21,12 +21,12 @@
 
 void RUNTIME_zdisplay_allprofile()
 {
-    morse_warning("RUNTIME_zdisplay_allprofile(PaRSEC)", "Profiling is not available with PaRSEC");
+    chameleon_warning("RUNTIME_zdisplay_allprofile(PaRSEC)", "Profiling is not available with PaRSEC");
 }
 
 void RUNTIME_zdisplay_oneprofile( cham_tasktype_t kernel )
 {
     (void)kernel;
-    morse_warning("RUNTIME_zdisplay_oneprofile(PaRSEC)", "Profiling is not available with PaRSEC\n");
+    chameleon_warning("RUNTIME_zdisplay_oneprofile(PaRSEC)", "Profiling is not available with PaRSEC\n");
 }
 
diff --git a/runtime/parsec/include/chameleon_parsec.h b/runtime/parsec/include/chameleon_parsec.h
index 594c9a1f2adcbc73391ddb1b6fd4888092605fe9..d18db7b1e0971a81d2fe30569ebfbce7b2fccc3d 100644
--- a/runtime/parsec/include/chameleon_parsec.h
+++ b/runtime/parsec/include/chameleon_parsec.h
@@ -29,18 +29,18 @@
 
 #include "control/common.h"
 
-struct morse_parsec_desc_s {
+struct chameleon_parsec_desc_s {
     parsec_data_collection_t super;
     int                      arena_index;
     CHAM_desc_t            *desc;
     parsec_data_t          **data_map;
 };
 
-typedef struct morse_parsec_desc_s morse_parsec_desc_t;
+typedef struct chameleon_parsec_desc_s chameleon_parsec_desc_t;
 
 static inline int
-morse_parsec_get_arena_index(const CHAM_desc_t *desc) {
-    return ((morse_parsec_desc_t *)desc->schedopt)->arena_index;
+chameleon_parsec_get_arena_index(const CHAM_desc_t *desc) {
+    return ((chameleon_parsec_desc_t *)desc->schedopt)->arena_index;
 }
 
 /*
diff --git a/runtime/quark/control/runtime_async.c b/runtime/quark/control/runtime_async.c
index 5ead4c7269b8b580164e32c66658cf58e55473e7..f4e07e12e156bce3d9e032112f2fe0421449435a 100644
--- a/runtime/quark/control/runtime_async.c
+++ b/runtime/quark/control/runtime_async.c
@@ -24,13 +24,13 @@
 /**
  *  Create a sequence
  */
-int RUNTIME_sequence_create( CHAM_context_t  *morse,
+int RUNTIME_sequence_create( CHAM_context_t  *chamctxt,
                              RUNTIME_sequence_t *sequence )
 {
-    sequence->schedopt = (void*)QUARK_Sequence_Create((Quark*)(morse->schedopt));
+    sequence->schedopt = (void*)QUARK_Sequence_Create((Quark*)(chamctxt->schedopt));
 
     if (sequence->schedopt == NULL) {
-        morse_error("CHAMELEON_Sequence_Create", "QUARK_Sequence_Create() failed");
+        chameleon_error("CHAMELEON_Sequence_Create", "QUARK_Sequence_Create() failed");
         return CHAMELEON_ERR_OUT_OF_RESOURCES;
     }
     sequence->status = CHAMELEON_SUCCESS;
@@ -40,10 +40,10 @@ int RUNTIME_sequence_create( CHAM_context_t  *morse,
 /**
  *  Destroy a sequence
  */
-int RUNTIME_sequence_destroy( CHAM_context_t  *morse,
+int RUNTIME_sequence_destroy( CHAM_context_t  *chamctxt,
                               RUNTIME_sequence_t *sequence )
 {
-    QUARK_Sequence_Destroy( (Quark*)(morse->schedopt),
+    QUARK_Sequence_Destroy( (Quark*)(chamctxt->schedopt),
                             (Quark_Sequence *)(sequence->schedopt) );
     return CHAMELEON_SUCCESS;
 }
@@ -51,10 +51,10 @@ int RUNTIME_sequence_destroy( CHAM_context_t  *morse,
 /**
  *  Wait for the completion of a sequence
  */
-int RUNTIME_sequence_wait( CHAM_context_t  *morse,
+int RUNTIME_sequence_wait( CHAM_context_t  *chamctxt,
                            RUNTIME_sequence_t *sequence )
 {
-    QUARK_Sequence_Wait( (Quark*)(morse->schedopt),
+    QUARK_Sequence_Wait( (Quark*)(chamctxt->schedopt),
                          (Quark_Sequence *)(sequence->schedopt) );
     return CHAMELEON_SUCCESS;
 }
@@ -62,7 +62,7 @@ int RUNTIME_sequence_wait( CHAM_context_t  *morse,
 /**
  *  Terminate a sequence
  */
-void RUNTIME_sequence_flush( CHAM_context_t  *morse,
+void RUNTIME_sequence_flush( CHAM_context_t  *chamctxt,
                              RUNTIME_sequence_t *sequence,
                              RUNTIME_request_t  *request,
                              int status )
@@ -70,6 +70,6 @@ void RUNTIME_sequence_flush( CHAM_context_t  *morse,
     sequence->request = request;
     sequence->status = status;
     request->status = status;
-    QUARK_Sequence_Cancel( (Quark*)(morse),
+    QUARK_Sequence_Cancel( (Quark*)(chamctxt),
                            (Quark_Sequence *)(sequence->schedopt) );
 }
diff --git a/runtime/quark/control/runtime_context.c b/runtime/quark/control/runtime_context.c
index 920ebfb5b00cbc6d11ceafb2abea4465057fd346..e6c387af673af222dd9caee0f1c9583b072cd4f9 100644
--- a/runtime/quark/control/runtime_context.c
+++ b/runtime/quark/control/runtime_context.c
@@ -23,9 +23,9 @@
 /**
  *  Create new context
  */
-void RUNTIME_context_create( CHAM_context_t *morse )
+void RUNTIME_context_create( CHAM_context_t *chamctxt )
 {
-    morse->scheduler = RUNTIME_SCHED_QUARK;
+    chamctxt->scheduler = RUNTIME_SCHED_QUARK;
     /* Will require the static initialization if we want to use it in this code */
     return;
 }
@@ -33,9 +33,9 @@ void RUNTIME_context_create( CHAM_context_t *morse )
 /**
  *  Clean the context
  */
-void RUNTIME_context_destroy( CHAM_context_t *morse )
+void RUNTIME_context_destroy( CHAM_context_t *chamctxt )
 {
-    (void)morse;
+    (void)chamctxt;
     return;
 }
 
diff --git a/runtime/quark/control/runtime_control.c b/runtime/quark/control/runtime_control.c
index fc39ca56a278130cf1dff48cd5a53af51c69d29a..d1cb7729450dd3b8918e909af51550f9b8940f8d 100644
--- a/runtime/quark/control/runtime_control.c
+++ b/runtime/quark/control/runtime_control.c
@@ -24,21 +24,21 @@
 /**
  *
  */
-int RUNTIME_init( CHAM_context_t *morse,
+int RUNTIME_init( CHAM_context_t *chamctxt,
                   int ncpus,
                   int ncudas,
                   int nthreads_per_worker )
 {
     int hres = 0;
     if ( ncudas > 0 ) {
-        morse_warning( "RUNTIME_init_scheduler(quark)", "GPUs are not supported for now");
+        chameleon_warning( "RUNTIME_init_scheduler(quark)", "GPUs are not supported for now");
     }
 
     if ( nthreads_per_worker > 0 ) {
-        morse_warning( "RUNTIME_init_scheduler(quark)", "Multi-threaded kernels are not supported for now");
+        chameleon_warning( "RUNTIME_init_scheduler(quark)", "Multi-threaded kernels are not supported for now");
     }
 
-    morse->schedopt = (void*)QUARK_New( ncpus );
+    chamctxt->schedopt = (void*)QUARK_New( ncpus );
 
     return hres;
 }
@@ -46,18 +46,18 @@ int RUNTIME_init( CHAM_context_t *morse,
 /**
  *
  */
-void RUNTIME_finalize( CHAM_context_t *morse )
+void RUNTIME_finalize( CHAM_context_t *chamctxt )
 {
-    QUARK_Delete((Quark*)(morse->schedopt));
+    QUARK_Delete((Quark*)(chamctxt->schedopt));
     return;
 }
 
 /**
  *  To suspend the processing of new tasks by workers
  */
-void RUNTIME_pause( CHAM_context_t *morse )
+void RUNTIME_pause( CHAM_context_t *chamctxt )
 {
-    (void)morse;
+    (void)chamctxt;
     return;
 }
 
@@ -65,43 +65,43 @@ void RUNTIME_pause( CHAM_context_t *morse )
  *  This is the symmetrical call to RUNTIME_pause,
  *  used to resume the workers polling for new tasks.
  */
-void RUNTIME_resume( CHAM_context_t *morse )
+void RUNTIME_resume( CHAM_context_t *chamctxt )
 {
-    (void)morse;
+    (void)chamctxt;
     return;
 }
 
 /**
  *  Busy-waiting barrier
  */
-void RUNTIME_barrier( CHAM_context_t *morse )
+void RUNTIME_barrier( CHAM_context_t *chamctxt )
 {
-    QUARK_Barrier((Quark*)(morse->schedopt));
+    QUARK_Barrier((Quark*)(chamctxt->schedopt));
 }
 
 /**
  *  Display a progress information when executing the tasks
  */
-void RUNTIME_progress( CHAM_context_t *morse )
+void RUNTIME_progress( CHAM_context_t *chamctxt )
 {
-    (void)morse;
+    (void)chamctxt;
     return;
 }
 
 /**
  * Thread rank.
  */
-int RUNTIME_thread_rank( CHAM_context_t *morse )
+int RUNTIME_thread_rank( CHAM_context_t *chamctxt )
 {
-    return QUARK_Thread_Rank((Quark*)(morse->schedopt));
+    return QUARK_Thread_Rank((Quark*)(chamctxt->schedopt));
 }
 
 /**
  * Number of threads.
  */
-int RUNTIME_thread_size( CHAM_context_t *morse )
+int RUNTIME_thread_size( CHAM_context_t *chamctxt )
 {
-    (void)morse;
+    (void)chamctxt;
     /*
      * TODO: should add a function to Quark to get the number of thread from the
      * data structure and not from the system function
@@ -112,17 +112,17 @@ int RUNTIME_thread_size( CHAM_context_t *morse )
 /**
  *  The process rank
  */
-int RUNTIME_comm_rank( CHAM_context_t *morse )
+int RUNTIME_comm_rank( CHAM_context_t *chamctxt )
 {
-    (void)morse;
+    (void)chamctxt;
     return 0;
 }
 
 /**
  *  This returns the size of the distributed computation
  */
-int RUNTIME_comm_size( CHAM_context_t *morse )
+int RUNTIME_comm_size( CHAM_context_t *chamctxt )
 {
-    (void)morse;
+    (void)chamctxt;
     return 1;
 }
diff --git a/runtime/quark/control/runtime_options.c b/runtime/quark/control/runtime_options.c
index 1f830d5c46a91c1ded9bb3a3957367af6b6553da..fcdae9343e432e04ad6ca36944fd879fc8856623 100644
--- a/runtime/quark/control/runtime_options.c
+++ b/runtime/quark/control/runtime_options.c
@@ -21,7 +21,7 @@
 #include <stdlib.h>
 #include "chameleon_quark.h"
 
-void RUNTIME_options_init( RUNTIME_option_t *options, CHAM_context_t *morse,
+void RUNTIME_options_init( RUNTIME_option_t *options, CHAM_context_t *chamctxt,
                            RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
     /* Create the task flag */
@@ -46,7 +46,7 @@ void RUNTIME_options_init( RUNTIME_option_t *options, CHAM_context_t *morse,
     options->ws_host    = NULL;
 
     /* quark in options */
-    qopt->quark = (Quark*)(morse->schedopt);
+    qopt->quark = (Quark*)(chamctxt->schedopt);
     options->schedopt = qopt;
 
     QUARK_Task_Flag_Set((Quark_Task_Flags*)qopt, TASK_SEQUENCE, (intptr_t)(sequence->schedopt));
@@ -54,11 +54,11 @@ void RUNTIME_options_init( RUNTIME_option_t *options, CHAM_context_t *morse,
     return;
 }
 
-void RUNTIME_options_finalize( RUNTIME_option_t *options, CHAM_context_t *morse )
+void RUNTIME_options_finalize( RUNTIME_option_t *options, CHAM_context_t *chamctxt )
 {
     /* we can free the task_flags without waiting for quark
        because they should have been copied for every task */
-    (void)morse;
+    (void)chamctxt;
     free( options->schedopt );
     return;
 }
diff --git a/runtime/quark/control/runtime_profiling.c b/runtime/quark/control/runtime_profiling.c
index 446e97e5e97c8630429610375692a2f39dbe9902..55400cd19dd1b2dfacf1c60b02499a6db6ffca9a 100644
--- a/runtime/quark/control/runtime_profiling.c
+++ b/runtime/quark/control/runtime_profiling.c
@@ -26,44 +26,44 @@ double RUNTIME_get_time(){
 
 void RUNTIME_start_profiling()
 {
-    morse_warning("RUNTIME_start_profiling()", "FxT profiling is not available with Quark\n");
+    chameleon_warning("RUNTIME_start_profiling()", "FxT profiling is not available with Quark\n");
 }
 
 void RUNTIME_stop_profiling()
 {
-    morse_warning("RUNTIME_stop_profiling()", "FxT profiling is not available with Quark\n");
+    chameleon_warning("RUNTIME_stop_profiling()", "FxT profiling is not available with Quark\n");
 }
 
 void RUNTIME_start_stats()
 {
-    morse_warning("RUNTIME_start_stats()", "pruning stats are not available with Quark\n");
+    chameleon_warning("RUNTIME_start_stats()", "pruning stats are not available with Quark\n");
 }
 
 void RUNTIME_stop_stats()
 {
-    morse_warning("RUNTIME_stop_stats()", "pruning stats are not available with Quark\n");
+    chameleon_warning("RUNTIME_stop_stats()", "pruning stats are not available with Quark\n");
 }
 
 void RUNTIME_schedprofile_display(void)
 {
-    morse_warning("RUNTIME_schedprofile_display(quark)", "Scheduler profiling is not available with Quark\n");
+    chameleon_warning("RUNTIME_schedprofile_display(quark)", "Scheduler profiling is not available with Quark\n");
 }
 
 void RUNTIME_kernelprofile_display(void)
 {
-    morse_warning("RUNTIME_kernelprofile_display(quark)", "Kernel profiling is not available with Quark\n");
+    chameleon_warning("RUNTIME_kernelprofile_display(quark)", "Kernel profiling is not available with Quark\n");
 }
 
 /**
  *  Set iteration numbers for traces
  */
-void RUNTIME_iteration_push( CHAM_context_t *morse, unsigned long iteration )
+void RUNTIME_iteration_push( CHAM_context_t *chamctxt, unsigned long iteration )
 {
-    (void)morse; (void)iteration;
+    (void)chamctxt; (void)iteration;
     return;
 }
-void RUNTIME_iteration_pop( CHAM_context_t *morse )
+void RUNTIME_iteration_pop( CHAM_context_t *chamctxt )
 {
-    (void)morse;
+    (void)chamctxt;
     return;
 }
diff --git a/runtime/quark/control/runtime_zlocality.c b/runtime/quark/control/runtime_zlocality.c
index f081a462e6b3792cf043363d405ed2c09eba35b3..dc93451d01b5a27867dfd2170767604a0f7f169e 100644
--- a/runtime/quark/control/runtime_zlocality.c
+++ b/runtime/quark/control/runtime_zlocality.c
@@ -22,23 +22,23 @@
 void RUNTIME_zlocality_allrestrict( uint32_t where )
 {
     (void)where;
-    morse_warning("RUNTIME_zlocality_allrestrict(quark)", "Kernel locality cannot be specified with Quark");
+    chameleon_warning("RUNTIME_zlocality_allrestrict(quark)", "Kernel locality cannot be specified with Quark");
 }
 
 void RUNTIME_zlocality_onerestrict( cham_tasktype_t kernel, uint32_t where )
 {
     (void)kernel;
     (void)where;
-    morse_warning("RUNTIME_zlocality_onerestrict(quark)", "Kernel locality cannot be specified with Quark");
+    chameleon_warning("RUNTIME_zlocality_onerestrict(quark)", "Kernel locality cannot be specified with Quark");
 }
 
 void RUNTIME_zlocality_allrestore( )
 {
-    morse_warning("RUNTIME_zlocality_allrestore(quark)", "Kernel locality cannot be specified with Quark");
+    chameleon_warning("RUNTIME_zlocality_allrestore(quark)", "Kernel locality cannot be specified with Quark");
 }
 
 void RUNTIME_zlocality_onerestore( cham_tasktype_t kernel )
 {
     (void)kernel;
-    morse_warning("RUNTIME_zlocality_onerestore(quark)", "Kernel locality cannot be specified with Quark");
+    chameleon_warning("RUNTIME_zlocality_onerestore(quark)", "Kernel locality cannot be specified with Quark");
 }
diff --git a/runtime/quark/control/runtime_zprofiling.c b/runtime/quark/control/runtime_zprofiling.c
index a14c7a4ab9dd13e8149646f62469da8caea8f0e5..d3d5e2e0e06fea766fa7f285866eddbff3647fcd 100644
--- a/runtime/quark/control/runtime_zprofiling.c
+++ b/runtime/quark/control/runtime_zprofiling.c
@@ -23,12 +23,12 @@
 
 void RUNTIME_zdisplay_allprofile()
 {
-    morse_warning("RUNTIME_zdisplay_allprofile(quark)", "Profiling is not available with Quark");
+    chameleon_warning("RUNTIME_zdisplay_allprofile(quark)", "Profiling is not available with Quark");
 }
 
 void RUNTIME_zdisplay_oneprofile( cham_tasktype_t kernel )
 {
     (void)kernel;
-    morse_warning("RUNTIME_zdisplay_oneprofile(quark)", "Profiling is not available with Quark\n");
+    chameleon_warning("RUNTIME_zdisplay_oneprofile(quark)", "Profiling is not available with Quark\n");
 }
 
diff --git a/runtime/starpu/codelets/codelet_zlag2c.c b/runtime/starpu/codelets/codelet_zlag2c.c
index 79c9206dab2659671a7d67354c744a372fbde1fe..16b25e4efdf2d8c6872cfbe5dffc9cee6b2c9a14 100644
--- a/runtime/starpu/codelets/codelet_zlag2c.c
+++ b/runtime/starpu/codelets/codelet_zlag2c.c
@@ -85,8 +85,8 @@ void INSERT_TASK_clag2z(const RUNTIME_option_t *options,
     struct starpu_codelet *codelet = &cl_clag2z;
     void (*callback)(void*) = options->profiling ? cl_clag2z_callback : NULL;
 
-    if ( morse_desc_islocal( A, Am, An ) ||
-         morse_desc_islocal( B, Bm, Bn ) )
+    if ( chameleon_desc_islocal( A, Am, An ) ||
+         chameleon_desc_islocal( B, Bm, Bn ) )
     {
         starpu_insert_task(
             starpu_mpi_codelet(codelet),
diff --git a/runtime/starpu/codelets/codelet_zlange.c b/runtime/starpu/codelets/codelet_zlange.c
index dfda4dbd2a97b0af2951cb2bdd54708bb9d4418e..db2b10af669acf2242940e04b0585d402cce066b 100644
--- a/runtime/starpu/codelets/codelet_zlange.c
+++ b/runtime/starpu/codelets/codelet_zlange.c
@@ -86,8 +86,8 @@ void INSERT_TASK_zlange_max(const RUNTIME_option_t *options,
     struct starpu_codelet *codelet = &cl_zlange_max;
     void (*callback)(void*) = options->profiling ? cl_zlange_callback : NULL;
 
-    if ( morse_desc_islocal( A, Am, An ) ||
-         morse_desc_islocal( B, Bm, Bn ) )
+    if ( chameleon_desc_islocal( A, Am, An ) ||
+         chameleon_desc_islocal( B, Bm, Bn ) )
     {
         starpu_insert_task(
             starpu_mpi_codelet(codelet),
diff --git a/runtime/starpu/codelets/codelet_zplssq.c b/runtime/starpu/codelets/codelet_zplssq.c
index f3183b77d27f152362ff5aee6f715e889c7a102f..847004cc9a745105dfe40c309a2b856e07957c07 100644
--- a/runtime/starpu/codelets/codelet_zplssq.c
+++ b/runtime/starpu/codelets/codelet_zplssq.c
@@ -110,7 +110,7 @@ void INSERT_TASK_zplssq2( const RUNTIME_option_t *options,
     struct starpu_codelet *codelet = &cl_zplssq2;
     void (*callback)(void*) = options->profiling ? cl_zplssq2_callback : NULL;
 
-    if ( morse_desc_islocal( RESULT, RESULTm, RESULTn ) ) {
+    if ( chameleon_desc_islocal( RESULT, RESULTm, RESULTn ) ) {
         starpu_insert_task(
             starpu_mpi_codelet(codelet),
             STARPU_RW, RTBLKADDR(RESULT, double, RESULTm, RESULTn),
diff --git a/runtime/starpu/control/runtime_async.c b/runtime/starpu/control/runtime_async.c
index 8b423836d2d07c32a9e4404620dfcfcc36eae027..c1b776c63a6e6edbb6812958169eb44943623731 100644
--- a/runtime/starpu/control/runtime_async.c
+++ b/runtime/starpu/control/runtime_async.c
@@ -23,10 +23,10 @@
 /**
  *  Create a sequence
  */
-int RUNTIME_sequence_create( CHAM_context_t  *morse,
+int RUNTIME_sequence_create( CHAM_context_t  *chamctxt,
                              RUNTIME_sequence_t *sequence )
 {
-    (void)morse;
+    (void)chamctxt;
     (void)sequence;
     return CHAMELEON_SUCCESS;
 }
@@ -34,10 +34,10 @@ int RUNTIME_sequence_create( CHAM_context_t  *morse,
 /**
  *  Destroy a sequence
  */
-int RUNTIME_sequence_destroy( CHAM_context_t  *morse,
+int RUNTIME_sequence_destroy( CHAM_context_t  *chamctxt,
                               RUNTIME_sequence_t *sequence )
 {
-    (void)morse;
+    (void)chamctxt;
     (void)sequence;
     return CHAMELEON_SUCCESS;
 }
@@ -45,14 +45,14 @@ int RUNTIME_sequence_destroy( CHAM_context_t  *morse,
 /**
  *  Wait for the completion of a sequence
  */
-int RUNTIME_sequence_wait( CHAM_context_t  *morse,
+int RUNTIME_sequence_wait( CHAM_context_t  *chamctxt,
                            RUNTIME_sequence_t *sequence )
 {
-    (void)morse;
+    (void)chamctxt;
     (void)sequence;
 
-    if (morse->progress_enabled) {
-        RUNTIME_progress(morse);
+    if (chamctxt->progress_enabled) {
+        RUNTIME_progress(chamctxt);
     }
 
     starpu_task_wait_for_all();
@@ -65,12 +65,12 @@ int RUNTIME_sequence_wait( CHAM_context_t  *morse,
 /**
  *  Terminate a sequence
  */
-void RUNTIME_sequence_flush( CHAM_context_t  *morse,
+void RUNTIME_sequence_flush( CHAM_context_t  *chamctxt,
                              RUNTIME_sequence_t *sequence,
                              RUNTIME_request_t  *request,
                              int status )
 {
-    (void)morse;
+    (void)chamctxt;
     sequence->request = request;
     sequence->status = status;
     request->status = status;
diff --git a/runtime/starpu/control/runtime_context.c b/runtime/starpu/control/runtime_context.c
index c82ed18ffe3561a6c7b9059a44683b70e32af79c..128841d2dabe2bd5b4fb7498fca26b7eab208162 100644
--- a/runtime/starpu/control/runtime_context.c
+++ b/runtime/starpu/control/runtime_context.c
@@ -35,20 +35,20 @@ int _starpu_is_initialized(void);
 /**
  *  Create new context
  */
-void RUNTIME_context_create( CHAM_context_t *morse )
+void RUNTIME_context_create( CHAM_context_t *chamctxt )
 {
     starpu_conf_t *conf;
 
-    morse->scheduler = RUNTIME_SCHED_STARPU;
+    chamctxt->scheduler = RUNTIME_SCHED_STARPU;
 
     if (! starpu_is_initialized() ) {
-        morse->schedopt = (void*) malloc (sizeof(struct starpu_conf));
-        conf = morse->schedopt;
+        chamctxt->schedopt = (void*) malloc (sizeof(struct starpu_conf));
+        conf = chamctxt->schedopt;
 
         starpu_conf_init( conf );
     }
     else {
-        morse->schedopt = NULL;
+        chamctxt->schedopt = NULL;
     }
 
     return;
@@ -57,11 +57,11 @@ void RUNTIME_context_create( CHAM_context_t *morse )
 /**
  *  Clean the context
  */
-void RUNTIME_context_destroy( CHAM_context_t *morse )
+void RUNTIME_context_destroy( CHAM_context_t *chamctxt )
 {
     /* StarPU was already initialized by an external library */
-    if (morse->schedopt) {
-        free(morse->schedopt);
+    if (chamctxt->schedopt) {
+        free(chamctxt->schedopt);
     }
     return;
 }
diff --git a/runtime/starpu/control/runtime_control.c b/runtime/starpu/control/runtime_control.c
index 83d77de808c3541f932e7cdd10bcd88163a2f6fb..fac25fc0ad61984a97bf6937b9e2a10284e944fe 100644
--- a/runtime/starpu/control/runtime_control.c
+++ b/runtime/starpu/control/runtime_control.c
@@ -25,12 +25,12 @@
 /**
  *
  */
-int RUNTIME_init( CHAM_context_t *morse,
+int RUNTIME_init( CHAM_context_t *chamctxt,
                   int ncpus,
                   int ncudas,
                   int nthreads_per_worker )
 {
-    starpu_conf_t *conf = (starpu_conf_t*)(morse->schedopt);
+    starpu_conf_t *conf = (starpu_conf_t*)(chamctxt->schedopt);
     int hres = -1;
 
     /* StarPU was already initialized by an external library */
@@ -64,14 +64,14 @@ int RUNTIME_init( CHAM_context_t *morse,
 
     if ((ncpus == -1)||(nthreads_per_worker == -1))
     {
-        morse->parallel_enabled = CHAMELEON_FALSE;
+        chamctxt->parallel_enabled = CHAMELEON_FALSE;
 
         hres = starpu_init( conf );
     }
     else {
         int worker;
 
-        morse->parallel_enabled = CHAMELEON_TRUE;
+        chamctxt->parallel_enabled = CHAMELEON_TRUE;
 
         for (worker = 0; worker < ncpus; worker++)
             conf->workers_bindid[worker] = (worker+1)*nthreads_per_worker - 1;
@@ -83,8 +83,8 @@ int RUNTIME_init( CHAM_context_t *morse,
 
         hres = starpu_init( conf );
 
-        morse->nworkers = ncpus;
-        morse->nthreads_per_worker = nthreads_per_worker;
+        chamctxt->nworkers = ncpus;
+        chamctxt->nthreads_per_worker = nthreads_per_worker;
     }
 
 #ifdef HAVE_STARPU_MALLOC_ON_NODE_SET_DEFAULT_FLAGS
@@ -115,12 +115,12 @@ int RUNTIME_init( CHAM_context_t *morse,
 /**
  *
  */
-void RUNTIME_finalize( CHAM_context_t *morse )
+void RUNTIME_finalize( CHAM_context_t *chamctxt )
 {
-    (void)morse;
+    (void)chamctxt;
 
     /* StarPU was already initialized by an external library */
-    if ( morse->schedopt == NULL ) {
+    if ( chamctxt->schedopt == NULL ) {
         return;
     }
 
@@ -139,9 +139,9 @@ void RUNTIME_finalize( CHAM_context_t *morse )
 /**
  *  To suspend the processing of new tasks by workers
  */
-void RUNTIME_pause( CHAM_context_t *morse )
+void RUNTIME_pause( CHAM_context_t *chamctxt )
 {
-    (void)morse;
+    (void)chamctxt;
     starpu_pause();
     return;
 }
@@ -150,9 +150,9 @@ void RUNTIME_pause( CHAM_context_t *morse )
  *  This is the symmetrical call to RUNTIME_pause,
  *  used to resume the workers polling for new tasks.
  */
-void RUNTIME_resume( CHAM_context_t *morse )
+void RUNTIME_resume( CHAM_context_t *chamctxt )
 {
-    (void)morse;
+    (void)chamctxt;
     starpu_resume();
     return;
 }
@@ -160,9 +160,9 @@ void RUNTIME_resume( CHAM_context_t *morse )
 /**
  *  Busy-waiting barrier
  */
-void RUNTIME_barrier( CHAM_context_t *morse )
+void RUNTIME_barrier( CHAM_context_t *chamctxt )
 {
-    (void)morse;
+    (void)chamctxt;
     starpu_task_wait_for_all();
 #if defined(CHAMELEON_USE_MPI)
     starpu_mpi_barrier(MPI_COMM_WORLD);
@@ -178,13 +178,13 @@ extern void (*update_progress_callback)(int, int);
 /**
  *  Display a progress information when executing the tasks
  */
-void RUNTIME_progress( CHAM_context_t *morse )
+void RUNTIME_progress( CHAM_context_t *chamctxt )
 {
     int tasksLeft, current, timer = 0;
     int max;
 
 #if defined(CHAMELEON_USE_MPI)
-    if ( morse->my_mpi_rank != 0 ) {
+    if ( chamctxt->my_mpi_rank != 0 ) {
         return;
     }
 #endif
@@ -207,32 +207,32 @@ void RUNTIME_progress( CHAM_context_t *morse )
         update_progress_callback(max, max);
     }
 
-    (void)morse;
+    (void)chamctxt;
     return;
 }
 
 /**
  * Thread rank.
  */
-int RUNTIME_thread_rank( CHAM_context_t *morse )
+int RUNTIME_thread_rank( CHAM_context_t *chamctxt )
 {
-    (void)morse;
+    (void)chamctxt;
     return starpu_worker_get_id();
 }
 
 /**
  * Number of threads.
  */
-int RUNTIME_thread_size( CHAM_context_t *morse )
+int RUNTIME_thread_size( CHAM_context_t *chamctxt )
 {
-    (void)morse;
+    (void)chamctxt;
     return starpu_worker_get_count_by_type( STARPU_CPU_WORKER );
 }
 
 /**
  *  The process rank
  */
-int RUNTIME_comm_rank( CHAM_context_t *morse )
+int RUNTIME_comm_rank( CHAM_context_t *chamctxt )
 {
     int rank = 0;
 
@@ -244,14 +244,14 @@ int RUNTIME_comm_rank( CHAM_context_t *morse )
 #  endif
 #endif
 
-    (void)morse;
+    (void)chamctxt;
     return rank;
 }
 
 /**
  *  This returns the size of the distributed computation
  */
-int RUNTIME_comm_size( CHAM_context_t *morse )
+int RUNTIME_comm_size( CHAM_context_t *chamctxt )
 {
     int size;
 #if defined(CHAMELEON_USE_MPI)
@@ -264,6 +264,6 @@ int RUNTIME_comm_size( CHAM_context_t *morse )
     size = 1;
 #endif
 
-    (void)morse;
+    (void)chamctxt;
     return size;
 }
diff --git a/runtime/starpu/control/runtime_descriptor.c b/runtime/starpu/control/runtime_descriptor.c
index e0fbf7469f288077ab3abc373330ec8834e5e2ad..60c368432e74a38ee0dd63fc91196544d0b38a23 100644
--- a/runtime/starpu/control/runtime_descriptor.c
+++ b/runtime/starpu/control/runtime_descriptor.c
@@ -56,7 +56,7 @@ chameleon_starpu_tag_init( int user_tag_width,
 #endif
 
         if ( !ok ) {
-            morse_error("RUNTIME_desc_create", "MPI_TAG_UB not known by StarPU");
+            chameleon_error("RUNTIME_desc_create", "MPI_TAG_UB not known by StarPU");
         }
 
         while ( ((uintptr_t)((1UL<<tag_width) - 1) > tag_ub ) &&
@@ -67,7 +67,7 @@ chameleon_starpu_tag_init( int user_tag_width,
         }
 
         if ( tag_width < TAG_WIDTH_MIN ) {
-            morse_error("RUNTIME_desc_create", "MPI_TAG_UB too small to identify all the data");
+            chameleon_error("RUNTIME_desc_create", "MPI_TAG_UB too small to identify all the data");
             return CHAMELEON_ERR_OUT_OF_RESOURCES;
         }
 
@@ -97,7 +97,7 @@ void RUNTIME_comm_set_tag_sizes( int user_tag_width,
     int rc;
     rc = chameleon_starpu_tag_init( user_tag_width, user_tag_sep );
     if ( rc != CHAMELEON_SUCCESS ) {
-        morse_error("RUNTIME_user_tag_size",
+        chameleon_error("RUNTIME_user_tag_size",
                     "must be called before creating any Cham descriptor with CHAMELEON_Desc_create(). The tag sizes will not be modified.");
     }
 #endif
@@ -171,7 +171,7 @@ void RUNTIME_desc_create( CHAM_desc_t *desc )
         {
             /* Disable the unregister as register failed */
             desc->register_mat = 0;
-            morse_warning("RUNTIME_desc_create(StarPU): cudaHostRegister - ", cudaGetErrorString( rc ));
+            chameleon_warning("RUNTIME_desc_create(StarPU): cudaHostRegister - ", cudaGetErrorString( rc ));
         }
     }
 #endif
@@ -187,7 +187,7 @@ void RUNTIME_desc_create( CHAM_desc_t *desc )
              ((desc->mb * lastnn   * eltsze) % pagesize != 0) ||
              ((lastmm   * lastnn   * eltsze) % pagesize != 0) )
         {
-            morse_error("RUNTIME_desc_create", "Matrix and tile size not suitable for out-of-core: all tiles have to be multiples of 4096. Tip : choose 'n' and 'nb' as both multiples of 32.");
+            chameleon_error("RUNTIME_desc_create", "Matrix and tile size not suitable for out-of-core: all tiles have to be multiples of 4096. Tip : choose 'n' and 'nb' as both multiples of 32.");
             return;
         }
     }
@@ -201,13 +201,13 @@ void RUNTIME_desc_create( CHAM_desc_t *desc )
 
         /* Check that we won't create overflow in tags used */
         if ( ((uintptr_t)(lnt*lmt)) > ((uintptr_t)(1UL<<tag_sep)) ) {
-            morse_fatal_error("RUNTIME_desc_create", "Too many tiles in the descriptor for MPI tags");
+            chameleon_fatal_error("RUNTIME_desc_create", "Too many tiles in the descriptor for MPI tags");
             return;
         }
         assert(lmt*lmt<=(1<<tag_sep));
 
         if ( ((uintptr_t)desc->id) >= (uintptr_t)(1UL<<(tag_width-tag_sep)) ) {
-            morse_fatal_error("RUNTIME_desc_create", "Number of descriptor available in MPI mode out of stock");
+            chameleon_fatal_error("RUNTIME_desc_create", "Number of descriptor available in MPI mode out of stock");
             return;
         }
         assert( ((uintptr_t)desc->id) < (uintptr_t)(1UL<<(tag_width-tag_sep)) );
@@ -251,7 +251,7 @@ void RUNTIME_desc_destroy( CHAM_desc_t *desc )
             /* Unmap the pinned memory associated to the matrix */
             if (cudaHostUnregister(desc->mat) != cudaSuccess)
             {
-                morse_warning("RUNTIME_desc_destroy(StarPU)",
+                chameleon_warning("RUNTIME_desc_destroy(StarPU)",
                               "cudaHostUnregister failed to unregister the "
                               "pinned memory associated to the matrix");
             }
@@ -276,7 +276,7 @@ int RUNTIME_desc_acquire( const CHAM_desc_t *desc )
         for (m = 0; m < lmt; m++)
         {
             if ( (*handle == NULL) ||
-                 !morse_desc_islocal( desc, m, n ) )
+                 !chameleon_desc_islocal( desc, m, n ) )
             {
                 handle++;
                 continue;
@@ -302,7 +302,7 @@ int RUNTIME_desc_release( const CHAM_desc_t *desc )
         for (m = 0; m < lmt; m++)
         {
             if ( (*handle == NULL) ||
-                 !morse_desc_islocal( desc, m, n ) )
+                 !chameleon_desc_islocal( desc, m, n ) )
             {
                 handle++;
                 continue;
@@ -378,7 +378,7 @@ void RUNTIME_desc_flush( const CHAM_desc_t     *desc,
 #if defined(CHAMELEON_USE_MPI)
             starpu_mpi_cache_flush( MPI_COMM_WORLD, *handle );
 #endif
-            if ( morse_desc_islocal( desc, m, n ) ) {
+            if ( chameleon_desc_islocal( desc, m, n ) ) {
                 chameleon_starpu_data_wont_use( *handle );
             }
         }
@@ -404,7 +404,7 @@ void RUNTIME_data_flush( const RUNTIME_sequence_t *sequence,
     starpu_mpi_cache_flush( MPI_COMM_WORLD, *handle );
 #endif
 
-    if ( morse_desc_islocal( A, m, n ) ) {
+    if ( chameleon_desc_islocal( A, m, n ) ) {
         chameleon_starpu_data_wont_use( *handle );
     }
 
diff --git a/runtime/starpu/control/runtime_options.c b/runtime/starpu/control/runtime_options.c
index 9fbf36435a982fb207a0c0dab868ae0ff6c29cd3..19d7689ba155c4620ad2a57e93f0211122a56491 100644
--- a/runtime/starpu/control/runtime_options.c
+++ b/runtime/starpu/control/runtime_options.c
@@ -22,7 +22,7 @@
 #include <stdlib.h>
 #include "chameleon_starpu.h"
 
-void RUNTIME_options_init( RUNTIME_option_t *option, CHAM_context_t *morse,
+void RUNTIME_options_init( RUNTIME_option_t *option, CHAM_context_t *chamctxt,
                            RUNTIME_sequence_t *sequence, RUNTIME_request_t *request )
 {
     option->sequence   = sequence;
@@ -37,10 +37,10 @@ void RUNTIME_options_init( RUNTIME_option_t *option, CHAM_context_t *morse,
     return;
 }
 
-void RUNTIME_options_finalize( RUNTIME_option_t *option, CHAM_context_t *morse )
+void RUNTIME_options_finalize( RUNTIME_option_t *option, CHAM_context_t *chamctxt )
 {
     (void)option;
-    (void)morse;
+    (void)chamctxt;
     return;
 }
 
diff --git a/runtime/starpu/control/runtime_profiling.c b/runtime/starpu/control/runtime_profiling.c
index 7e29931654082390ed8562d339b90dcbb0cde957..7c5f5b9c548573fe665d61c948c757502aa5c11c 100644
--- a/runtime/starpu/control/runtime_profiling.c
+++ b/runtime/starpu/control/runtime_profiling.c
@@ -38,17 +38,17 @@ double RUNTIME_get_time(){
 /**
  *  Set iteration numbers for traces
  */
-void RUNTIME_iteration_push( CHAM_context_t *morse, unsigned long iteration )
+void RUNTIME_iteration_push( CHAM_context_t *chamctxt, unsigned long iteration )
 {
-    (void)morse;
+    (void)chamctxt;
 #if defined(HAVE_STARPU_ITERATION_PUSH)
     starpu_iteration_push(iteration);
 #endif
 }
 
-void RUNTIME_iteration_pop( CHAM_context_t *morse )
+void RUNTIME_iteration_pop( CHAM_context_t *chamctxt )
 {
-    (void)morse;
+    (void)chamctxt;
 #if defined(HAVE_STARPU_ITERATION_PUSH)
     starpu_iteration_pop();
 #endif
diff --git a/runtime/starpu/control/runtime_workspace.c b/runtime/starpu/control/runtime_workspace.c
index c463dcf12920b85420b95dbb24310d0d5b783008..35695a0e4e55eb92101fe916cb77a31ffce308c6 100644
--- a/runtime/starpu/control/runtime_workspace.c
+++ b/runtime/starpu/control/runtime_workspace.c
@@ -21,7 +21,7 @@
 
 static void RUNTIME_allocate_workspace_on_workers(void *arg)
 {
-    struct morse_starpu_ws_s *workspace = arg;
+    struct chameleon_starpu_ws_s *workspace = arg;
     enum starpu_worker_archtype type = 0;
     (void)type;
 
@@ -59,7 +59,7 @@ static void RUNTIME_allocate_workspace_on_workers(void *arg)
 
 static void RUNTIME_free_workspace_on_workers(void *arg)
 {
-    struct morse_starpu_ws_s *workspace = arg;
+    struct chameleon_starpu_ws_s *workspace = arg;
     enum starpu_worker_archtype type = 0;
     (void)type;
     int id = starpu_worker_get_id();
@@ -100,7 +100,7 @@ int RUNTIME_starpu_ws_alloc(CHAMELEON_starpu_ws_t **workspace,
     if (!workspace)
         return -EINVAL;
 
-    struct morse_starpu_ws_s *descr = calloc(1, sizeof(struct morse_starpu_ws_s));
+    struct chameleon_starpu_ws_s *descr = calloc(1, sizeof(struct chameleon_starpu_ws_s));
 
     *workspace = descr;
 
@@ -130,7 +130,7 @@ int RUNTIME_starpu_ws_free(CHAMELEON_starpu_ws_t *workspace)
 
 void *RUNTIME_starpu_ws_getlocal(CHAMELEON_starpu_ws_t *workspace)
 {
-    struct morse_starpu_ws_s *descr = workspace;
+    struct chameleon_starpu_ws_s *descr = workspace;
     int id = starpu_worker_get_id();
     return descr->workspaces[id];
 }
diff --git a/runtime/starpu/include/chameleon_starpu.h.in b/runtime/starpu/include/chameleon_starpu.h.in
index e92aecf9d5eb2d3e90680067a1cf9f5780e6e563..27d220f4b86367dd1a2f8deb884dce9a701fe72c 100644
--- a/runtime/starpu/include/chameleon_starpu.h.in
+++ b/runtime/starpu/include/chameleon_starpu.h.in
@@ -135,7 +135,7 @@ chameleon_starpu_data_iscached(const CHAM_desc_t *A, int m, int n)
 }
 
 #define RUNTIME_ACCESS_WRITE_CACHED(A, Am, An) do {                 \
-        if (chameleon_starpu_data_iscached(A, Am, An)) __morse_need_submit = 1; } while(0)
+        if (chameleon_starpu_data_iscached(A, Am, An)) __chameleon_need_submit = 1; } while(0)
 
 #else
 
@@ -147,27 +147,27 @@ chameleon_starpu_data_iscached(const CHAM_desc_t *A, int m, int n)
 #ifdef CHAMELEON_ENABLE_PRUNING_STATS
 
 #define RUNTIME_PRUNING_STATS_BEGIN_ACCESS_DECLARATION \
-    int __morse_exec = 0; \
-    int __morse_changed = 0;
+    int __chameleon_exec = 0; \
+    int __chameleon_changed = 0;
 
 #define RUNTIME_PRUNING_STATS_ACCESS_W(A, Am, An) \
-    if (morse_desc_islocal(A, Am, An)) \
-        __morse_exec = 1;
+    if (chameleon_desc_islocal(A, Am, An)) \
+        __chameleon_exec = 1;
 
 #define RUNTIME_PRUNING_STATS_END_ACCESS_DECLARATION \
     RUNTIME_total_tasks++; \
-    if (__morse_exec) \
+    if (__chameleon_exec) \
         RUNTIME_exec_tasks++; \
-    else if (__morse_need_submit) \
+    else if (__chameleon_need_submit) \
         RUNTIME_comm_tasks++; \
-    else if (__morse_changed) \
+    else if (__chameleon_changed) \
         RUNTIME_changed_tasks++;
 
 #define RUNTIME_PRUNING_STATS_RANK_CHANGED(rank) \
-    int __morse_myrank; \
-    RUNTIME_comm_rank(&__morse_myrank); \
-    __morse_exec = (rank) == __morse_myrank; \
-    __morse_changed = 1; \
+    int __chameleon_myrank; \
+    RUNTIME_comm_rank(&__chameleon_myrank); \
+    __chameleon_exec = (rank) == __chameleon_myrank; \
+    __chameleon_changed = 1; \
 
 #else
 #define RUNTIME_PRUNING_STATS_BEGIN_ACCESS_DECLARATION
diff --git a/runtime/starpu/include/runtime_workspace.h b/runtime/starpu/include/runtime_workspace.h
index 8778f63ef99f4cb47c0e3d215f202e4afb16d66d..418e7324ea9985da3db7fdcd7ded9110e4f78ca1 100644
--- a/runtime/starpu/include/runtime_workspace.h
+++ b/runtime/starpu/include/runtime_workspace.h
@@ -27,14 +27,14 @@
 #define CHAMELEON_HOST_MEM    0
 #define CHAMELEON_WORKER_MEM  1
 
-struct morse_starpu_ws_s {
+struct chameleon_starpu_ws_s {
     size_t size;
     int    memory_location;
     int    which_workers;
     void  *workspaces[STARPU_NMAXWORKERS];
 };
 
-typedef struct morse_starpu_ws_s CHAMELEON_starpu_ws_t;
+typedef struct chameleon_starpu_ws_s CHAMELEON_starpu_ws_t;
 
 /*
  * This function creates a workspace on each type of worker in "which_workers"
diff --git a/testing/CMakeLists.txt b/testing/CMakeLists.txt
index 97d0a993f6b8e69e528c4dd115865bd0a9baba26..df43187fe6930f2487c073c2142caa9917381238 100644
--- a/testing/CMakeLists.txt
+++ b/testing/CMakeLists.txt
@@ -32,7 +32,7 @@ endif()
 # ------------------------
 #add_subdirectory(lin)
 
-# Generate morse auxiliary testing sources for all possible precisions
+# Generate chameleon auxiliary testing sources for all possible precisions
 # --------------------------------------------------------------------
 set(TESTING_HDRS_GENERATED "")
 set(ZHDR
@@ -45,7 +45,7 @@ precisions_rules_py(TESTING_HDRS_GENERATED "${ZHDR}"
 add_custom_target(testing_include ALL SOURCES ${TESTING_HDRS_GENERATED})
 set(CHAMELEON_SOURCES_TARGETS "${CHAMELEON_SOURCES_TARGETS};testing_include" CACHE INTERNAL "List of targets of sources")
 
-# Generate morse testing sources for all possible precisions
+# Generate chameleon testing sources for all possible precisions
 # ----------------------------------------------------------
 set(ZSRC
     testing_zauxiliary.c
diff --git a/testing/chameleon_testing.py b/testing/chameleon_testing.py
index 94cd149b70d59c534b177c620541caccdc4599cc..430c6cda95c003bda94a43ffa865c3777e695184 100755
--- a/testing/chameleon_testing.py
+++ b/testing/chameleon_testing.py
@@ -3,12 +3,12 @@
 
 
 ###############################################################################
-# morse_testing.py  [nbcores]
+# chameleon_testing.py  [nbcores]
 #  nbcores is a optional argument to give the number of cores to run the testing
 # Example:
-#     ./morse_testing.py
+#     ./chameleon_testing.py
 #                 No argument, so will run on half of the core if the machine has more than 2 cores
-#     ./morse_testing.py nbcores
+#     ./chameleon_testing.py nbcores
 #                 Will run on nbcores
 ###############################################################################
 
diff --git a/testing/lin/CMakeLists.txt b/testing/lin/CMakeLists.txt
index 704c0b462daa0be96295a292e0456d81bef1c008..e8f05f7c7bf369784eb416c980eb3b726fb4af2b 100644
--- a/testing/lin/CMakeLists.txt
+++ b/testing/lin/CMakeLists.txt
@@ -163,48 +163,48 @@ list(APPEND libs_for_tests ${CMAKE_Fortran_LDFLAGS})
 # Define precisions to compile
 # ----------------------------
 if(CHAMELEON_PREC_S)
-    add_executable(morse_xlintsts ${ALINTST} ${SLINTST} ${SCLNTST})
-    set_property(TARGET morse_xlintsts PROPERTY LINKER_LANGUAGE Fortran)
-    target_link_libraries(morse_xlintsts ${libs_for_tests})
-    install(TARGETS morse_xlintsts
+    add_executable(chameleon_xlintsts ${ALINTST} ${SLINTST} ${SCLNTST})
+    set_property(TARGET chameleon_xlintsts PROPERTY LINKER_LANGUAGE Fortran)
+    target_link_libraries(chameleon_xlintsts ${libs_for_tests})
+    install(TARGETS chameleon_xlintsts
       DESTINATION bin/testing/lin)
 endif()
 
 if(CHAMELEON_PREC_S)
-    add_executable(morse_xlintstd ${ALINTST} ${DLINTST} ${DZLNTST})
-    set_property(TARGET morse_xlintstd PROPERTY LINKER_LANGUAGE Fortran)
-    target_link_libraries(morse_xlintstd ${libs_for_tests})
-    install(TARGETS morse_xlintstd
+    add_executable(chameleon_xlintstd ${ALINTST} ${DLINTST} ${DZLNTST})
+    set_property(TARGET chameleon_xlintstd PROPERTY LINKER_LANGUAGE Fortran)
+    target_link_libraries(chameleon_xlintstd ${libs_for_tests})
+    install(TARGETS chameleon_xlintstd
       DESTINATION bin/testing/lin)
 endif()
 
 if(CHAMELEON_PREC_C)
-    add_executable(morse_xlintstc ${ALINTST} ${CLINTST} ${SCLNTST})
-    set_property(TARGET morse_xlintstc PROPERTY LINKER_LANGUAGE Fortran)
-    target_link_libraries(morse_xlintstc ${libs_for_tests})
-    install(TARGETS morse_xlintstc
+    add_executable(chameleon_xlintstc ${ALINTST} ${CLINTST} ${SCLNTST})
+    set_property(TARGET chameleon_xlintstc PROPERTY LINKER_LANGUAGE Fortran)
+    target_link_libraries(chameleon_xlintstc ${libs_for_tests})
+    install(TARGETS chameleon_xlintstc
       DESTINATION bin/testing/lin)
 endif()
 
 if(CHAMELEON_PREC_Z)
-    add_executable(morse_xlintstz ${ALINTST} ${ZLINTST} ${DZLNTST})
-    set_property(TARGET morse_xlintstz PROPERTY LINKER_LANGUAGE Fortran)
-    target_link_libraries(morse_xlintstz ${libs_for_tests})
-    install(TARGETS morse_xlintstz
+    add_executable(chameleon_xlintstz ${ALINTST} ${ZLINTST} ${DZLNTST})
+    set_property(TARGET chameleon_xlintstz PROPERTY LINKER_LANGUAGE Fortran)
+    target_link_libraries(chameleon_xlintstz ${libs_for_tests})
+    install(TARGETS chameleon_xlintstz
       DESTINATION bin/testing/lin)
 endif()
 
 # Copy launcher
 # -------------
 add_custom_target(lin_launcher ALL
-                  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/morse_lintesting.py
-                                                   ${CMAKE_CURRENT_BINARY_DIR}/morse_lintesting.py)
+                  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/chameleon_lintesting.py
+                                                   ${CMAKE_CURRENT_BINARY_DIR}/chameleon_lintesting.py)
 
 # Add tests (C/CPP)
 # -----------------
 add_test(NAME    lapack_testing
          COMMAND ${PYTHON_EXECUTABLE}
-                 ${CMAKE_CURRENT_BINARY_DIR}/morse_lintesting.py
+                 ${CMAKE_CURRENT_BINARY_DIR}/chameleon_lintesting.py
         )
 
 ###
diff --git a/testing/lin/cchkaa.f b/testing/lin/cchkaa.f
index 9df44cd55566bdf460eb3c68a3b2da189bcc0a6f..70d0f96b80038bb40e996e37e80e8363995cfc09 100644
--- a/testing/lin/cchkaa.f
+++ b/testing/lin/cchkaa.f
@@ -37,7 +37,7 @@
 
       PROGRAM CCHKAA
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- CHAMELEON test routine (From LAPACK version 3.1.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/cchkge.f b/testing/lin/cchkge.f
index a5dd1759ff2c65ae9f7f66de63217adff4ecac4c..2580b5c4ae1d32f7195eeaf7b2f35406a1c17ede 100644
--- a/testing/lin/cchkge.f
+++ b/testing/lin/cchkge.f
@@ -39,7 +39,7 @@
      $                   IBVAL, NSVAL, THRESH, TSTERR, NMAX, A, AFAC,
      $                   AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/cchklq.f b/testing/lin/cchklq.f
index cfcb5b969134fe5f7764ba924c16ae41d0d2043c..05248a3381306122d169640ff449fe71a90232a8 100644
--- a/testing/lin/cchklq.f
+++ b/testing/lin/cchklq.f
@@ -40,7 +40,7 @@
      $                   AL, AC, B, X, XACT, TAU, WORK, RWORK, IWORK,
      $                   NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/cchkpo.f b/testing/lin/cchkpo.f
index 6b6b4da14f693143b530770ff402851136f51d3c..58eafcd92b8c34f673b11a22245326d64160a2cc 100644
--- a/testing/lin/cchkpo.f
+++ b/testing/lin/cchkpo.f
@@ -39,7 +39,7 @@
      $                   THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X,
      $                   XACT, WORK, RWORK, NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/cchkqr.f b/testing/lin/cchkqr.f
index 0f63d80aeffbade1ccadda5d683997ca42df0bc9..51a76d0ef17a6433d401cdc2e165b2d21880b594 100644
--- a/testing/lin/cchkqr.f
+++ b/testing/lin/cchkqr.f
@@ -40,7 +40,7 @@
      $                   AR, AC, B, X, XACT, TAU, WORK, RWORK, IWORK, 
      $                   NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/cdrvge.f b/testing/lin/cdrvge.f
index 84b5d85f111a7ed6c0dadb69250a9111cfc82eee..27e41df43754db51a8f7a687eb29e99b398fe8a2 100644
--- a/testing/lin/cdrvge.f
+++ b/testing/lin/cdrvge.f
@@ -39,7 +39,7 @@
      $                   A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK,
      $                   RWORK, IWORK, NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/cdrvls.f b/testing/lin/cdrvls.f
index ec3ec92f77d35f88abcfbc4b99e315cb24ebf4bd..546107210da830284ad6f1eccbaf66ba1c911f90 100644
--- a/testing/lin/cdrvls.f
+++ b/testing/lin/cdrvls.f
@@ -40,7 +40,7 @@
      $                   B, COPYB, C, S, COPYS, WORK, RWORK, IWORK,
      $                   NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/cdrvpo.f b/testing/lin/cdrvpo.f
index cef8ac3327d24495df5289a4ed130d87b4c88d75..86c95add57f431fee6270e46880fbec604a167d9 100644
--- a/testing/lin/cdrvpo.f
+++ b/testing/lin/cdrvpo.f
@@ -39,7 +39,7 @@
      $                   A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK,
      $                   RWORK, NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/cerrge.f b/testing/lin/cerrge.f
index 520f01e488544da8d8d494f8060a6c7c5ad494f4..a2b2aa57edadaf1e2980d7c9cb490836bf7bc05b 100644
--- a/testing/lin/cerrge.f
+++ b/testing/lin/cerrge.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE CERRGE( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/cerrlq.f b/testing/lin/cerrlq.f
index 09620572e08f1405d1e929be0513538ecd4e2699..29feb5a26050dc93955b45b7fcf6ce86f33f493f 100644
--- a/testing/lin/cerrlq.f
+++ b/testing/lin/cerrlq.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE CERRLQ( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/cerrls.f b/testing/lin/cerrls.f
index 66274369f6296e4781c4552dd76f4d9d64086c07..f28de43499c505aa111933f1d31b378105c89929 100644
--- a/testing/lin/cerrls.f
+++ b/testing/lin/cerrls.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE CERRLS( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/cerrpo.f b/testing/lin/cerrpo.f
index 01c0579755a6d05c4726cd9188a3b671a6a31a4d..0dad17d366cd9ae994cb502daf4eb89b6f9ab41d 100644
--- a/testing/lin/cerrpo.f
+++ b/testing/lin/cerrpo.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE CERRPO( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/cerrqr.f b/testing/lin/cerrqr.f
index 9518b6ff76f8b22074598045a89607a88aeebc75..cad6abd23650681171acb381e4558d718e73050d 100644
--- a/testing/lin/cerrqr.f
+++ b/testing/lin/cerrqr.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE CERRQR( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/cerrvx.f b/testing/lin/cerrvx.f
index 4f1e693bd502dae6b1164d24b697cefc3a440475..80309647034c7d5e53aa1d53a6c404204f63a3c6 100644
--- a/testing/lin/cerrvx.f
+++ b/testing/lin/cerrvx.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE CERRVX( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/morse_lintesting.py b/testing/lin/chameleon_lintesting.py
similarity index 93%
rename from testing/lin/morse_lintesting.py
rename to testing/lin/chameleon_lintesting.py
index 47874cc1e2a963ca65de7a5d6fba654571893f5e..66e351d93a3aa34bd8840c1420ca52e439e35822 100755
--- a/testing/lin/morse_lintesting.py
+++ b/testing/lin/chameleon_lintesting.py
@@ -28,7 +28,7 @@ for dtype in range(4):
   print " "
   sys.stdout.flush() # make sure progress of testing is shown
   f = open(filename, "a")
-  test1 = os.popen("morse_xlintst%s < %stest.in" % (letter, letter))
+  test1 = os.popen("chameleon_xlintst%s < %stest.in" % (letter, letter))
   for line in test1.readlines():
     f.write(str(line))
     if "passed" in line : print line,
diff --git a/testing/lin/clqt01.f b/testing/lin/clqt01.f
index ef2442b93db885d40706f50c2b9e6139420fa933..377a5ee2c2802efa86fed52e17a3a935d9e55f1c 100644
--- a/testing/lin/clqt01.f
+++ b/testing/lin/clqt01.f
@@ -38,7 +38,7 @@
       SUBROUTINE CLQT01( M, N, A, AF, Q, L, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/clqt02.f b/testing/lin/clqt02.f
index d2e062e00d1a7e2b3ea95ca58f25c537b52456e3..2c4aaf00252bc40c6a72d0a200bfcc8dee1209db 100644
--- a/testing/lin/clqt02.f
+++ b/testing/lin/clqt02.f
@@ -38,7 +38,7 @@
       SUBROUTINE CLQT02( M, N, K, A, AF, Q, L, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/clqt03.f b/testing/lin/clqt03.f
index cb4baadae5e2fa866a719de3321d9a8aedea5532..ebd94099f5781bc846e85b945374610215731ab4 100644
--- a/testing/lin/clqt03.f
+++ b/testing/lin/clqt03.f
@@ -38,7 +38,7 @@
       SUBROUTINE CLQT03( M, N, K, AF, C, CC, Q, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/cporfs.f b/testing/lin/cporfs.f
index c91db9c8a0d0a439cac7445ba23dbc5d70f0fe33..8c86fffb0941b89d82b2555a74fc8bc50e36ffa2 100644
--- a/testing/lin/cporfs.f
+++ b/testing/lin/cporfs.f
@@ -38,7 +38,7 @@
       SUBROUTINE CPORFS( UPLO, N, NRHS, A, LDA, AF, LDAF, B, LDB, X,
      $                   LDX, FERR, BERR, WORK, RWORK, INFO )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK routine (version 3.2) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/cposvx.f b/testing/lin/cposvx.f
index f55358cbe1592c03bd188b933e99f8c0af64dcd1..e5b9032d9dff35cba8838a2d498a5840782a8544 100644
--- a/testing/lin/cposvx.f
+++ b/testing/lin/cposvx.f
@@ -39,7 +39,7 @@
      $                   S, B, LDB, X, LDX, RCOND, FERR, BERR, WORK,
      $                   RWORK, INFO )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK driver routine (version 3.2) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/cqrt01.f b/testing/lin/cqrt01.f
index b2ab9a788cf9143aa1813f9cf18db378809e36c9..f113fece547355c559531cdbe29e827caaaddf05 100644
--- a/testing/lin/cqrt01.f
+++ b/testing/lin/cqrt01.f
@@ -38,7 +38,7 @@
       SUBROUTINE CQRT01( M, N, A, AF, Q, R, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/cqrt02.f b/testing/lin/cqrt02.f
index b928edae0f72813252262b934717aa21770fb6ed..b784c0957775a4418d5e3a83604dd72e18c8b494 100644
--- a/testing/lin/cqrt02.f
+++ b/testing/lin/cqrt02.f
@@ -38,7 +38,7 @@
       SUBROUTINE CQRT02( M, N, K, A, AF, Q, R, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/cqrt03.f b/testing/lin/cqrt03.f
index 1fa96b521508e2c1ef8cd0d7203ec468c653b1d8..bafc62fcb9550f004324f341b717af23e4d43118 100644
--- a/testing/lin/cqrt03.f
+++ b/testing/lin/cqrt03.f
@@ -38,7 +38,7 @@
       SUBROUTINE CQRT03( M, N, K, AF, C, CC, Q, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/dchkaa.f b/testing/lin/dchkaa.f
index 7e8d6e2f76a346654b0c08e36356c5cae1c4d589..efdd0e458131f8cf8cab82b57a6dbbb2150ae85d 100644
--- a/testing/lin/dchkaa.f
+++ b/testing/lin/dchkaa.f
@@ -37,7 +37,7 @@
 
       PROGRAM DCHKAA
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- CHAMELEON test routine (from LAPACK version 3.1.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/dchkge.f b/testing/lin/dchkge.f
index ac6bddff337d1f1941684d9faa64a7d6acc838bf..265c45d0c3057c0e1f7cdb3522e642a7ea32f6f3 100644
--- a/testing/lin/dchkge.f
+++ b/testing/lin/dchkge.f
@@ -39,7 +39,7 @@
      $                   IBVAL, NSVAL, THRESH, TSTERR, NMAX, A, AFAC,
      $                   AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/dchklq.f b/testing/lin/dchklq.f
index f947b3c4aa0f53ab917509992eb94641e1a2c14b..6b8abb9dca4c4de87aaa767206b272dafe1d4ebe 100644
--- a/testing/lin/dchklq.f
+++ b/testing/lin/dchklq.f
@@ -40,7 +40,7 @@
      $                   AL, AC, B, X, XACT, TAU, WORK, RWORK, IWORK,
      $                   NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/dchkpo.f b/testing/lin/dchkpo.f
index 62d55c1bee39e51b446fccddf9f3f6832db26477..7a056e44d1abbb8b6cc92d492c2c7e3ee866ce9d 100644
--- a/testing/lin/dchkpo.f
+++ b/testing/lin/dchkpo.f
@@ -39,7 +39,7 @@
      $                   THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X,
      $                   XACT, WORK, RWORK, IWORK, NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *
 *  -- LAPACK test routine (version 3.1) --
diff --git a/testing/lin/dchkqr.f b/testing/lin/dchkqr.f
index 8e7b95bc3658271e7098be35c390521359c67728..035bf1f888febad1997e5f4bc211cd8e2fe83c88 100644
--- a/testing/lin/dchkqr.f
+++ b/testing/lin/dchkqr.f
@@ -40,7 +40,7 @@
      $                   AR, AC, B, X, XACT, TAU, WORK, RWORK, IWORK,
      $                   NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/ddrvge.f b/testing/lin/ddrvge.f
index a3e8967c23aded6383d896f190bbd698f1ec1197..c9aa9b0613e82cd6939e10fca79c61c651e069ea 100644
--- a/testing/lin/ddrvge.f
+++ b/testing/lin/ddrvge.f
@@ -39,7 +39,7 @@
      $                   A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK,
      $                   RWORK, IWORK, NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/ddrvls.f b/testing/lin/ddrvls.f
index 16ec5e8cdd3ebbda46a2b28621945c2c71fa8334..2081cacfcf79f562fde5443fa420550d7a9cc0e1 100644
--- a/testing/lin/ddrvls.f
+++ b/testing/lin/ddrvls.f
@@ -39,7 +39,7 @@
      $                   NBVAL, NXVAL, THRESH, TSTERR, A, COPYA, B,
      $                   COPYB, C, S, COPYS, IBVAL, WORK, IWORK, NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/ddrvpo.f b/testing/lin/ddrvpo.f
index 40de4d5266428a1af51176f31aa924c2b036080f..d1d5fcfc11abe66ae94da0126e8ce3dfa102ae43 100644
--- a/testing/lin/ddrvpo.f
+++ b/testing/lin/ddrvpo.f
@@ -39,7 +39,7 @@
      $                   A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK,
      $                   RWORK, IWORK, NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/derrge.f b/testing/lin/derrge.f
index 8c307b9185050cd5a108b3e640276880b6ae5c12..693545c64532e6e1a43ac13339c13f5abdd5d71c 100644
--- a/testing/lin/derrge.f
+++ b/testing/lin/derrge.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE DERRGE( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/derrlq.f b/testing/lin/derrlq.f
index e8797e12e969521dc75a07b072d0251dc88582f9..fe0ced7828d55cd342eba340bc894f671a132004 100644
--- a/testing/lin/derrlq.f
+++ b/testing/lin/derrlq.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE DERRLQ( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/derrls.f b/testing/lin/derrls.f
index 49069b22a30b770caa2859384005c3996e022764..9a8c2c015c931bf4a741326428f7369c15edbf6b 100644
--- a/testing/lin/derrls.f
+++ b/testing/lin/derrls.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE DERRLS( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/derrpo.f b/testing/lin/derrpo.f
index 834f300f41a454486c9003cc792267d158a8f955..ace3dabfa524964f916bd5b7c5c7ec49e850d8c0 100644
--- a/testing/lin/derrpo.f
+++ b/testing/lin/derrpo.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE DERRPO( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *
 *  -- LAPACK test routine (version 3.1) --
diff --git a/testing/lin/derrqr.f b/testing/lin/derrqr.f
index 082237f48057a8b9fbf63f2ca69cdd7addef3dda..7f7d1c4353cc2b62700876c9b3a00507649dcad6 100644
--- a/testing/lin/derrqr.f
+++ b/testing/lin/derrqr.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE DERRQR( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/derrvx.f b/testing/lin/derrvx.f
index 56e9203009975f4244df8a1aff941750e9802b1a..e246fe9902b502081d0c7555efc7b827ac4ff5e6 100644
--- a/testing/lin/derrvx.f
+++ b/testing/lin/derrvx.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE DERRVX( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/dlqt01.f b/testing/lin/dlqt01.f
index 5f7333c6d6891a6189956ab0a2c794e06a418999..e316ae428a6b8802e9d1dde421f27a025d6040e0 100644
--- a/testing/lin/dlqt01.f
+++ b/testing/lin/dlqt01.f
@@ -38,7 +38,7 @@
       SUBROUTINE DLQT01( M, N, A, AF, Q, L, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/dlqt02.f b/testing/lin/dlqt02.f
index 058dfbfe300a05dfa17913e5c96c008aa15b64aa..25f2fe47c3730f43abf56f27f365d0e1f32d6805 100644
--- a/testing/lin/dlqt02.f
+++ b/testing/lin/dlqt02.f
@@ -38,7 +38,7 @@
       SUBROUTINE DLQT02( M, N, K, A, AF, Q, L, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/dlqt03.f b/testing/lin/dlqt03.f
index a5a7f6425eea81bd6a3a788981c4a1cc030f5941..8f01f9ea40063d1a24663a44496568942133db64 100644
--- a/testing/lin/dlqt03.f
+++ b/testing/lin/dlqt03.f
@@ -38,7 +38,7 @@
       SUBROUTINE DLQT03( M, N, K, AF, C, CC, Q, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/dporfs.f b/testing/lin/dporfs.f
index 517a73904bf90459ba336a8d33375b4f0e97541c..9e27bd115b9d694f31b2e498f9f4b2ecd3400e29 100644
--- a/testing/lin/dporfs.f
+++ b/testing/lin/dporfs.f
@@ -38,7 +38,7 @@
       SUBROUTINE DPORFS( UPLO, N, NRHS, A, LDA, AF, LDAF, B, LDB, X,
      $                   LDX, FERR, BERR, WORK, IWORK, INFO )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK routine (version 3.2) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/dposvx.f b/testing/lin/dposvx.f
index e6092665952c7033756e4921cdb3e1e6450ef327..451fe7aba06f6549955ee506f1baf5a809db2988 100644
--- a/testing/lin/dposvx.f
+++ b/testing/lin/dposvx.f
@@ -39,7 +39,7 @@
      $                   S, B, LDB, X, LDX, RCOND, FERR, BERR, WORK,
      $                   IWORK, INFO )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK driver routine (version 3.2) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/dqrt01.f b/testing/lin/dqrt01.f
index 8de27c37e187925bb7ca5b244bbac740b0ba76fd..6cb3066430cff68c5e27d402cff9edea20c9f675 100644
--- a/testing/lin/dqrt01.f
+++ b/testing/lin/dqrt01.f
@@ -38,7 +38,7 @@
       SUBROUTINE DQRT01( M, N, A, AF, Q, R, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/dqrt02.f b/testing/lin/dqrt02.f
index 99da04d3d377b09949e898d4b596175793f09b44..1d9742e02160042f25978b5ff29d1ae204dc86be 100644
--- a/testing/lin/dqrt02.f
+++ b/testing/lin/dqrt02.f
@@ -38,7 +38,7 @@
       SUBROUTINE DQRT02( M, N, K, A, AF, Q, R, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/dqrt03.f b/testing/lin/dqrt03.f
index 7197dea4307c5cb4efb99a42a49866189b2a3054..0c8cb554921aea273c10b94240b9521b408f20fb 100644
--- a/testing/lin/dqrt03.f
+++ b/testing/lin/dqrt03.f
@@ -38,7 +38,7 @@
       SUBROUTINE DQRT03( M, N, K, AF, C, CC, Q, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/schkaa.f b/testing/lin/schkaa.f
index 620e08e2e599428e3a55b4b9444f72799cb0ef29..855f6de32ff2b5d5898cc76b1411a0d624f4e1d8 100644
--- a/testing/lin/schkaa.f
+++ b/testing/lin/schkaa.f
@@ -37,7 +37,7 @@
 
       PROGRAM SCHKAA
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- CHAMELEON test routine (From LAPACK version 3.1.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/schkge.f b/testing/lin/schkge.f
index 6624c6aaec8169216fb7cda093bbdb4c8efc65cb..e79d3d05f26d259ccf62b4be9188fe6030e8cd62 100644
--- a/testing/lin/schkge.f
+++ b/testing/lin/schkge.f
@@ -39,7 +39,7 @@
      $                   IBVAL, NSVAL, THRESH, TSTERR, NMAX, A, AFAC,
      $                   AINV, B, X, XACT, WORK, RWORK, IWORK, NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/schklq.f b/testing/lin/schklq.f
index 2273a7aae4ddd3485894c23621e8c804282b1fe7..fcc7aecb7649af350067a6d0fd60fd5a93e6847f 100644
--- a/testing/lin/schklq.f
+++ b/testing/lin/schklq.f
@@ -40,7 +40,7 @@
      $                   AL, AC, B, X, XACT, TAU, WORK, RWORK, IWORK,
      $                   NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/schkpo.f b/testing/lin/schkpo.f
index 5f4979a4f270fd0835a64d23b98b724c1383225a..766b13ca98c6eea23d68c046017ff83e95f4403b 100644
--- a/testing/lin/schkpo.f
+++ b/testing/lin/schkpo.f
@@ -39,7 +39,7 @@
      $                   THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X,
      $                   XACT, WORK, RWORK, IWORK, NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/schkqr.f b/testing/lin/schkqr.f
index aec33a9e55db74e964b482e7c3f8bf0113b618a8..6b54d34325b6392803c71aaf0c480ccf661b90a6 100644
--- a/testing/lin/schkqr.f
+++ b/testing/lin/schkqr.f
@@ -40,7 +40,7 @@
      $                   AR, AC, B, X, XACT, TAU, WORK, RWORK, IWORK, 
      $                   NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/sdrvge.f b/testing/lin/sdrvge.f
index 150116f07028fac770ab0f00e67453ac4f893e6a..4069de44e48b274f299776278e1d59633e3cd516 100644
--- a/testing/lin/sdrvge.f
+++ b/testing/lin/sdrvge.f
@@ -39,7 +39,7 @@
      $                   A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK,
      $                   RWORK, IWORK, NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/sdrvls.f b/testing/lin/sdrvls.f
index e2e3f3bd70076474e810220eb50e8c318a0ca782..805585ca325818995c358a12c015765114f7bb18 100644
--- a/testing/lin/sdrvls.f
+++ b/testing/lin/sdrvls.f
@@ -39,7 +39,7 @@
      $                   NBVAL, NXVAL, THRESH, TSTERR, A, COPYA, B,
      $                   COPYB, C, S, COPYS, IBVAL, WORK, IWORK, NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/sdrvpo.f b/testing/lin/sdrvpo.f
index 20343b350e8359b424755e777f34e6d676443a3a..3bc1e580ac2c5101cf157e2e61f0a7e0e2bc4b30 100644
--- a/testing/lin/sdrvpo.f
+++ b/testing/lin/sdrvpo.f
@@ -39,7 +39,7 @@
      $                   A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK,
      $                   RWORK, IWORK, NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/serrge.f b/testing/lin/serrge.f
index a8095146ff67532beb42b056c898df0c42c36e43..69c90f137ff7edbef185da99620cb3e6ad40daa6 100644
--- a/testing/lin/serrge.f
+++ b/testing/lin/serrge.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE SERRGE( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/serrlq.f b/testing/lin/serrlq.f
index 38d3dab5f35bf29ad71dc59d6f187ff591fc1d71..6ad37a342042eb4468eb5ecb58e8dc08572ee72b 100644
--- a/testing/lin/serrlq.f
+++ b/testing/lin/serrlq.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE SERRLQ( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/serrls.f b/testing/lin/serrls.f
index b94c4e76e21ecbd817c1729fe32f80a21342c60f..6d6008fbc986035c578818c1397ad8e65c5d5539 100644
--- a/testing/lin/serrls.f
+++ b/testing/lin/serrls.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE SERRLS( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/serrpo.f b/testing/lin/serrpo.f
index c2c65ecc54e02c86b0256355531f8b2ea09bf0d0..cfa8c8c3f4be5ed012b6c436e26283724d7eab7f 100644
--- a/testing/lin/serrpo.f
+++ b/testing/lin/serrpo.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE SERRPO( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/serrqr.f b/testing/lin/serrqr.f
index 98284d7586bf9421c885518e6430484d96e3f371..45aa219b030f8ce36504057671eed8ad366a9350 100644
--- a/testing/lin/serrqr.f
+++ b/testing/lin/serrqr.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE SERRQR( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/serrvx.f b/testing/lin/serrvx.f
index e35daa6334b0152bebd58a949270f95b8c11cc00..c0b83743e54838adc7f2fe83eeef788aaa075f32 100644
--- a/testing/lin/serrvx.f
+++ b/testing/lin/serrvx.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE SERRVX( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/slqt01.f b/testing/lin/slqt01.f
index 9443bd2c658c8895a28ae5c861a52823b37b2057..ebe0a94366d9b1cf8567fb8f71fbed57c59695dd 100644
--- a/testing/lin/slqt01.f
+++ b/testing/lin/slqt01.f
@@ -38,7 +38,7 @@
       SUBROUTINE SLQT01( M, N, A, AF, Q, L, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/slqt02.f b/testing/lin/slqt02.f
index 8691a4d5c40c4513548dae031708de2399f83362..4da3056913b903808dd83bd2df5667d61ee7046b 100644
--- a/testing/lin/slqt02.f
+++ b/testing/lin/slqt02.f
@@ -38,7 +38,7 @@
       SUBROUTINE SLQT02( M, N, K, A, AF, Q, L, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/slqt03.f b/testing/lin/slqt03.f
index 5d6bdfa2126ffd25d11258d636f8871625e3f772..eec964224203175bce464062202882c6e1d839f4 100644
--- a/testing/lin/slqt03.f
+++ b/testing/lin/slqt03.f
@@ -38,7 +38,7 @@
       SUBROUTINE SLQT03( M, N, K, AF, C, CC, Q, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/sporfs.f b/testing/lin/sporfs.f
index 3d4ec91aefd368c17874c8a2a7198408adfe474e..f956674cfe7f5b81b3aca68ce53906a9357245c2 100644
--- a/testing/lin/sporfs.f
+++ b/testing/lin/sporfs.f
@@ -38,7 +38,7 @@
       SUBROUTINE SPORFS( UPLO, N, NRHS, A, LDA, AF, LDAF, B, LDB, X,
      $                   LDX, FERR, BERR, WORK, IWORK, INFO )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK routine (version 3.2) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/sposvx.f b/testing/lin/sposvx.f
index 93ded4a4260418d6a6e9cb58851ce174372b15e1..84e4e6ff4359c53c3ed95998261e70ec3913846c 100644
--- a/testing/lin/sposvx.f
+++ b/testing/lin/sposvx.f
@@ -39,7 +39,7 @@
      $                   S, B, LDB, X, LDX, RCOND, FERR, BERR, WORK,
      $                   IWORK, INFO )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK driver routine (version 3.2) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/sqrt01.f b/testing/lin/sqrt01.f
index 030466409510b4e0755a6cde7dfdb2a6e0ad77b9..55862d84ea83f2825906e027fc69aa8969f0c2ef 100644
--- a/testing/lin/sqrt01.f
+++ b/testing/lin/sqrt01.f
@@ -38,7 +38,7 @@
       SUBROUTINE SQRT01( M, N, A, AF, Q, R, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/sqrt02.f b/testing/lin/sqrt02.f
index 09252a0ac57808ee203d3633ad9781dad922c657..2b80210bf97f65e2a8f11784d067d3ffc372008c 100644
--- a/testing/lin/sqrt02.f
+++ b/testing/lin/sqrt02.f
@@ -38,7 +38,7 @@
       SUBROUTINE SQRT02( M, N, K, A, AF, Q, R, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/sqrt03.f b/testing/lin/sqrt03.f
index 9c4150a216b3ffbed4a505f368fad8bc6f57ca0e..95658c513ab2e89a162984eb356a602e99fb1351 100644
--- a/testing/lin/sqrt03.f
+++ b/testing/lin/sqrt03.f
@@ -38,7 +38,7 @@
       SUBROUTINE SQRT03( M, N, K, AF, C, CC, Q, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zchkaa.f b/testing/lin/zchkaa.f
index df660680daddaaf69b4a5e2661689dcf707e8c5e..0cc2bf2aa661917f2aee5dcef6bd820a66073854 100644
--- a/testing/lin/zchkaa.f
+++ b/testing/lin/zchkaa.f
@@ -37,7 +37,7 @@
 
       PROGRAM ZCHKAA
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- CHAMELEON test routine (From LAPACK version 3.1.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zchkge.f b/testing/lin/zchkge.f
index 193ba854f72dcf78a3d279a85388e91a4cde0a0e..b2da1ff5d15bc58ec04d84b2f00b876afa3f92bd 100644
--- a/testing/lin/zchkge.f
+++ b/testing/lin/zchkge.f
@@ -40,7 +40,7 @@
      $                   AINV, B, X, XACT, WORK, RWORK, IWORK, 
      $                   NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zchklq.f b/testing/lin/zchklq.f
index 04656211e618813d7cdf76a263617ae41db68c09..d49efc72f89825fd907e2f22a178c7dbd3089649 100644
--- a/testing/lin/zchklq.f
+++ b/testing/lin/zchklq.f
@@ -40,7 +40,7 @@
      $                   AL, AC, B, X, XACT, TAU, WORK, RWORK, IWORK,
      $                   NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zchkpo.f b/testing/lin/zchkpo.f
index 8c2617fc1be8a30e30e4b946bda88cac8cd2a2a8..7310b8089bfdad6a28ec34ec532040ce6f77ec35 100644
--- a/testing/lin/zchkpo.f
+++ b/testing/lin/zchkpo.f
@@ -39,7 +39,7 @@
      $                   THRESH, TSTERR, NMAX, A, AFAC, AINV, B, X,
      $                   XACT, WORK, RWORK, NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zchkqr.f b/testing/lin/zchkqr.f
index ed21c4c3e28c16d559b844e2204ed56eddac7c6b..00e18457acb71a931ddcac7cdca0191eb23f5bd6 100644
--- a/testing/lin/zchkqr.f
+++ b/testing/lin/zchkqr.f
@@ -40,7 +40,7 @@
      $                   AR, AC, B, X, XACT, TAU, WORK, RWORK, IWORK, 
      $                   NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zdrvge.f b/testing/lin/zdrvge.f
index 5f56b9be01cb05bf12b0c0fad1be0076845b2d88..f57f0a864c16e5eaafc7da5f9f78b03165d9b3c4 100644
--- a/testing/lin/zdrvge.f
+++ b/testing/lin/zdrvge.f
@@ -39,7 +39,7 @@
      $                   A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK,
      $                   RWORK, IWORK, NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zdrvls.f b/testing/lin/zdrvls.f
index b92b1b2181f55d56d0f5c107a800a32aa77b2925..20680cc9e1281e3da74df74f9d662fc78df0d1e1 100644
--- a/testing/lin/zdrvls.f
+++ b/testing/lin/zdrvls.f
@@ -40,7 +40,7 @@
      $                   B, COPYB, C, S, COPYS, WORK, RWORK, IWORK, 
      $                   NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zdrvpo.f b/testing/lin/zdrvpo.f
index fe359e1be11e1bc6a23357c8a35296bdfae88f18..6705cc12e825a8716b618dff106128c541bfb2fc 100644
--- a/testing/lin/zdrvpo.f
+++ b/testing/lin/zdrvpo.f
@@ -39,7 +39,7 @@
      $                   A, AFAC, ASAV, B, BSAV, X, XACT, S, WORK,
      $                   RWORK, NOUT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zerrge.f b/testing/lin/zerrge.f
index f6d98aaaa5daab2868b945023367248c58298318..f19f6d3ca40f934f6cf140640c63e9b73eb8f9d6 100644
--- a/testing/lin/zerrge.f
+++ b/testing/lin/zerrge.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE ZERRGE( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zerrlq.f b/testing/lin/zerrlq.f
index c7418f6feebc6b7cbf1dbdcba89106b5331b6fa7..af1392dbbfaed11f5b3439171c8078677de4963e 100644
--- a/testing/lin/zerrlq.f
+++ b/testing/lin/zerrlq.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE ZERRLQ( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zerrls.f b/testing/lin/zerrls.f
index dbb9c2eaf931fbaffb08ddd30d6612d9f96e02e2..777f63acc7ceda5b7030030d5f15bec6c27b4eaa 100644
--- a/testing/lin/zerrls.f
+++ b/testing/lin/zerrls.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE ZERRLS( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zerrpo.f b/testing/lin/zerrpo.f
index 04bfa0c5c92d0d6df395b74c39199f8715f17113..6fd2a388fe732ef5e49b4fb871995923782d66b4 100644
--- a/testing/lin/zerrpo.f
+++ b/testing/lin/zerrpo.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE ZERRPO( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zerrqr.f b/testing/lin/zerrqr.f
index 543ee67a350f3220d703e2af848f1cdf593bbe62..183244d9b539d13b30f5bc4b7a218460e9d71381 100644
--- a/testing/lin/zerrqr.f
+++ b/testing/lin/zerrqr.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE ZERRQR( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zerrvx.f b/testing/lin/zerrvx.f
index 839f075cd297e2af022ce5e3961afa51752ce01b..3e55f8fbbf5c89cbf16b432f96c3f30d1c098bd9 100644
--- a/testing/lin/zerrvx.f
+++ b/testing/lin/zerrvx.f
@@ -37,7 +37,7 @@
 
       SUBROUTINE ZERRVX( PATH, NUNIT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zlqt01.f b/testing/lin/zlqt01.f
index b562221e85a658b39c4075c9120d6f4628c3acf6..795333cbb9e69372d515d07b7a89ce8764e0e123 100644
--- a/testing/lin/zlqt01.f
+++ b/testing/lin/zlqt01.f
@@ -38,7 +38,7 @@
       SUBROUTINE ZLQT01( M, N, A, AF, Q, L, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zlqt02.f b/testing/lin/zlqt02.f
index 2e7b5479025e3597e06688669b8e41b27765d347..f641518c8b622f63093c400940361c11d85b4089 100644
--- a/testing/lin/zlqt02.f
+++ b/testing/lin/zlqt02.f
@@ -38,7 +38,7 @@
       SUBROUTINE ZLQT02( M, N, K, A, AF, Q, L, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zlqt03.f b/testing/lin/zlqt03.f
index e2886e409bb9c258b3f8c328f7697c5b6b65d010..97bc9fd1feb70e99644a4389c1018854a9903698 100644
--- a/testing/lin/zlqt03.f
+++ b/testing/lin/zlqt03.f
@@ -38,7 +38,7 @@
       SUBROUTINE ZLQT03( M, N, K, AF, C, CC, Q, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zporfs.f b/testing/lin/zporfs.f
index 6add08ee61d6bf198757832dd35eb6edd36271c6..83f6ba08b8c801b603d10b190430dee3d8db120e 100644
--- a/testing/lin/zporfs.f
+++ b/testing/lin/zporfs.f
@@ -38,7 +38,7 @@
       SUBROUTINE ZPORFS( UPLO, N, NRHS, A, LDA, AF, LDAF, B, LDB, X,
      $                   LDX, FERR, BERR, WORK, RWORK, INFO )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK routine (version 3.2) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zposvx.f b/testing/lin/zposvx.f
index 758a3eccd76eb0463c97f9537c5202a82d7c234a..a34e95c76408e4ea83806e6449ff9b1257eece87 100644
--- a/testing/lin/zposvx.f
+++ b/testing/lin/zposvx.f
@@ -39,7 +39,7 @@
      $                   S, B, LDB, X, LDX, RCOND, FERR, BERR, WORK,
      $                   RWORK, INFO )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK driver routine (version 3.2) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zqrt01.f b/testing/lin/zqrt01.f
index 544a4d2bd5509555d5479b2fd1858f31100ae2af..b2aabb4add7c77b102df203b7d184f48ddaf20c6 100644
--- a/testing/lin/zqrt01.f
+++ b/testing/lin/zqrt01.f
@@ -38,7 +38,7 @@
       SUBROUTINE ZQRT01( M, N, A, AF, Q, R, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zqrt02.f b/testing/lin/zqrt02.f
index 020a5be8c1bed0b9bd18c2e5e56a70e2f8d1228c..97ad70666d01362ab322b927dc84f4001330ad3c 100644
--- a/testing/lin/zqrt02.f
+++ b/testing/lin/zqrt02.f
@@ -38,7 +38,7 @@
       SUBROUTINE ZQRT02( M, N, K, A, AF, Q, R, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/lin/zqrt03.f b/testing/lin/zqrt03.f
index 3a18073ea24bebd4f6e80536af7ccebff81b4a33..368f4128f6a56df76a7344f76237590d0cdbe0e2 100644
--- a/testing/lin/zqrt03.f
+++ b/testing/lin/zqrt03.f
@@ -38,7 +38,7 @@
       SUBROUTINE ZQRT03( M, N, K, AF, C, CC, Q, LDA, T, WORK, LWORK,
      $                   RWORK, RESULT )
 *
-      INCLUDE 'morse_fortran.h'
+      INCLUDE 'chameleon_fortran.h'
 *
 *  -- LAPACK test routine (version 3.1) --
 *     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
diff --git a/testing/testing_zgeadd.c b/testing/testing_zgeadd.c
index 6e8bd9171967820b3ffa164a1f74c5844e885468..a29e2dde2dbf53e0fe90832a8fed1e16dd50d2ec 100644
--- a/testing/testing_zgeadd.c
+++ b/testing/testing_zgeadd.c
@@ -37,10 +37,10 @@
 
 static int check_tr_solution(cham_uplo_t uplo, cham_trans_t trans, int M, int N,
                              CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA,
-                             CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Bref, CHAMELEON_Complex64_t *Bmorse, int LDB);
+                             CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Bref, CHAMELEON_Complex64_t *Bcham, int LDB);
 static int check_ge_solution(cham_trans_t trans, int M, int N,
                              CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA,
-                             CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Bref, CHAMELEON_Complex64_t *Bmorse, int LDB);
+                             CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Bref, CHAMELEON_Complex64_t *Bcham, int LDB);
 
 int testing_zgeadd(int argc, char **argv)
 {
@@ -185,10 +185,10 @@ int testing_zgeadd(int argc, char **argv)
 
 static int check_tr_solution(cham_uplo_t uplo, cham_trans_t trans, int M, int N,
                              CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA,
-                             CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Bref, CHAMELEON_Complex64_t *Bmorse, int LDB)
+                             CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Bref, CHAMELEON_Complex64_t *Bcham, int LDB)
 {
     int info_solution;
-    double Anorm, Binitnorm, Bmorsenorm, Rnorm, result;
+    double Anorm, Binitnorm, Bchamnorm, Rnorm, result;
     double eps;
     CHAMELEON_Complex64_t mzone;
 
@@ -215,29 +215,29 @@ static int check_tr_solution(cham_uplo_t uplo, cham_trans_t trans, int M, int N,
     /*                                 Am, An, A, LDA, work); */
     /* } */
 
-    /* Binitnorm  = LAPACKE_zlantr_work(LAPACK_COL_MAJOR, 'I', morse_lapack_const(uplo[u]), 'N', */
+    /* Binitnorm  = LAPACKE_zlantr_work(LAPACK_COL_MAJOR, 'I', chameleon_lapack_const(uplo[u]), 'N', */
     /*                                  M, N, Bref,   LDB, work); */
-    /* Bmorsenorm = LAPACKE_zlantr_work(LAPACK_COL_MAJOR, 'I', morse_lapack_const(uplo[u]), 'N', */
-    /*                                  M, N, Bmorse, LDB, work); */
+    /* Bchamnorm = LAPACKE_zlantr_work(LAPACK_COL_MAJOR, 'I', chameleon_lapack_const(uplo[u]), 'N', */
+    /*                                  M, N, Bcham, LDB, work); */
 
     Anorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I',
                                 Am, An, A, LDA, work);
     Binitnorm   = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I',
                                       M, N, Bref,    LDB, work);
-    Bmorsenorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I',
-                                      M, N, Bmorse, LDB, work);
+    Bchamnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I',
+                                      M, N, Bcham, LDB, work);
 
     CORE_ztradd(uplo, trans, M, N,
                 alpha, A,    LDA,
                 beta,  Bref, LDB);
-    cblas_zaxpy( LDB*N, CBLAS_SADDR(mzone), Bmorse, 1, Bref, 1);
+    cblas_zaxpy( LDB*N, CBLAS_SADDR(mzone), Bcham, 1, Bref, 1);
 
     Rnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'M', M, N, Bref, LDB, work);
 
     eps = LAPACKE_dlamch_work('e');
 
     printf("Rnorm %e, Anorm %e, Bnorm %e, (alpha A + beta B) norm %e\n",
-           Rnorm, Anorm, Binitnorm, Bmorsenorm);
+           Rnorm, Anorm, Binitnorm, Bchamnorm);
 
     result = Rnorm / (max(Anorm, Binitnorm) * eps);
     printf("============\n");
@@ -265,10 +265,10 @@ static int check_tr_solution(cham_uplo_t uplo, cham_trans_t trans, int M, int N,
 
 static int check_ge_solution(cham_trans_t trans, int M, int N,
                              CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA,
-                             CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Bref, CHAMELEON_Complex64_t *Bmorse, int LDB)
+                             CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Bref, CHAMELEON_Complex64_t *Bcham, int LDB)
 {
     int info_solution;
-    double Anorm, Binitnorm, Bmorsenorm, Rnorm, result;
+    double Anorm, Binitnorm, Bchamnorm, Rnorm, result;
     double eps;
     CHAMELEON_Complex64_t mzone;
 
@@ -287,20 +287,20 @@ static int check_ge_solution(cham_trans_t trans, int M, int N,
                                      Am, An, A,      LDA, work);
     Binitnorm  = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I',
                                      M,  N,  Bref,   LDB, work);
-    Bmorsenorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I',
-                                     M,  N,  Bmorse, LDB, work);
+    Bchamnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I',
+                                     M,  N,  Bcham, LDB, work);
 
     CORE_zgeadd(trans, M, N,
                 alpha, A,    LDA,
                 beta,  Bref, LDB);
-    cblas_zaxpy( LDB*N, CBLAS_SADDR(mzone), Bmorse, 1, Bref, 1);
+    cblas_zaxpy( LDB*N, CBLAS_SADDR(mzone), Bcham, 1, Bref, 1);
 
     Rnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'M', M, N, Bref, LDB, work);
 
     eps = LAPACKE_dlamch_work('e');
 
     printf("Rnorm %e, Anorm %e, Bnorm %e, (alpha A + beta B) norm %e\n",
-           Rnorm, Anorm, Binitnorm, Bmorsenorm);
+           Rnorm, Anorm, Binitnorm, Bchamnorm);
 
     result = Rnorm / (max(Anorm, Binitnorm) * eps);
     printf("============\n");
diff --git a/testing/testing_zgemm.c b/testing/testing_zgemm.c
index 2f8fbbdaed1763816aac4036e98a272cf555de62..a46877522f7f620805c1705673bb892bca1decad 100644
--- a/testing/testing_zgemm.c
+++ b/testing/testing_zgemm.c
@@ -38,7 +38,7 @@
 static int check_solution(cham_trans_t transA, cham_trans_t transB, int M, int N, int K,
                           CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA,
                           CHAMELEON_Complex64_t *B, int LDB,
-                          CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Cmorse, int LDC);
+                          CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Ccham, int LDC);
 
 int testing_zgemm(int argc, char **argv)
 {
@@ -160,10 +160,10 @@ int testing_zgemm(int argc, char **argv)
 static int check_solution(cham_trans_t transA, cham_trans_t transB, int M, int N, int K,
                           CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA,
                           CHAMELEON_Complex64_t *B, int LDB,
-                          CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Cmorse, int LDC)
+                          CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Ccham, int LDC)
 {
     int info_solution;
-    double Anorm, Bnorm, Cinitnorm, Cmorsenorm, Clapacknorm, Rnorm, result;
+    double Anorm, Bnorm, Cinitnorm, Cchamnorm, Clapacknorm, Rnorm, result;
     double eps;
     CHAMELEON_Complex64_t beta_const;
 
@@ -186,27 +186,27 @@ static int check_solution(cham_trans_t transA, cham_trans_t transB, int M, int N
     Anorm       = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', Am, An, A,       LDA, work);
     Bnorm       = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', Bm, Bn, B,       LDB, work);
     Cinitnorm   = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M,  N,  Cref,    LDC, work);
-    Cmorsenorm  = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M,  N,  Cmorse, LDC, work);
+    Cchamnorm  = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M,  N,  Ccham, LDC, work);
 
     cblas_zgemm(CblasColMajor, (CBLAS_TRANSPOSE)transA, (CBLAS_TRANSPOSE)transB, M, N, K, 
                 CBLAS_SADDR(alpha), A, LDA, B, LDB, CBLAS_SADDR(beta), Cref, LDC);
 
     Clapacknorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M, N, Cref, LDC, work);
 
-    cblas_zaxpy(LDC * N, CBLAS_SADDR(beta_const), Cmorse, 1, Cref, 1);
+    cblas_zaxpy(LDC * N, CBLAS_SADDR(beta_const), Ccham, 1, Cref, 1);
 
     Rnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M, N, Cref, LDC, work);
 
     eps = LAPACKE_dlamch_work('e');
     if (CHAMELEON_My_Mpi_Rank() == 0)
-        printf("Rnorm %e, Anorm %e, Bnorm %e, Cinitnorm %e, Cmorsenorm %e, Clapacknorm %e\n",
-               Rnorm, Anorm, Bnorm, Cinitnorm, Cmorsenorm, Clapacknorm);
+        printf("Rnorm %e, Anorm %e, Bnorm %e, Cinitnorm %e, Cchamnorm %e, Clapacknorm %e\n",
+               Rnorm, Anorm, Bnorm, Cinitnorm, Cchamnorm, Clapacknorm);
 
     result = Rnorm / ((Anorm + Bnorm + Cinitnorm) * N * eps);
     if (CHAMELEON_My_Mpi_Rank() == 0){
         printf("============\n");
         printf("Checking the norm of the difference against reference ZGEMM \n");
-        printf("-- ||Cmorse - Clapack||_oo/((||A||_oo+||B||_oo+||C||_oo).N.eps) = %e \n",
+        printf("-- ||Ccham - Clapack||_oo/((||A||_oo+||B||_oo+||C||_oo).N.eps) = %e \n",
                result);
     }
 
diff --git a/testing/testing_zgesvd.c b/testing/testing_zgesvd.c
index 32ad49195e7c318911b045932c6b321d4efff574..d587488dba6887918be484bbebebc9e992cdf8a4 100644
--- a/testing/testing_zgesvd.c
+++ b/testing/testing_zgesvd.c
@@ -109,10 +109,10 @@ int testing_zgesvd(int argc, char **argv)
     */
     /* Initialize A1 */
     LAPACKE_zlatms_work( LAPACK_COL_MAJOR, M, N,
-                         morse_lapack_const(ChamDistUniform), ISEED,
-                         morse_lapack_const(ChamNonsymPosv), S1, mode, rcond,
+                         chameleon_lapack_const(ChamDistUniform), ISEED,
+                         chameleon_lapack_const(ChamNonsymPosv), S1, mode, rcond,
                          dmax, M, N,
-                         morse_lapack_const(ChamNoPacking), A1, LDA, work );
+                         chameleon_lapack_const(ChamNoPacking), A1, LDA, work );
     free(work);
 
     /* Copy A1 for check */
@@ -216,7 +216,7 @@ static int check_orthogonality(cham_side_t side, int M, int N, CHAMELEON_Complex
     else
         cblas_zherk(CblasColMajor, CblasUpper, CblasNoTrans,   M, N, done, Q, LDQ, mdone, Id, M);
 
-    normQ = LAPACKE_zlansy_work(LAPACK_COL_MAJOR, morse_lapack_const(ChamInfNorm), 'U', minMN, Id, minMN, work);
+    normQ = LAPACKE_zlansy_work(LAPACK_COL_MAJOR, chameleon_lapack_const(ChamInfNorm), 'U', minMN, Id, minMN, work);
 
     if (getenv("CHAMELEON_TESTING_VERBOSE"))
         printf( "||Q||_oo=%e\n", normQ );
@@ -267,7 +267,7 @@ static int check_reduction(int M, int N, double *S, CHAMELEON_Complex64_t *A, in
     CHAMELEON_Complex64_t *Residual = (CHAMELEON_Complex64_t *)malloc(M    *N    *sizeof(CHAMELEON_Complex64_t));
     double *work = (double *)malloc(maxMN*sizeof(double));
 
-    LAPACKE_zlacpy_work(LAPACK_COL_MAJOR, morse_lapack_const(ChamUpperLower), M, N, A, LDA, Residual, M);
+    LAPACKE_zlacpy_work(LAPACK_COL_MAJOR, chameleon_lapack_const(ChamUpperLower), M, N, A, LDA, Residual, M);
 
     if ( M >= N ) {
         /* Compute TEMP =  SIGMA * Vt */
@@ -297,8 +297,8 @@ static int check_reduction(int M, int N, double *S, CHAMELEON_Complex64_t *A, in
     }
 
     /* Compute the norms */
-    Rnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, morse_lapack_const(ChamOneNorm), M, N, Residual, M,   work);
-    Anorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, morse_lapack_const(ChamOneNorm), M, N, A,        LDA, work);
+    Rnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, chameleon_lapack_const(ChamOneNorm), M, N, Residual, M,   work);
+    Anorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, chameleon_lapack_const(ChamOneNorm), M, N, A,        LDA, work);
 
     if (getenv("CHAMELEON_TESTING_VERBOSE"))
         printf( "||A||_oo=%e\n||A - U*SIGMA*VT||_oo=%e\n", Anorm, Rnorm );
diff --git a/testing/testing_zheevd.c b/testing/testing_zheevd.c
index 8a4b558010d7fa1eb8d20321a18f6c2b884e3c19..f8512cf6955d7566e02ef2dfc09a8fb6a54d6a97 100644
--- a/testing/testing_zheevd.c
+++ b/testing/testing_zheevd.c
@@ -89,10 +89,10 @@ int testing_zheevd(int argc, char **argv)
         }
     }
     LAPACKE_zlatms_work( LAPACK_COL_MAJOR, N, N,
-                         morse_lapack_const(ChamDistSymmetric), ISEED,
-                         morse_lapack_const(ChamHermGeev), W1, mode, rcond,
+                         chameleon_lapack_const(ChamDistSymmetric), ISEED,
+                         chameleon_lapack_const(ChamHermGeev), W1, mode, rcond,
                          dmax, N, N,
-                         morse_lapack_const(ChamNoPacking), A2, LDA, work );
+                         chameleon_lapack_const(ChamNoPacking), A2, LDA, work );
 
     /*
      * Sort the eigenvalue because when computing the tridiag
@@ -178,7 +178,7 @@ static int check_orthogonality(int M, int N, CHAMELEON_Complex64_t *Q, int LDQ,
     else
         cblas_zherk(CblasColMajor, CblasUpper, CblasNoTrans,   M, N, done, Q, LDQ, mdone, Id, minMN);
 
-    normQ = LAPACKE_zlanhe_work(LAPACK_COL_MAJOR, morse_lapack_const(ChamInfNorm), 'U', minMN, Id, minMN, work);
+    normQ = LAPACKE_zlanhe_work(LAPACK_COL_MAJOR, chameleon_lapack_const(ChamInfNorm), 'U', minMN, Id, minMN, work);
 
     result = normQ / (minMN * eps);
     printf(" ======================================================\n");
@@ -213,7 +213,7 @@ static int check_reduction(cham_uplo_t uplo, int N, int bw, CHAMELEON_Complex64_
     int i;
 
     /* Compute TEMP =  Q * LAMBDA */
-    LAPACKE_zlacpy_work(LAPACK_COL_MAJOR, morse_lapack_const(ChamUpperLower), N, N, Q, LDA, TEMP, N);
+    LAPACKE_zlacpy_work(LAPACK_COL_MAJOR, chameleon_lapack_const(ChamUpperLower), N, N, Q, LDA, TEMP, N);
 
     for (i = 0; i < N; i++){
         cblas_zdscal(N, D[i], &(TEMP[i*N]), 1);
@@ -224,11 +224,11 @@ static int check_reduction(cham_uplo_t uplo, int N, int bw, CHAMELEON_Complex64_
      * otherwise it need to be symetrized before
      * checking.
      */
-    LAPACKE_zlacpy_work(LAPACK_COL_MAJOR, morse_lapack_const(ChamUpperLower), N, N, A, LDA, Residual, N);
+    LAPACKE_zlacpy_work(LAPACK_COL_MAJOR, chameleon_lapack_const(ChamUpperLower), N, N, A, LDA, Residual, N);
     cblas_zgemm(CblasColMajor, CblasNoTrans, CblasConjTrans, N, N, N, CBLAS_SADDR(mzone), TEMP, N,  Q, LDA, CBLAS_SADDR(zone), Residual,     N);
 
-    Rnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, morse_lapack_const(ChamOneNorm), N, N, Residual, N,   work);
-    Anorm = LAPACKE_zlanhe_work(LAPACK_COL_MAJOR, morse_lapack_const(ChamOneNorm), morse_lapack_const(uplo), N, A, LDA, work);
+    Rnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, chameleon_lapack_const(ChamOneNorm), N, N, Residual, N,   work);
+    Anorm = LAPACKE_zlanhe_work(LAPACK_COL_MAJOR, chameleon_lapack_const(ChamOneNorm), chameleon_lapack_const(uplo), N, A, LDA, work);
 
     result = Rnorm / ( Anorm * N * eps);
     if ( uplo == ChamLower ){
diff --git a/testing/testing_zhemm.c b/testing/testing_zhemm.c
index 61d07d918c0db19f5e612bbd240e32e8a52de8a1..a24428e348d5c8cdc6befea81dc8d0a4ec7808bf 100644
--- a/testing/testing_zhemm.c
+++ b/testing/testing_zhemm.c
@@ -35,7 +35,7 @@
 static int check_solution(cham_side_t side, cham_uplo_t uplo, int M, int N,
                           CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA,
                           CHAMELEON_Complex64_t *B, int LDB,
-                          CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Cmorse, int LDC);
+                          CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Ccham, int LDC);
 
 int testing_zhemm(int argc, char **argv)
 {
@@ -151,10 +151,10 @@ int testing_zhemm(int argc, char **argv)
 static int check_solution(cham_side_t side, cham_uplo_t uplo, int M, int N,
                    CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA,
                    CHAMELEON_Complex64_t *B, int LDB,
-                   CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Cmorse, int LDC)
+                   CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Ccham, int LDC)
 {
     int info_solution, NrowA;
-    double Anorm, Bnorm, Cinitnorm, Cmorsenorm, Clapacknorm, Rnorm;
+    double Anorm, Bnorm, Cinitnorm, Cchamnorm, Clapacknorm, Rnorm;
     double eps;
     CHAMELEON_Complex64_t beta_const;
     double result;
@@ -166,27 +166,27 @@ static int check_solution(cham_side_t side, cham_uplo_t uplo, int M, int N,
     Anorm       = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', NrowA, NrowA, A,       LDA, work);
     Bnorm       = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M,     N,     B,       LDB, work);
     Cinitnorm   = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M,     N,     Cref,    LDC, work);
-    Cmorsenorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M,     N,     Cmorse, LDC, work);
+    Cchamnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M,     N,     Ccham, LDC, work);
 
     cblas_zhemm(CblasColMajor, (CBLAS_SIDE)side, (CBLAS_UPLO)uplo, M, N, CBLAS_SADDR(alpha), A, LDA, B, LDB, CBLAS_SADDR(beta), Cref, LDC);
 
     Clapacknorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M, N, Cref, LDC, work);
 
-    cblas_zaxpy(LDC * N, CBLAS_SADDR(beta_const), Cmorse, 1, Cref, 1);
+    cblas_zaxpy(LDC * N, CBLAS_SADDR(beta_const), Ccham, 1, Cref, 1);
 
     Rnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M, N, Cref, LDC, work);
 
     eps = LAPACKE_dlamch_work('e');
 
-    printf("Rnorm %e, Anorm %e, Bnorm %e, Cinitnorm %e, Cmorsenorm %e, Clapacknorm %e\n",Rnorm,Anorm,Bnorm,Cinitnorm,Cmorsenorm,Clapacknorm);
+    printf("Rnorm %e, Anorm %e, Bnorm %e, Cinitnorm %e, Cchamnorm %e, Clapacknorm %e\n",Rnorm,Anorm,Bnorm,Cinitnorm,Cchamnorm,Clapacknorm);
 
     result = Rnorm / ((Anorm + Bnorm + Cinitnorm) * N * eps);
 
     printf("============\n");
     printf("Checking the norm of the difference against reference ZHEMM \n");
-    printf("-- ||Cmorse - Clapack||_oo/((||A||_oo+||B||_oo+||C||_oo).N.eps) = %e \n", result );
+    printf("-- ||Ccham - Clapack||_oo/((||A||_oo+||B||_oo+||C||_oo).N.eps) = %e \n", result );
 
-    if ( isinf(Clapacknorm) || isinf(Cmorsenorm) || isnan(result) || isinf(result) || (result > 10.0) ) {
+    if ( isinf(Clapacknorm) || isinf(Cchamnorm) || isnan(result) || isinf(result) || (result > 10.0) ) {
         printf("-- The solution is suspicious ! \n");
         info_solution = 1;
     }
diff --git a/testing/testing_zher2k.c b/testing/testing_zher2k.c
index 46f6cc9133893242eff419168dc67784b4f633a9..97d03b846ff899fe083c33ce7a31d3f141144a09 100644
--- a/testing/testing_zher2k.c
+++ b/testing/testing_zher2k.c
@@ -35,7 +35,7 @@
 static int check_solution(cham_uplo_t uplo, cham_trans_t trans, int N, int K,
                           CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA,
                           CHAMELEON_Complex64_t *B, int LDB,
-                          double beta,  CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Cmorse, int LDC);
+                          double beta,  CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Ccham, int LDC);
 
 
 int testing_zher2k(int argc, char **argv)
@@ -146,10 +146,10 @@ int testing_zher2k(int argc, char **argv)
 static int check_solution(cham_uplo_t uplo, cham_trans_t trans, int N, int K,
                           CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA,
                           CHAMELEON_Complex64_t *B, int LDB,
-                          double beta, CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Cmorse, int LDC)
+                          double beta, CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Ccham, int LDC)
 {
     int info_solution;
-    double Anorm, Bnorm, Cinitnorm, Cmorsenorm, Clapacknorm, Rnorm, result;
+    double Anorm, Bnorm, Cinitnorm, Cchamnorm, Clapacknorm, Rnorm, result;
     double eps;
     CHAMELEON_Complex64_t beta_const;
 
@@ -163,26 +163,26 @@ static int check_solution(cham_uplo_t uplo, cham_trans_t trans, int N, int K,
                                       (trans == ChamNoTrans) ? N : K,
                                       (trans == ChamNoTrans) ? K : N, B, LDB, work);
     Cinitnorm   = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', N, N, Cref,    LDC, work);
-    Cmorsenorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', N, N, Cmorse, LDC, work);
+    Cchamnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', N, N, Ccham, LDC, work);
 
     cblas_zher2k(CblasColMajor, (CBLAS_UPLO)uplo, (CBLAS_TRANSPOSE)trans,
                  N, K, CBLAS_SADDR(alpha), A, LDA, B, LDB, (beta), Cref, LDC);
 
     Clapacknorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', N, N, Cref, LDC, work);
 
-    cblas_zaxpy(LDC*N, CBLAS_SADDR(beta_const), Cmorse, 1, Cref, 1);
+    cblas_zaxpy(LDC*N, CBLAS_SADDR(beta_const), Ccham, 1, Cref, 1);
 
     Rnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', N, N, Cref, LDC, work);
 
     eps = LAPACKE_dlamch_work('e');
 
-    printf("Rnorm %e, Anorm %e, Cinitnorm %e, Cmorsenorm %e, Clapacknorm %e\n",
-           Rnorm, Anorm, Cinitnorm, Cmorsenorm, Clapacknorm);
+    printf("Rnorm %e, Anorm %e, Cinitnorm %e, Cchamnorm %e, Clapacknorm %e\n",
+           Rnorm, Anorm, Cinitnorm, Cchamnorm, Clapacknorm);
 
     result = Rnorm / ((Anorm + Bnorm + Cinitnorm) * N * eps);
     printf("============\n");
     printf("Checking the norm of the difference against reference ZHER2K \n");
-    printf("-- ||Cmorse - Clapack||_oo/((||A||_oo+||C||_oo).N.eps) = %e \n", result);
+    printf("-- ||Ccham - Clapack||_oo/((||A||_oo+||C||_oo).N.eps) = %e \n", result);
 
     if (  isnan(Rnorm) || isinf(Rnorm) || isnan(result) || isinf(result) || (result > 10.0) ) {
          printf("-- The solution is suspicious ! \n");
diff --git a/testing/testing_zherk.c b/testing/testing_zherk.c
index 3bb31792f5236965c5f7b979e4eb8040a2fba52d..ca0928a73967b7e5142139935f00efb6a96c9d02 100644
--- a/testing/testing_zherk.c
+++ b/testing/testing_zherk.c
@@ -34,7 +34,7 @@
 
 static int check_solution(cham_uplo_t uplo, cham_trans_t trans, int N, int K,
                           double alpha, CHAMELEON_Complex64_t *A, int LDA,
-                          double beta,  CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Cmorse, int LDC);
+                          double beta,  CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Ccham, int LDC);
 
 
 int testing_zherk(int argc, char **argv)
@@ -139,10 +139,10 @@ int testing_zherk(int argc, char **argv)
 
 static int check_solution(cham_uplo_t uplo, cham_trans_t trans, int N, int K,
                           double alpha, CHAMELEON_Complex64_t *A, int LDA,
-                          double beta,  CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Cmorse, int LDC)
+                          double beta,  CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Ccham, int LDC)
 {
     int info_solution;
-    double Anorm, Cinitnorm, Cmorsenorm, Clapacknorm, Rnorm;
+    double Anorm, Cinitnorm, Cchamnorm, Clapacknorm, Rnorm;
     double eps;
     CHAMELEON_Complex64_t beta_const;
     double result;
@@ -153,29 +153,29 @@ static int check_solution(cham_uplo_t uplo, cham_trans_t trans, int N, int K,
                                 (trans == ChamNoTrans) ? N : K,
                                 (trans == ChamNoTrans) ? K : N, A, LDA, work);
     Cinitnorm   = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', N, N, Cref,    LDC, work);
-    Cmorsenorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', N, N, Cmorse, LDC, work);
+    Cchamnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', N, N, Ccham, LDC, work);
 
     cblas_zherk(CblasColMajor, (CBLAS_UPLO)uplo, (CBLAS_TRANSPOSE)trans,
                 N, K, (alpha), A, LDA, (beta), Cref, LDC);
 
     Clapacknorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', N, N, Cref, LDC, work);
 
-    cblas_zaxpy(LDC*N, CBLAS_SADDR(beta_const), Cmorse, 1, Cref, 1);
+    cblas_zaxpy(LDC*N, CBLAS_SADDR(beta_const), Ccham, 1, Cref, 1);
 
     Rnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', N, N, Cref, LDC, work);
 
     eps = LAPACKE_dlamch_work('e');
 
-    printf("Rnorm %e, Anorm %e, Cinitnorm %e, Cmorsenorm %e, Clapacknorm %e\n",
-           Rnorm, Anorm, Cinitnorm, Cmorsenorm, Clapacknorm);
+    printf("Rnorm %e, Anorm %e, Cinitnorm %e, Cchamnorm %e, Clapacknorm %e\n",
+           Rnorm, Anorm, Cinitnorm, Cchamnorm, Clapacknorm);
 
     result = Rnorm / ((Anorm + Cinitnorm) * N * eps);
 
     printf("============\n");
     printf("Checking the norm of the difference against reference ZHERK \n");
-    printf("-- ||Cmorse - Clapack||_oo/((||A||_oo+||C||_oo).N.eps) = %e \n", result);
+    printf("-- ||Ccham - Clapack||_oo/((||A||_oo+||C||_oo).N.eps) = %e \n", result);
 
-    if ( isinf(Clapacknorm) || isinf(Cmorsenorm) || isnan(result) || isinf(result) || (result > 10.0) ) {
+    if ( isinf(Clapacknorm) || isinf(Cchamnorm) || isnan(result) || isinf(result) || (result > 10.0) ) {
         printf("-- The solution is suspicious ! \n");
         info_solution = 1;
     }
diff --git a/testing/testing_zlange.c b/testing/testing_zlange.c
index f04774b666ac097143e1cbfbabf65481c98836b5..b0aaf5cd50025ca1e037d0626561409c771a8104 100644
--- a/testing/testing_zlange.c
+++ b/testing/testing_zlange.c
@@ -52,7 +52,7 @@ int testing_zlange(int argc, char **argv)
     /* Allocate Data */
     CHAMELEON_Complex64_t *A    = (CHAMELEON_Complex64_t *)malloc(LDAxN*sizeof(CHAMELEON_Complex64_t));
     double            *work = (double*) malloc(max(M,N)*sizeof(double));
-    double normmorse, normlapack, result;
+    double normcham, normlapack, result;
 
     eps = LAPACKE_dlamch_work('e');
 
@@ -74,10 +74,10 @@ int testing_zlange(int argc, char **argv)
 
     /* CHAMELEON ZLANGE */
     for(n=0; n<4; n++) {
-        normmorse  = CHAMELEON_zlange(norm[n], M, N, A, LDA);
-        normlapack = LAPACKE_zlange_work(LAPACK_COL_MAJOR, morse_lapack_const(norm[n]), M, N, A, LDA, work);
-        printf("LAPACK %e, CHAMELEON %e\n", normlapack, normmorse);
-        result = fabs(normmorse - normlapack) / (normlapack * eps);
+        normcham  = CHAMELEON_zlange(norm[n], M, N, A, LDA);
+        normlapack = LAPACKE_zlange_work(LAPACK_COL_MAJOR, chameleon_lapack_const(norm[n]), M, N, A, LDA, work);
+        printf("LAPACK %e, CHAMELEON %e\n", normlapack, normcham);
+        result = fabs(normcham - normlapack) / (normlapack * eps);
 
         switch(norm[n]) {
         case ChamMaxNorm:
@@ -114,12 +114,12 @@ int testing_zlange(int argc, char **argv)
         for(u=0; u<2; u++) {
             int d;
             for(d=0; d<2; d++) {
-                normmorse = CHAMELEON_zlantr(norm[n], uplo[u], diag[d], M, N, A, LDA);
-                normlapack = LAPACKE_zlantr_work(LAPACK_COL_MAJOR, morse_lapack_const(norm[n]), morse_lapack_const(uplo[u]),
-                                                 morse_lapack_const(diag[d]), M, N, A, LDA, work);
-                printf("LAPACK %e, CHAMELEON %e\n", normlapack, normmorse);
+                normcham = CHAMELEON_zlantr(norm[n], uplo[u], diag[d], M, N, A, LDA);
+                normlapack = LAPACKE_zlantr_work(LAPACK_COL_MAJOR, chameleon_lapack_const(norm[n]), chameleon_lapack_const(uplo[u]),
+                                                 chameleon_lapack_const(diag[d]), M, N, A, LDA, work);
+                printf("LAPACK %e, CHAMELEON %e\n", normlapack, normcham);
 
-                result = fabs(normmorse - normlapack) / (normlapack * eps);
+                result = fabs(normcham - normlapack) / (normlapack * eps);
                 switch(norm[n]) {
                 case ChamMaxNorm:
                     /* result should be perfectly equal */
@@ -156,11 +156,11 @@ int testing_zlange(int argc, char **argv)
     /* CHAMELEON ZLANSY */
     for(n=0; n<4; n++) {
         for(u=0; u<2; u++) {
-            normmorse = CHAMELEON_zlansy(norm[n], uplo[u], min(M,N), A, LDA);
-            normlapack = LAPACKE_zlansy_work(LAPACK_COL_MAJOR, morse_lapack_const(norm[n]), morse_lapack_const(uplo[u]), min(M,N), A, LDA, work);
-            printf("LAPACK %e, CHAMELEON %e\n", normlapack, normmorse);
+            normcham = CHAMELEON_zlansy(norm[n], uplo[u], min(M,N), A, LDA);
+            normlapack = LAPACKE_zlansy_work(LAPACK_COL_MAJOR, chameleon_lapack_const(norm[n]), chameleon_lapack_const(uplo[u]), min(M,N), A, LDA, work);
+            printf("LAPACK %e, CHAMELEON %e\n", normlapack, normcham);
 
-            result = fabs(normmorse - normlapack) / (normlapack * eps);
+            result = fabs(normcham - normlapack) / (normlapack * eps);
             switch(norm[n]) {
             case ChamMaxNorm:
                 /* result should be perfectly equal */
@@ -201,11 +201,11 @@ int testing_zlange(int argc, char **argv)
 
     for(n=0; n<4; n++) {
         for(u=0; u<2; u++) {
-            normmorse = CHAMELEON_zlanhe(norm[n], uplo[u], min(M,N), A, LDA);
-            normlapack = LAPACKE_zlanhe_work(LAPACK_COL_MAJOR, morse_lapack_const(norm[n]), morse_lapack_const(uplo[u]), min(M,N), A, LDA, work);
-            printf("LAPACK %e, CHAMELEON %e\n", normlapack, normmorse);
+            normcham = CHAMELEON_zlanhe(norm[n], uplo[u], min(M,N), A, LDA);
+            normlapack = LAPACKE_zlanhe_work(LAPACK_COL_MAJOR, chameleon_lapack_const(norm[n]), chameleon_lapack_const(uplo[u]), min(M,N), A, LDA, work);
+            printf("LAPACK %e, CHAMELEON %e\n", normlapack, normcham);
 
-            result = fabs(normmorse - normlapack) / (normlapack * eps);
+            result = fabs(normcham - normlapack) / (normlapack * eps);
             switch(norm[n]) {
             case ChamMaxNorm:
                 /* result should be perfectly equal */
diff --git a/testing/testing_zsymm.c b/testing/testing_zsymm.c
index 8d934a8e4e698175df9d747c68937425d21df079..3d5cb74e0494728a13687d3fd813a6bde157ab4c 100644
--- a/testing/testing_zsymm.c
+++ b/testing/testing_zsymm.c
@@ -36,7 +36,7 @@ static int
 check_solution( cham_side_t side, cham_uplo_t uplo, int M, int N,
                 CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA,
                 CHAMELEON_Complex64_t *B, int LDB,
-                CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Cmorse, int LDC );
+                CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Ccham, int LDC );
 
 int testing_zsymm(int argc, char **argv)
 {
@@ -153,10 +153,10 @@ static int
 check_solution( cham_side_t side, cham_uplo_t uplo, int M, int N,
                 CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA,
                 CHAMELEON_Complex64_t *B, int LDB,
-                CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Cmorse, int LDC )
+                CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Ccham, int LDC )
 {
     int info_solution, NrowA;
-    double Anorm, Bnorm, Cinitnorm, Cmorsenorm, Clapacknorm, Rnorm;
+    double Anorm, Bnorm, Cinitnorm, Cchamnorm, Clapacknorm, Rnorm;
     double eps;
     CHAMELEON_Complex64_t beta_const;
     double result;
@@ -168,27 +168,27 @@ check_solution( cham_side_t side, cham_uplo_t uplo, int M, int N,
     Anorm       = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', NrowA, NrowA, A,       LDA, work);
     Bnorm       = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M,     N,     B,       LDB, work);
     Cinitnorm   = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M,     N,     Cref,    LDC, work);
-    Cmorsenorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M,     N,     Cmorse, LDC, work);
+    Cchamnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M,     N,     Ccham, LDC, work);
 
     cblas_zsymm(CblasColMajor, (CBLAS_SIDE)side, (CBLAS_UPLO)uplo, M, N, CBLAS_SADDR(alpha), A, LDA, B, LDB, CBLAS_SADDR(beta), Cref, LDC);
 
     Clapacknorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M, N, Cref, LDC, work);
 
-    cblas_zaxpy(LDC * N, CBLAS_SADDR(beta_const), Cmorse, 1, Cref, 1);
+    cblas_zaxpy(LDC * N, CBLAS_SADDR(beta_const), Ccham, 1, Cref, 1);
 
     Rnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M, N, Cref, LDC, work);
 
     eps = LAPACKE_dlamch_work('e');
 
-    printf("Rnorm %e, Anorm %e, Bnorm %e, Cinitnorm %e, Cmorsenorm %e, Clapacknorm %e\n",Rnorm,Anorm,Bnorm,Cinitnorm,Cmorsenorm,Clapacknorm);
+    printf("Rnorm %e, Anorm %e, Bnorm %e, Cinitnorm %e, Cchamnorm %e, Clapacknorm %e\n",Rnorm,Anorm,Bnorm,Cinitnorm,Cchamnorm,Clapacknorm);
 
     result = Rnorm / ((Anorm + Bnorm + Cinitnorm) * N * eps);
 
     printf("============\n");
     printf("Checking the norm of the difference against reference ZSYMM \n");
-    printf("-- ||Cmorse - Clapack||_oo/((||A||_oo+||B||_oo+||C||_oo).N.eps) = %e \n", result );
+    printf("-- ||Ccham - Clapack||_oo/((||A||_oo+||B||_oo+||C||_oo).N.eps) = %e \n", result );
 
-    if ( isinf(Clapacknorm) || isinf(Cmorsenorm) || isnan(result) || isinf(result) || (result > 10.0) ) {
+    if ( isinf(Clapacknorm) || isinf(Cchamnorm) || isnan(result) || isinf(result) || (result > 10.0) ) {
         printf("-- The solution is suspicious ! \n");
         info_solution = 1;
     }
diff --git a/testing/testing_zsyr2k.c b/testing/testing_zsyr2k.c
index edccfc5c900fd33359bafa51070cd88716df872f..52f93685a0d32deb1e76afcb2672c1fdab409dce 100644
--- a/testing/testing_zsyr2k.c
+++ b/testing/testing_zsyr2k.c
@@ -35,7 +35,7 @@
 static int check_solution(cham_uplo_t uplo, cham_trans_t trans, int N, int K,
                           CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA,
                           CHAMELEON_Complex64_t *B, int LDB,
-                          CHAMELEON_Complex64_t beta,  CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Cmorse, int LDC);
+                          CHAMELEON_Complex64_t beta,  CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Ccham, int LDC);
 
 
 int testing_zsyr2k(int argc, char **argv)
@@ -146,10 +146,10 @@ int testing_zsyr2k(int argc, char **argv)
 static int check_solution(cham_uplo_t uplo, cham_trans_t trans, int N, int K,
                           CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA,
                           CHAMELEON_Complex64_t *B, int LDB,
-                          CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Cmorse, int LDC)
+                          CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Ccham, int LDC)
 {
     int info_solution;
-    double Anorm, Bnorm, Cinitnorm, Cmorsenorm, Clapacknorm, Rnorm, result;
+    double Anorm, Bnorm, Cinitnorm, Cchamnorm, Clapacknorm, Rnorm, result;
     double eps;
     CHAMELEON_Complex64_t beta_const;
 
@@ -163,26 +163,26 @@ static int check_solution(cham_uplo_t uplo, cham_trans_t trans, int N, int K,
                                       (trans == ChamNoTrans) ? N : K,
                                       (trans == ChamNoTrans) ? K : N, B, LDB, work);
     Cinitnorm   = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', N, N, Cref,    LDC, work);
-    Cmorsenorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', N, N, Cmorse, LDC, work);
+    Cchamnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', N, N, Ccham, LDC, work);
 
     cblas_zsyr2k(CblasColMajor, (CBLAS_UPLO)uplo, (CBLAS_TRANSPOSE)trans,
                  N, K, CBLAS_SADDR(alpha), A, LDA, B, LDB, CBLAS_SADDR(beta), Cref, LDC);
 
     Clapacknorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', N, N, Cref, LDC, work);
 
-    cblas_zaxpy(LDC*N, CBLAS_SADDR(beta_const), Cmorse, 1, Cref, 1);
+    cblas_zaxpy(LDC*N, CBLAS_SADDR(beta_const), Ccham, 1, Cref, 1);
 
     Rnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', N, N, Cref, LDC, work);
 
     eps = LAPACKE_dlamch_work('e');
 
-    printf("Rnorm %e, Anorm %e, Cinitnorm %e, Cmorsenorm %e, Clapacknorm %e\n",
-           Rnorm, Anorm, Cinitnorm, Cmorsenorm, Clapacknorm);
+    printf("Rnorm %e, Anorm %e, Cinitnorm %e, Cchamnorm %e, Clapacknorm %e\n",
+           Rnorm, Anorm, Cinitnorm, Cchamnorm, Clapacknorm);
 
     result = Rnorm / ((Anorm + Bnorm + Cinitnorm) * N * eps);
     printf("============\n");
     printf("Checking the norm of the difference against reference ZSYR2K \n");
-    printf("-- ||Cmorse - Clapack||_oo/((||A||_oo+||C||_oo).N.eps) = %e \n", result);
+    printf("-- ||Ccham - Clapack||_oo/((||A||_oo+||C||_oo).N.eps) = %e \n", result);
 
     if (  isnan(Rnorm) || isinf(Rnorm) || isnan(result) || isinf(result) || (result > 10.0) ) {
          printf("-- The solution is suspicious ! \n");
diff --git a/testing/testing_zsyrk.c b/testing/testing_zsyrk.c
index 20d70ca2ff5388b29f1a11b68171f46d970cce2a..64347e6392612f4c02005be365244c92ed00f44d 100644
--- a/testing/testing_zsyrk.c
+++ b/testing/testing_zsyrk.c
@@ -34,7 +34,7 @@
 
 static int check_solution(cham_uplo_t uplo, cham_trans_t trans, int N, int K,
                           CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA,
-                          CHAMELEON_Complex64_t beta,  CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Cmorse, int LDC);
+                          CHAMELEON_Complex64_t beta,  CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Ccham, int LDC);
 
 
 int testing_zsyrk(int argc, char **argv)
@@ -137,10 +137,10 @@ int testing_zsyrk(int argc, char **argv)
 
 static int check_solution(cham_uplo_t uplo, cham_trans_t trans, int N, int K,
                           CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA,
-                          CHAMELEON_Complex64_t beta,  CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Cmorse, int LDC)
+                          CHAMELEON_Complex64_t beta,  CHAMELEON_Complex64_t *Cref, CHAMELEON_Complex64_t *Ccham, int LDC)
 {
     int info_solution;
-    double Anorm, Cinitnorm, Cmorsenorm, Clapacknorm, Rnorm;
+    double Anorm, Cinitnorm, Cchamnorm, Clapacknorm, Rnorm;
     double eps;
     CHAMELEON_Complex64_t beta_const;
     double result;
@@ -151,29 +151,29 @@ static int check_solution(cham_uplo_t uplo, cham_trans_t trans, int N, int K,
                                 (trans == ChamNoTrans) ? N : K,
                                 (trans == ChamNoTrans) ? K : N, A, LDA, work);
     Cinitnorm   = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', N, N, Cref,    LDC, work);
-    Cmorsenorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', N, N, Cmorse, LDC, work);
+    Cchamnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', N, N, Ccham, LDC, work);
 
     cblas_zsyrk(CblasColMajor, (CBLAS_UPLO)uplo, (CBLAS_TRANSPOSE)trans,
                 N, K, CBLAS_SADDR(alpha), A, LDA, CBLAS_SADDR(beta), Cref, LDC);
 
     Clapacknorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', N, N, Cref, LDC, work);
 
-    cblas_zaxpy(LDC*N, CBLAS_SADDR(beta_const), Cmorse, 1, Cref, 1);
+    cblas_zaxpy(LDC*N, CBLAS_SADDR(beta_const), Ccham, 1, Cref, 1);
 
     Rnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', N, N, Cref, LDC, work);
 
     eps = LAPACKE_dlamch_work('e');
 
-    printf("Rnorm %e, Anorm %e, Cinitnorm %e, Cmorsenorm %e, Clapacknorm %e\n",
-           Rnorm, Anorm, Cinitnorm, Cmorsenorm, Clapacknorm);
+    printf("Rnorm %e, Anorm %e, Cinitnorm %e, Cchamnorm %e, Clapacknorm %e\n",
+           Rnorm, Anorm, Cinitnorm, Cchamnorm, Clapacknorm);
 
     result = Rnorm / ((Anorm + Cinitnorm) * N * eps);
 
     printf("============\n");
     printf("Checking the norm of the difference against reference ZSYRK \n");
-    printf("-- ||Cmorse - Clapack||_oo/((||A||_oo+||C||_oo).N.eps) = %e \n", result);
+    printf("-- ||Ccham - Clapack||_oo/((||A||_oo+||C||_oo).N.eps) = %e \n", result);
 
-    if ( isinf(Clapacknorm) || isinf(Cmorsenorm) || isnan(result) || isinf(result) || (result > 10.0) ) {
+    if ( isinf(Clapacknorm) || isinf(Cchamnorm) || isnan(result) || isinf(result) || (result > 10.0) ) {
         printf("-- The solution is suspicious ! \n");
         info_solution = 1;
     }
diff --git a/testing/testing_ztrmm.c b/testing/testing_ztrmm.c
index 16b5922042364a7f499b1629eac700d1116eade8..a548d3e846e29fffb750332142ad37b3f3e46749 100644
--- a/testing/testing_ztrmm.c
+++ b/testing/testing_ztrmm.c
@@ -35,7 +35,7 @@
 static int check_solution(cham_side_t side, cham_uplo_t uplo, cham_trans_t trans, cham_diag_t diag,
                           int M, int N, CHAMELEON_Complex64_t alpha,
                           CHAMELEON_Complex64_t *A, int LDA,
-                          CHAMELEON_Complex64_t *Bref, CHAMELEON_Complex64_t *Bmorse, int LDB);
+                          CHAMELEON_Complex64_t *Bref, CHAMELEON_Complex64_t *Bcham, int LDB);
 
 int testing_ztrmm(int argc, char **argv)
 {
@@ -145,10 +145,10 @@ int testing_ztrmm(int argc, char **argv)
 static int check_solution(cham_side_t side, cham_uplo_t uplo, cham_trans_t trans, cham_diag_t diag,
                           int M, int N, CHAMELEON_Complex64_t alpha,
                           CHAMELEON_Complex64_t *A, int LDA,
-                          CHAMELEON_Complex64_t *Bref, CHAMELEON_Complex64_t *Bmorse, int LDB)
+                          CHAMELEON_Complex64_t *Bref, CHAMELEON_Complex64_t *Bcham, int LDB)
 {
     int info_solution;
-    double Anorm, Binitnorm, Bmorsenorm, Blapacknorm, Rnorm, result;
+    double Anorm, Binitnorm, Bchamnorm, Blapacknorm, Rnorm, result;
     double eps;
     CHAMELEON_Complex64_t mzone = (CHAMELEON_Complex64_t)-1.0;
 
@@ -161,32 +161,32 @@ static int check_solution(cham_side_t side, cham_uplo_t uplo, cham_trans_t trans
         Am = N; An = N;
     }
 
-    Anorm       = LAPACKE_zlantr_work(LAPACK_COL_MAJOR, 'I', morse_lapack_const(uplo), morse_lapack_const(diag),
+    Anorm       = LAPACKE_zlantr_work(LAPACK_COL_MAJOR, 'I', chameleon_lapack_const(uplo), chameleon_lapack_const(diag),
                                 Am, An, A, LDA, work);
     Binitnorm   = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M, N, Bref,    LDB, work);
-    Bmorsenorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M, N, Bmorse, LDB, work);
+    Bchamnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M, N, Bcham, LDB, work);
 
     cblas_ztrmm(CblasColMajor, (CBLAS_SIDE)side, (CBLAS_UPLO)uplo, (CBLAS_TRANSPOSE)trans,
                 (CBLAS_DIAG)diag, M, N, CBLAS_SADDR(alpha), A, LDA, Bref, LDB);
 
     Blapacknorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M, N, Bref, LDB, work);
 
-    cblas_zaxpy(LDB * N, CBLAS_SADDR(mzone), Bmorse, 1, Bref, 1);
+    cblas_zaxpy(LDB * N, CBLAS_SADDR(mzone), Bcham, 1, Bref, 1);
 
     Rnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M, N, Bref, LDB, work);
 
     eps = LAPACKE_dlamch_work('e');
 
-    printf("Rnorm %e, Anorm %e, Binitnorm %e, Bmorsenorm %e, Blapacknorm %e\n",
-           Rnorm, Anorm, Binitnorm, Bmorsenorm, Blapacknorm);
+    printf("Rnorm %e, Anorm %e, Binitnorm %e, Bchamnorm %e, Blapacknorm %e\n",
+           Rnorm, Anorm, Binitnorm, Bchamnorm, Blapacknorm);
 
     result = Rnorm / ((Anorm + Blapacknorm) * max(M,N) * eps);
 
     printf("============\n");
     printf("Checking the norm of the difference against reference ZTRMM \n");
-    printf("-- ||Cmorse - Clapack||_oo/((||A||_oo+||B||_oo).N.eps) = %e \n", result);
+    printf("-- ||Ccham - Clapack||_oo/((||A||_oo+||B||_oo).N.eps) = %e \n", result);
 
-    if ( isinf(Blapacknorm) || isinf(Bmorsenorm) || isnan(result) || isinf(result) || (result > 10.0) ) {
+    if ( isinf(Blapacknorm) || isinf(Bchamnorm) || isnan(result) || isinf(result) || (result > 10.0) ) {
         printf("-- The solution is suspicious ! \n");
         info_solution = 1;
     }
diff --git a/testing/testing_ztrsm.c b/testing/testing_ztrsm.c
index 561c0a57bbae1f1d0b7adce3ba07e6fb97d884d1..f23429aecce301f41e1c55157a8c4f82355c3cb4 100644
--- a/testing/testing_ztrsm.c
+++ b/testing/testing_ztrsm.c
@@ -35,7 +35,7 @@
 static int check_solution(cham_side_t side, cham_uplo_t uplo, cham_trans_t trans, cham_diag_t diag,
                           int M, int N, CHAMELEON_Complex64_t alpha,
                           CHAMELEON_Complex64_t *A, int LDA,
-                          CHAMELEON_Complex64_t *Bref, CHAMELEON_Complex64_t *Bmorse, int LDB);
+                          CHAMELEON_Complex64_t *Bref, CHAMELEON_Complex64_t *Bcham, int LDB);
 
 int testing_ztrsm(int argc, char **argv)
 {
@@ -145,10 +145,10 @@ int testing_ztrsm(int argc, char **argv)
 static int check_solution(cham_side_t side, cham_uplo_t uplo, cham_trans_t trans, cham_diag_t diag,
                           int M, int N, CHAMELEON_Complex64_t alpha,
                           CHAMELEON_Complex64_t *A, int LDA,
-                          CHAMELEON_Complex64_t *Bref, CHAMELEON_Complex64_t *Bmorse, int LDB)
+                          CHAMELEON_Complex64_t *Bref, CHAMELEON_Complex64_t *Bcham, int LDB)
 {
     int info_solution;
-    double Anorm, Binitnorm, Bmorsenorm, Blapacknorm, Rnorm, result;
+    double Anorm, Binitnorm, Bchamnorm, Blapacknorm, Rnorm, result;
     double eps;
     CHAMELEON_Complex64_t mzone = (CHAMELEON_Complex64_t)-1.0;
 
@@ -161,32 +161,32 @@ static int check_solution(cham_side_t side, cham_uplo_t uplo, cham_trans_t trans
         Am = N; An = N;
     }
 
-    Anorm       = LAPACKE_zlantr_work(LAPACK_COL_MAJOR, 'I', morse_lapack_const(uplo), morse_lapack_const(diag),
+    Anorm       = LAPACKE_zlantr_work(LAPACK_COL_MAJOR, 'I', chameleon_lapack_const(uplo), chameleon_lapack_const(diag),
                                 Am, An, A, LDA, work);
     Binitnorm   = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M, N, Bref,    LDB, work);
-    Bmorsenorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M, N, Bmorse, LDB, work);
+    Bchamnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M, N, Bcham, LDB, work);
 
     cblas_ztrsm(CblasColMajor, (CBLAS_SIDE)side, (CBLAS_UPLO)uplo, (CBLAS_TRANSPOSE)trans,
                 (CBLAS_DIAG)diag, M, N, CBLAS_SADDR(alpha), A, LDA, Bref, LDB);
 
     Blapacknorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M, N, Bref, LDB, work);
 
-    cblas_zaxpy(LDB * N, CBLAS_SADDR(mzone), Bmorse, 1, Bref, 1);
+    cblas_zaxpy(LDB * N, CBLAS_SADDR(mzone), Bcham, 1, Bref, 1);
 
     Rnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M, N, Bref, LDB, work);
 
     eps = LAPACKE_dlamch_work('e');
 
-    printf("Rnorm %e, Anorm %e, Binitnorm %e, Bmorsenorm %e, Blapacknorm %e\n",
-           Rnorm, Anorm, Binitnorm, Bmorsenorm, Blapacknorm);
+    printf("Rnorm %e, Anorm %e, Binitnorm %e, Bchamnorm %e, Blapacknorm %e\n",
+           Rnorm, Anorm, Binitnorm, Bchamnorm, Blapacknorm);
 
     result = Rnorm / ((Anorm + Blapacknorm) * max(M,N) * eps);
 
     printf("============\n");
     printf("Checking the norm of the difference against reference ZTRSM \n");
-    printf("-- ||Cmorse - Clapack||_oo/((||A||_oo+||B||_oo).N.eps) = %e \n", result);
+    printf("-- ||Ccham - Clapack||_oo/((||A||_oo+||B||_oo).N.eps) = %e \n", result);
 
-    if ( isinf(Blapacknorm) || isinf(Bmorsenorm) || isnan(result) || isinf(result) || (result > 10.0) ) {
+    if ( isinf(Blapacknorm) || isinf(Bchamnorm) || isnan(result) || isinf(result) || (result > 10.0) ) {
         printf("-- The solution is suspicious ! \n");
         info_solution = 1;
     }
diff --git a/timing/CMakeLists.txt b/timing/CMakeLists.txt
index f72257b3812cd02dbdbb000061c0d75b2b5f02f3..0ed0d3bdfaa6b36821fe6e0b61b49c6d8b5bc408 100644
--- a/timing/CMakeLists.txt
+++ b/timing/CMakeLists.txt
@@ -25,7 +25,7 @@
 #
 ###
 
-# Generate the morse auxiliary headers for all possible precisions
+# Generate the chameleon auxiliary headers for all possible precisions
 # ----------------------------------------------------------------
 set(TIMING_AUX_HDRS_GENERATED "")
 set(ZHDR
@@ -47,7 +47,7 @@ add_custom_target(timing_include ALL SOURCES ${TIMING_AUX_HDRS})
 set(CHAMELEON_SOURCES_TARGETS "${CHAMELEON_SOURCES_TARGETS};timing_include" CACHE INTERNAL "List of targets of sources")
 
 if (NOT CHAMELEON_SIMULATION)
-    # Generate the morse auxiliary sources for all possible precisions
+    # Generate the chameleon auxiliary sources for all possible precisions
     # ----------------------------------------------------------------
     set(TIMING_AUX_SRCS_GENERATED "")
     set(ZSRC
@@ -70,7 +70,7 @@ if (NOT CHAMELEON_SIMULATION)
     add_dependencies(chameleon_timing timing_include timing_aux_sources)
 endif()
 
-# Generate the morse testing sources for all possible precisions
+# Generate the chameleon testing sources for all possible precisions
 # --------------------------------------------------------------
 set(TIMINGS "")
 set(ZSRC_LAP_INT
diff --git a/timing/time_zgelqf.c b/timing/time_zgelqf.c
index b6264b866abaa3b35a8b6803916aaae7a11c4ee8..bdda31be5eb966d4465dcfe23cac2c6c621fc92d 100644
--- a/timing/time_zgelqf.c
+++ b/timing/time_zgelqf.c
@@ -26,7 +26,7 @@
 #include "timing_zauxiliary.h"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     CHAM_desc_t *T;
     PASTE_CODE_IPARAM_LOCALS( iparam );
diff --git a/timing/time_zgelqf_tile.c b/timing/time_zgelqf_tile.c
index f33b5cd96b915b852f6b58d377be0789d3048d9c..9fed6d255f17052041096cd9d235c56ea8c6e3a6 100644
--- a/timing/time_zgelqf_tile.c
+++ b/timing/time_zgelqf_tile.c
@@ -25,7 +25,7 @@
 #include "./timing.c"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     CHAM_desc_t *descT;
     PASTE_CODE_IPARAM_LOCALS( iparam );
diff --git a/timing/time_zgels.c b/timing/time_zgels.c
index 52a014e94bb9822f8bc98af02fcdcbeed5802ac8..73668bfa22572f02a2ee776c5bb63a7b6af6a597 100644
--- a/timing/time_zgels.c
+++ b/timing/time_zgels.c
@@ -26,7 +26,7 @@
 #include "timing_zauxiliary.h"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_) 
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_) 
 {
     CHAM_desc_t *T;
     PASTE_CODE_IPARAM_LOCALS( iparam );
diff --git a/timing/time_zgels_tile.c b/timing/time_zgels_tile.c
index 50603e6211d457a57bd2e15412893bc3fd2afd9b..90d6cd94adf22f5f2d8a42b2e6507fca633f9700 100644
--- a/timing/time_zgels_tile.c
+++ b/timing/time_zgels_tile.c
@@ -25,7 +25,7 @@
 #include "./timing.c"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_) 
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_) 
 {
     CHAM_desc_t *descT;
     PASTE_CODE_IPARAM_LOCALS( iparam );
diff --git a/timing/time_zgemm.c b/timing/time_zgemm.c
index ed18a95aec8445ee4f4f32d112c883aaca2f070c..c98086f19a231dfc76601eabb52d861ce71844ba 100644
--- a/timing/time_zgemm.c
+++ b/timing/time_zgemm.c
@@ -26,7 +26,7 @@
 #include "timing_zauxiliary.h"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     CHAMELEON_Complex64_t alpha, beta;
     PASTE_CODE_IPARAM_LOCALS( iparam );
diff --git a/timing/time_zgemm_tile.c b/timing/time_zgemm_tile.c
index 43166a7dc6982b24ece701380e2938ec164ab28d..20ac03db6276a4af05bbf5a142bf825c0b10e490 100644
--- a/timing/time_zgemm_tile.c
+++ b/timing/time_zgemm_tile.c
@@ -26,7 +26,7 @@
 #include "timing_zauxiliary.h"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     CHAMELEON_Complex64_t alpha, beta;
     PASTE_CODE_IPARAM_LOCALS( iparam );
diff --git a/timing/time_zgeqrf.c b/timing/time_zgeqrf.c
index 6993107810df638a9eb10ea699265936c6dbfc62..a4b73351c0fde466b77114ef0804324135d0b206 100644
--- a/timing/time_zgeqrf.c
+++ b/timing/time_zgeqrf.c
@@ -26,7 +26,7 @@
 #include "timing_zauxiliary.h"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     CHAM_desc_t *T;
     PASTE_CODE_IPARAM_LOCALS( iparam );
diff --git a/timing/time_zgeqrf_hqr.c b/timing/time_zgeqrf_hqr.c
index b274d6d178fb7d63337bad922f7f06d3de83f3bf..b160912ba4d9c3303d9b560b9c1000b11fd6f436 100644
--- a/timing/time_zgeqrf_hqr.c
+++ b/timing/time_zgeqrf_hqr.c
@@ -29,7 +29,7 @@
 #include "timing_zauxiliary.h"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     CHAM_desc_t *TS;
     CHAM_desc_t *TT;
diff --git a/timing/time_zgeqrf_hqr_tile.c b/timing/time_zgeqrf_hqr_tile.c
index e2c0cf0c8140ce909b0803b8fc41e11264b62e92..a28b15aa4f6e01eed98f986bc023cc55178b0a00 100644
--- a/timing/time_zgeqrf_hqr_tile.c
+++ b/timing/time_zgeqrf_hqr_tile.c
@@ -29,7 +29,7 @@
 #include "timing_zauxiliary.h"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     CHAM_desc_t *TS;
     CHAM_desc_t *TT;
diff --git a/timing/time_zgeqrf_tile.c b/timing/time_zgeqrf_tile.c
index 937af141a0cf6438d79837358992bb099d773323..50d55ac304d146924db1a9c34b316aa3d277c735 100644
--- a/timing/time_zgeqrf_tile.c
+++ b/timing/time_zgeqrf_tile.c
@@ -25,7 +25,7 @@
 #include "./timing.c"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     CHAM_desc_t *descT;
     PASTE_CODE_IPARAM_LOCALS( iparam );
diff --git a/timing/time_zgeqrs_tile.c b/timing/time_zgeqrs_tile.c
index ca644a73a7c6fa7d6545c3c80cc8f8dc663fef00..9b3d85d0770c1c920bd2640710c9f0c38c267a54 100644
--- a/timing/time_zgeqrs_tile.c
+++ b/timing/time_zgeqrs_tile.c
@@ -25,7 +25,7 @@
 #include "./timing.c"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     CHAM_desc_t *descT;
     PASTE_CODE_IPARAM_LOCALS( iparam );
diff --git a/timing/time_zgesv_incpiv.c b/timing/time_zgesv_incpiv.c
index d4ef597006108f0aacb0037e1c2992755c3f1f82..7be9c01c0d9d192bc40a4fa7a5ef76ff0f3e3c2c 100644
--- a/timing/time_zgesv_incpiv.c
+++ b/timing/time_zgesv_incpiv.c
@@ -26,7 +26,7 @@
 #include "timing_zauxiliary.h"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_) 
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_) 
 {
     CHAM_desc_t *L;
     int *piv;
diff --git a/timing/time_zgesv_incpiv_tile.c b/timing/time_zgesv_incpiv_tile.c
index be4f904982972867b96bb9da1199e47823475a2f..8b9676d1d488ecb65e2778fe4c36edf19bd49537 100644
--- a/timing/time_zgesv_incpiv_tile.c
+++ b/timing/time_zgesv_incpiv_tile.c
@@ -25,7 +25,7 @@
 #include "./timing.c"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_) 
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_) 
 {
     CHAM_desc_t *descL;
     int *piv;
diff --git a/timing/time_zgesv_nopiv.c b/timing/time_zgesv_nopiv.c
index 122d2b5535fe6ab4b3533a7c027c8a9a8ed44b91..1b03d1e98e717a4efd2a911a97e6fde1748757c3 100644
--- a/timing/time_zgesv_nopiv.c
+++ b/timing/time_zgesv_nopiv.c
@@ -26,7 +26,7 @@
 #include "timing_zauxiliary.h"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     PASTE_CODE_IPARAM_LOCALS( iparam );
 
diff --git a/timing/time_zgesv_nopiv_tile.c b/timing/time_zgesv_nopiv_tile.c
index e1d60e5bf770f3ebe39a081826590bb19a5ddb4f..7082f642fa2d38e442f16028b26eb242005277a7 100644
--- a/timing/time_zgesv_nopiv_tile.c
+++ b/timing/time_zgesv_nopiv_tile.c
@@ -25,7 +25,7 @@
 #include "./timing.c"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_) 
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_) 
 {
     PASTE_CODE_IPARAM_LOCALS( iparam );
     
diff --git a/timing/time_zgesvd_tile.c b/timing/time_zgesvd_tile.c
index 4aaeba24f368ea7e9abc115da93742b82e47d50d..155d0507aa41ab745cf7c4ba96e4105bd95851a5 100644
--- a/timing/time_zgesvd_tile.c
+++ b/timing/time_zgesvd_tile.c
@@ -25,7 +25,7 @@
 #include "./timing.c"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     PASTE_CODE_IPARAM_LOCALS( iparam );
     CHAM_desc_t *descT;
diff --git a/timing/time_zgetrf_incpiv.c b/timing/time_zgetrf_incpiv.c
index 119c40740f5fae43aa5d5e16961e492c692d46a9..cc86539a0d7892995a29cc90d08acd7c134ea680 100644
--- a/timing/time_zgetrf_incpiv.c
+++ b/timing/time_zgetrf_incpiv.c
@@ -26,7 +26,7 @@
 #include "timing_zauxiliary.h"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     CHAM_desc_t *L;
     int *piv;
diff --git a/timing/time_zgetrf_incpiv_tile.c b/timing/time_zgetrf_incpiv_tile.c
index c91befbea0cde6b7195ae29e5e4fa8c7a51626c3..041e685a0ec8740a0fe517b6504b2b30e69f2788 100644
--- a/timing/time_zgetrf_incpiv_tile.c
+++ b/timing/time_zgetrf_incpiv_tile.c
@@ -25,7 +25,7 @@
 #include "./timing.c"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     CHAM_desc_t *descL;
     int *piv;
diff --git a/timing/time_zgetrf_nopiv.c b/timing/time_zgetrf_nopiv.c
index 1e88a8e59b9f378b0e1e452dca9fdfc2b8a4ea26..bcc29441c65ef0de974587f5b867b538c5fc11b6 100644
--- a/timing/time_zgetrf_nopiv.c
+++ b/timing/time_zgetrf_nopiv.c
@@ -26,7 +26,7 @@
 #include "timing_zauxiliary.h"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_) 
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_) 
 {
     PASTE_CODE_IPARAM_LOCALS( iparam );
 
diff --git a/timing/time_zgetrf_nopiv_tile.c b/timing/time_zgetrf_nopiv_tile.c
index d95ea17d78c36c8619117a0fd6edb8f3031f01c0..9282742918569328d18e1c0e7a407422554a9282 100644
--- a/timing/time_zgetrf_nopiv_tile.c
+++ b/timing/time_zgetrf_nopiv_tile.c
@@ -25,7 +25,7 @@
 #include "./timing.c"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_) 
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_) 
 {
     PASTE_CODE_IPARAM_LOCALS( iparam );
 
diff --git a/timing/time_zgetri_tile.c b/timing/time_zgetri_tile.c
index 2f2d95e7173caddadad1455ed1e47285ed71c748..f5f46655a5daaaf7d5fe97c96a9de34ede7b9bac 100644
--- a/timing/time_zgetri_tile.c
+++ b/timing/time_zgetri_tile.c
@@ -129,7 +129,7 @@ static int check_getri_inverse(CHAM_desc_t *descA1, CHAM_desc_t *descA2, int *IP
 }
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     CHAM_desc_t descW;
     int ret = 0;
diff --git a/timing/time_zgetrs_incpiv_tile.c b/timing/time_zgetrs_incpiv_tile.c
index 2e588a9d18ea73f9f7e5a2907bd396ccf5a86bb9..5a2c69394aac749305775dc1c60461d7a32faf22 100644
--- a/timing/time_zgetrs_incpiv_tile.c
+++ b/timing/time_zgetrs_incpiv_tile.c
@@ -25,7 +25,7 @@
 #include "./timing.c"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     CHAM_desc_t *descL;
     int *piv;
diff --git a/timing/time_zgetrs_nopiv_tile.c b/timing/time_zgetrs_nopiv_tile.c
index 9d236967c876e9fe8b7997aae4cc85c9ee5cdf6b..ceeebeac6aeadbc702f8adee0e9ddc701d9f7760 100644
--- a/timing/time_zgetrs_nopiv_tile.c
+++ b/timing/time_zgetrs_nopiv_tile.c
@@ -25,7 +25,7 @@
 #include "./timing.c"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_) 
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_) 
 {
     PASTE_CODE_IPARAM_LOCALS( iparam );
     check = 1;
diff --git a/timing/time_zheevd_tile.c b/timing/time_zheevd_tile.c
index 3fee21663badd2d8b4472c7a59b799f4261a7729..8a6a95cbc7ed22b80ab33ed693e99e4ce843f75a 100644
--- a/timing/time_zheevd_tile.c
+++ b/timing/time_zheevd_tile.c
@@ -26,7 +26,7 @@
 /* #include <mkl_service.h> */
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     PASTE_CODE_IPARAM_LOCALS( iparam );
     CHAM_desc_t *descT;
diff --git a/timing/time_zlange.c b/timing/time_zlange.c
index f1bd3dd4f97e96beab3fc4d8152029f8b288703f..85ef806b205bce2b7f8964067b7858d60db96208 100644
--- a/timing/time_zlange.c
+++ b/timing/time_zlange.c
@@ -24,10 +24,10 @@
 #include "./timing.c"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     int    hres = 0;
-    double normmorse, normlapack, result;
+    double normcham, normlapack, result;
     int    norm = ChamInfNorm;
 
     PASTE_CODE_IPARAM_LOCALS( iparam );
@@ -39,15 +39,15 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_)
 
     /* CHAMELEON ZLANGE */
     START_TIMING();
-    normmorse = CHAMELEON_zlange(norm, M, N, A, LDA);
+    normcham = CHAMELEON_zlange(norm, M, N, A, LDA);
     STOP_TIMING();
 
     /* Check the solution */
     if ( check )
     {
         double *work = (double*) malloc(chameleon_max(M,N)*sizeof(double));
-        normlapack = LAPACKE_zlange_work(LAPACK_COL_MAJOR, morse_lapack_const(norm), M, N, A, LDA, work);
-        result = fabs(normmorse - normlapack);
+        normlapack = LAPACKE_zlange_work(LAPACK_COL_MAJOR, chameleon_lapack_const(norm), M, N, A, LDA, work);
+        result = fabs(normcham - normlapack);
         switch(norm) {
         case ChamMaxNorm:
             /* result should be perfectly equal */
diff --git a/timing/time_zlange_tile.c b/timing/time_zlange_tile.c
index 5e815f4d560574f87336d495c2803779e497818d..8c445d2a5704f383be9eb85a6255e40c7716b4de 100644
--- a/timing/time_zlange_tile.c
+++ b/timing/time_zlange_tile.c
@@ -25,9 +25,9 @@
 #include "./timing.c"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
-    double normmorse, normlapack, result;
+    double normcham, normlapack, result;
     int    norm = ChamInfNorm;
 
     PASTE_CODE_IPARAM_LOCALS( iparam );
@@ -38,7 +38,7 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_)
 
     /* CHAMELEON ZPOSV */
     START_TIMING();
-    normmorse = CHAMELEON_zlange_Tile(norm, descA);
+    normcham = CHAMELEON_zlange_Tile(norm, descA);
     STOP_TIMING();
 
 #if !defined(CHAMELEON_SIMULATION)
@@ -48,8 +48,8 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_)
         /* Allocate Data */
         PASTE_TILE_TO_LAPACK( descA, A, check, CHAMELEON_Complex64_t, M, N );
         double *work = (double*) malloc(chameleon_max(M,N)*sizeof(double));
-        normlapack = LAPACKE_zlange_work(LAPACK_COL_MAJOR, morse_lapack_const(norm), M, N, A, LDA, work);
-        result = fabs(normmorse - normlapack);
+        normlapack = LAPACKE_zlange_work(LAPACK_COL_MAJOR, chameleon_lapack_const(norm), M, N, A, LDA, work);
+        result = fabs(normcham - normlapack);
         switch(norm) {
         case ChamMaxNorm:
             /* result should be perfectly equal */
@@ -79,6 +79,6 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_)
 #endif
 
     PASTE_CODE_FREE_MATRIX( descA );
-    (void)normmorse;
+    (void)normcham;
     return 0;
 }
diff --git a/timing/time_zposv.c b/timing/time_zposv.c
index e23027afd89e49f0d05fb8099ca2e73d0bcb15ba..86d141ecef0a791911b6f6d0a2c803680a667eb1 100644
--- a/timing/time_zposv.c
+++ b/timing/time_zposv.c
@@ -26,7 +26,7 @@
 #include "timing_zauxiliary.h"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     PASTE_CODE_IPARAM_LOCALS( iparam );
     cham_uplo_t uplo = ChamUpper;
diff --git a/timing/time_zposv_tile.c b/timing/time_zposv_tile.c
index 7962538de1a6b76a6818243c6c221db321972416..d2d04fdfae8771e9a7b9e86795add510c0006cca 100644
--- a/timing/time_zposv_tile.c
+++ b/timing/time_zposv_tile.c
@@ -25,7 +25,7 @@
 #include "./timing.c"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     PASTE_CODE_IPARAM_LOCALS( iparam );
     cham_uplo_t uplo = ChamUpper;
diff --git a/timing/time_zpotrf.c b/timing/time_zpotrf.c
index f1fb28c6e17f3119cc7147d37ddc541c344fbb06..95b4043564c5593cc32a8e354f49134702a39fdc 100644
--- a/timing/time_zpotrf.c
+++ b/timing/time_zpotrf.c
@@ -26,7 +26,7 @@
 #include "timing_zauxiliary.h"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     PASTE_CODE_IPARAM_LOCALS( iparam );
     cham_uplo_t uplo = ChamLower;
diff --git a/timing/time_zpotrf_tile.c b/timing/time_zpotrf_tile.c
index e13868534115c03baa2e996a8bf1d7741ed48cfe..8665f2238713bd7dfd850fcbd8fe89ce4c155db7 100644
--- a/timing/time_zpotrf_tile.c
+++ b/timing/time_zpotrf_tile.c
@@ -25,7 +25,7 @@
 #include "./timing.c"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     PASTE_CODE_IPARAM_LOCALS( iparam );
     cham_uplo_t uplo = ChamUpper;
diff --git a/timing/time_zpotri_tile.c b/timing/time_zpotri_tile.c
index 40cc00f2a3c2b2c272ccb18444394eba8454299b..f2d7b50121c98d587d5042d8f20f42181db4d1c3 100644
--- a/timing/time_zpotri_tile.c
+++ b/timing/time_zpotri_tile.c
@@ -27,7 +27,7 @@
 #include "./timing.c"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     PASTE_CODE_IPARAM_LOCALS( iparam );
     cham_uplo_t uplo = ChamLower;
diff --git a/timing/time_zpotrs_tile.c b/timing/time_zpotrs_tile.c
index e3703d9e2c3704349b43a985209a6b5e58e94d87..d61cd13c5594bf09bfd36d2d1e9ff7f50741bb1b 100644
--- a/timing/time_zpotrs_tile.c
+++ b/timing/time_zpotrs_tile.c
@@ -25,7 +25,7 @@
 #include "./timing.c"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     PASTE_CODE_IPARAM_LOCALS( iparam );
     cham_uplo_t uplo = ChamUpper;
diff --git a/timing/time_zsytrf_tile.c b/timing/time_zsytrf_tile.c
index 506b66e03a1ae71c13b9cd02b8ad39c7e492fef0..9c3a54b056ead192cd245662cbc53446c5c72ad3 100644
--- a/timing/time_zsytrf_tile.c
+++ b/timing/time_zsytrf_tile.c
@@ -25,7 +25,7 @@
 #include "./timing.c"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     PASTE_CODE_IPARAM_LOCALS( iparam );
     cham_uplo_t uplo = ChamUpper;
diff --git a/timing/time_ztrsm.c b/timing/time_ztrsm.c
index 2b342a380fd6bddd7f5f88ee50470f687348b8a7..27547ee2ec0ffeb00d0f28f33e22ca6e29a4ea1f 100644
--- a/timing/time_ztrsm.c
+++ b/timing/time_ztrsm.c
@@ -26,7 +26,7 @@
 #include "timing_zauxiliary.h"
 
 static int
-RunTest(int *iparam, double *dparam, morse_time_t *t_)
+RunTest(int *iparam, double *dparam, chameleon_time_t *t_)
 {
     CHAMELEON_Complex64_t alpha;
     PASTE_CODE_IPARAM_LOCALS( iparam );
diff --git a/timing/timing.c b/timing/timing.c
index dc9c336a957c16753183ab0de540662fc6eb54e4..1f2809c10c279248e57edfc6e074bf7f29bd6276 100644
--- a/timing/timing.c
+++ b/timing/timing.c
@@ -64,7 +64,7 @@
 #endif /* defined(CHAMELEON_HAVE_GETOPT_H) */
 
 static int RunTest(int *iparam, _PREC *dparam, double *t_);
-static inline void* morse_getaddr_null(const CHAM_desc_t *A, int m, int n)
+static inline void* chameleon_getaddr_null(const CHAM_desc_t *A, int m, int n)
 {
     (void)A;(void)m;(void)n;
     return (void*)( NULL );
diff --git a/timing/timing.h b/timing/timing.h
index 4cdbcbd13947640f515976410fd0a1f4121ef447..6677e13d1e48ef18fe44a7bb9dce27881311169b 100644
--- a/timing/timing.h
+++ b/timing/timing.h
@@ -13,7 +13,7 @@
 #ifndef TIMING_H
 #define TIMING_H
 
-typedef double morse_time_t;
+typedef double chameleon_time_t;
 
 enum iparam_timing {
     IPARAM_THRDNBR,        /* Number of cores                            */
@@ -122,7 +122,7 @@ enum dparam_timing {
                                                      P, Q);             \
         else if (!bigmat)                                               \
             status ## _desc_ = CHAMELEON_Desc_Create_User(&(_desc_), NULL, _type2_, MB, NB, MB*NB, _lda_, _n_, 0, 0, _m_, _n_, \
-                                                      P, Q, morse_getaddr_null, NULL, NULL); \
+                                                      P, Q, chameleon_getaddr_null, NULL, NULL); \
         else                                                            \
             status ## _desc_ = CHAMELEON_Desc_Create(&(_desc_), NULL, _type2_, MB, NB, MB*NB, _lda_, _n_, 0, 0, _m_, _n_, \
                                                  P, Q);                 \
diff --git a/timing/timing_zauxiliary.c b/timing/timing_zauxiliary.c
index c2c803e7f362d0f4a317cca8b637bff7e026a477..5750731f71710b5eba49cc27baeb51702c032260 100644
--- a/timing/timing_zauxiliary.c
+++ b/timing/timing_zauxiliary.c
@@ -220,23 +220,23 @@ int z_check_LLTfactorization(int N, CHAMELEON_Complex64_t *A1, CHAMELEON_Complex
 double z_check_gemm(cham_trans_t transA, cham_trans_t transB, int M, int N, int K,
                    CHAMELEON_Complex64_t alpha, CHAMELEON_Complex64_t *A, int LDA,
                    CHAMELEON_Complex64_t *B, int LDB,
-                   CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Cmorse,
+                   CHAMELEON_Complex64_t beta, CHAMELEON_Complex64_t *Ccham,
                    CHAMELEON_Complex64_t *Cref, int LDC,
-                   double *Cinitnorm, double *Cmorsenorm, double *Clapacknorm )
+                   double *Cinitnorm, double *Cchamnorm, double *Clapacknorm )
 {
     CHAMELEON_Complex64_t beta_const = -1.0;
     double Rnorm;
     double *work = (double *)malloc(chameleon_max(K,chameleon_max(M, N))* sizeof(double));
 
     *Cinitnorm   = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M, N, Cref,    LDC, work);
-    *Cmorsenorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M, N, Cmorse, LDC, work);
+    *Cchamnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M, N, Ccham, LDC, work);
 
     cblas_zgemm(CblasColMajor, (CBLAS_TRANSPOSE)transA, (CBLAS_TRANSPOSE)transB, M, N, K,
                 CBLAS_SADDR(alpha), A, LDA, B, LDB, CBLAS_SADDR(beta), Cref, LDC);
 
     *Clapacknorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M, N, Cref, LDC, work);
 
-    cblas_zaxpy(LDC * N, CBLAS_SADDR(beta_const), Cmorse, 1, Cref, 1);
+    cblas_zaxpy(LDC * N, CBLAS_SADDR(beta_const), Ccham, 1, Cref, 1);
 
     Rnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'I', M, N, Cref, LDC, work);
 
@@ -251,8 +251,8 @@ double z_check_gemm(cham_trans_t transA, cham_trans_t transB, int M, int N, int
 double z_check_trsm(cham_side_t side, cham_uplo_t uplo, cham_trans_t trans, cham_diag_t diag,
                    int M, int NRHS, CHAMELEON_Complex64_t alpha,
                    CHAMELEON_Complex64_t *A, int LDA,
-                   CHAMELEON_Complex64_t *Bmorse, CHAMELEON_Complex64_t *Bref, int LDB,
-                   double *Binitnorm, double *Bmorsenorm, double *Blapacknorm )
+                   CHAMELEON_Complex64_t *Bcham, CHAMELEON_Complex64_t *Bref, int LDB,
+                   double *Binitnorm, double *Bchamnorm, double *Blapacknorm )
 {
     CHAMELEON_Complex64_t beta_const = -1.0;
     double Rnorm;
@@ -260,7 +260,7 @@ double z_check_trsm(cham_side_t side, cham_uplo_t uplo, cham_trans_t trans, cham
     /*double eps = LAPACKE_dlamch_work('e');*/
 
     *Binitnorm   = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'i', M, NRHS, Bref,    LDB, work);
-    *Bmorsenorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'i', M, NRHS, Bmorse, LDB, work);
+    *Bchamnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'i', M, NRHS, Bcham, LDB, work);
 
     cblas_ztrsm(CblasColMajor, (CBLAS_SIDE)side, (CBLAS_UPLO)uplo,
                 (CBLAS_TRANSPOSE)trans, (CBLAS_DIAG)diag, M, NRHS,
@@ -268,7 +268,7 @@ double z_check_trsm(cham_side_t side, cham_uplo_t uplo, cham_trans_t trans, cham
 
     *Blapacknorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'i', M, NRHS, Bref, LDB, work);
 
-    cblas_zaxpy(LDB * NRHS, CBLAS_SADDR(beta_const), Bmorse, 1, Bref, 1);
+    cblas_zaxpy(LDB * NRHS, CBLAS_SADDR(beta_const), Bcham, 1, Bref, 1);
 
     Rnorm = LAPACKE_zlange_work(LAPACK_COL_MAJOR, 'i', M, NRHS, Bref, LDB, work);
     Rnorm = Rnorm / *Blapacknorm;