diff --git a/compute/zbuild.c b/compute/zbuild.c
index 5256ff049612a4fc012e3fb1c3ec45e505b2d602..248a2dd1d05d789b0c5196123a6e1d523167cbbf 100644
--- a/compute/zbuild.c
+++ b/compute/zbuild.c
@@ -91,7 +91,7 @@ int MORSE_zbuild( MORSE_enum uplo, int M, int N,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zgeadd.c b/compute/zgeadd.c
index 6e8f1e5af8c6e0c624ab7958b8efd85c62e5c842..d68675ef6eaf8b8e1c786b03bd3b9b91fe88a119 100644
--- a/compute/zgeadd.c
+++ b/compute/zgeadd.c
@@ -98,8 +98,8 @@ int MORSE_zgeadd(MORSE_enum trans, int M, int N,
     int NB;
     int Am, An;
     int status;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
diff --git a/compute/zgelqf.c b/compute/zgelqf.c
index baa8a436193a3c64317e1bc977d7f539ec1159b8..9ec00006b2f32a561e502046ad443d75b6555bde 100644
--- a/compute/zgelqf.c
+++ b/compute/zgelqf.c
@@ -84,7 +84,7 @@ int MORSE_zgelqf(int M, int N,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zgelqf_param.c b/compute/zgelqf_param.c
index cdc0754c52eee46c2b3aea5c607d882afef69e5f..a215f3bbfb9b510e556b48944f7b8bba6d31e88e 100644
--- a/compute/zgelqf_param.c
+++ b/compute/zgelqf_param.c
@@ -81,7 +81,7 @@ int MORSE_zgelqf_param(const libhqr_tree_t *qrtree, int M, int N,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zgelqs.c b/compute/zgelqs.c
index d39b9e64f0cfd7b9810d0faa47b169b5db3b10e8..ca91e1efe0963740405d1b959da8cdab88051bdb 100644
--- a/compute/zgelqs.c
+++ b/compute/zgelqs.c
@@ -91,8 +91,8 @@ int MORSE_zgelqs(int M, int N, int NRHS,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zgelqs_param.c b/compute/zgelqs_param.c
index 5b6e5e755490b5b661c5c9cc567ee2de62e3f047..3c1f6885374c9bccf9ddc5801f3b098b22faace7 100644
--- a/compute/zgelqs_param.c
+++ b/compute/zgelqs_param.c
@@ -93,8 +93,8 @@ int MORSE_zgelqs_param(const libhqr_tree_t *qrtree, int M, int N, int NRHS,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zgels.c b/compute/zgels.c
index 680702bb283405c3c29cb890bd1160fa2971563c..bedaaac04d8d19a33456c03eb50661aed9068339 100644
--- a/compute/zgels.c
+++ b/compute/zgels.c
@@ -118,8 +118,8 @@ int MORSE_zgels(MORSE_enum trans, int M, int N, int NRHS,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zgels_param.c b/compute/zgels_param.c
index f1346cc27238c9204f3d844ce27405a8b2a8599b..526e77e5ae25947f990ef51043c93ac24cc9ca32 100644
--- a/compute/zgels_param.c
+++ b/compute/zgels_param.c
@@ -120,8 +120,8 @@ int MORSE_zgels_param(const libhqr_tree_t *qrtree, MORSE_enum trans, int M, int
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zgemm.c b/compute/zgemm.c
index aec4e1f72b27e94603f624f1aa31d7c4011e0fa8..4c5d6570ffe7a87a32ff7fb80fc519c25d1a63d5 100644
--- a/compute/zgemm.c
+++ b/compute/zgemm.c
@@ -138,9 +138,9 @@ int MORSE_zgemm(MORSE_enum transA, MORSE_enum transB, int M, int N, int K,
     int NB;
     int Am, An, Bm, Bn;
     int status;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
-    MORSE_desc_t descC;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
+    MORSE_desc_t descCl, descCt;
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
diff --git a/compute/zgeqrf.c b/compute/zgeqrf.c
index b17e13eb017f06912d8de52dc79c7d8e40225d9a..823492a20a5b5d0829b62ad39513cb7778e0b4dd 100644
--- a/compute/zgeqrf.c
+++ b/compute/zgeqrf.c
@@ -83,7 +83,7 @@ int MORSE_zgeqrf(int M, int N,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zgeqrf_param.c b/compute/zgeqrf_param.c
index b6ce0e27f31ac1ec4ef7d2f80e6c0848aa3a6eb9..eacb6d0811cefa70f33e840f3e3e01b646c286ba 100644
--- a/compute/zgeqrf_param.c
+++ b/compute/zgeqrf_param.c
@@ -86,7 +86,7 @@ int MORSE_zgeqrf_param(const libhqr_tree_t *qrtree, int M, int N,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zgeqrs.c b/compute/zgeqrs.c
index 93bac6e456dbd6f70b90c8ca9ab8a19cc59095d3..f4331413bd0b3a1b3be436eee347770e2d187c9c 100644
--- a/compute/zgeqrs.c
+++ b/compute/zgeqrs.c
@@ -91,8 +91,8 @@ int MORSE_zgeqrs(int M, int N, int NRHS,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zgeqrs_param.c b/compute/zgeqrs_param.c
index 7e4b30b47fa3e10a6a4d7a9059593dbb9118cb84..92dcd417cea0eb7e5681afaa5dee848f570ffdfe 100644
--- a/compute/zgeqrs_param.c
+++ b/compute/zgeqrs_param.c
@@ -86,8 +86,8 @@ int MORSE_zgeqrs_param(const libhqr_tree_t *qrtree, int M, int N, int NRHS,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zgesv_incpiv.c b/compute/zgesv_incpiv.c
index e73fc2601f576d936bc01dd529d3f1e77e019e1b..8ee666675567f6e0a69fde93ea4ec6afc1545f29 100644
--- a/compute/zgesv_incpiv.c
+++ b/compute/zgesv_incpiv.c
@@ -96,8 +96,8 @@ int MORSE_zgesv_incpiv(int N, int NRHS,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zgesv_nopiv.c b/compute/zgesv_nopiv.c
index a1261cb2688157f83a41ea2c21b5f51486896280..7a3e7a5a1b53e776a900f8ef968f28f5dd48aed1 100644
--- a/compute/zgesv_nopiv.c
+++ b/compute/zgesv_nopiv.c
@@ -95,8 +95,8 @@ int MORSE_zgesv_nopiv(int N, int NRHS,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zgesvd.c b/compute/zgesvd.c
index cf9f34ae95c1d58574e2427e3b0d70b17dcf48e6..b6533b3bd191545df65b8849b24693873b9d8287 100644
--- a/compute/zgesvd.c
+++ b/compute/zgesvd.c
@@ -160,7 +160,7 @@ int MORSE_zgesvd(MORSE_enum jobu, MORSE_enum jobvt,
     MORSE_context_t  *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t   request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
 
     morse = morse_context_self();
     if (morse == NULL) {
@@ -400,11 +400,11 @@ int MORSE_zgesvd_Tile_Async(MORSE_enum jobu, MORSE_enum jobvt,
                             MORSE_Complex64_t *VT, int LDVT,
                             MORSE_sequence_t *sequence, MORSE_request_t *request)
 {
-    MORSE_desc_t descA;
-    MORSE_desc_t descT;
-    MORSE_desc_t descU;
-    MORSE_desc_t descVT;
-    MORSE_desc_t descAB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descTl, descTt;
+    MORSE_desc_t descUl, descUt;
+    MORSE_desc_t descVTl, descVTt;
+    MORSE_desc_t descABl, descABt;
     MORSE_desc_t D, *Dptr = NULL;
     MORSE_desc_t *subA, *subT, *subUVT;
     double *E;
diff --git a/compute/zgetrf_incpiv.c b/compute/zgetrf_incpiv.c
index 78da0d7500d13187a78800c8d8fabfd6023dfd25..6253f4c1058addf8bd433926706602f8ca8d03ff 100644
--- a/compute/zgetrf_incpiv.c
+++ b/compute/zgetrf_incpiv.c
@@ -87,7 +87,7 @@ int MORSE_zgetrf_incpiv(int M, int N,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zgetrf_nopiv.c b/compute/zgetrf_nopiv.c
index b7f6aa9380c66748073a6946f3ab10a880e4feb8..dedcea01a5df14369f1dc9af6cef4f440bbad220 100644
--- a/compute/zgetrf_nopiv.c
+++ b/compute/zgetrf_nopiv.c
@@ -77,7 +77,7 @@ int MORSE_zgetrf_nopiv(int M, int N,
 {
     int NB;
     int status;
-    MORSE_desc_t descA ;
+    MORSE_desc_t descAl, descAt;
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
diff --git a/compute/zgetrs_incpiv.c b/compute/zgetrs_incpiv.c
index 1f40b11010a8e763bce9e4a798d2e99762caa4a7..d52fa0153951aa8dbafeebab39cc00dfe9157673 100644
--- a/compute/zgetrs_incpiv.c
+++ b/compute/zgetrs_incpiv.c
@@ -98,8 +98,8 @@ int MORSE_zgetrs_incpiv(MORSE_enum trans, int N, int NRHS,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zgetrs_nopiv.c b/compute/zgetrs_nopiv.c
index a03b5ee67b53e27683755db5b7e9d054d6c87931..78e2c2783d94e0bdd3030c9374482672c8492107 100644
--- a/compute/zgetrs_nopiv.c
+++ b/compute/zgetrs_nopiv.c
@@ -92,8 +92,8 @@ int MORSE_zgetrs_nopiv(MORSE_enum trans, int N, int NRHS,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zheevd.c b/compute/zheevd.c
index c1b0b78c86fad6b3940bd261f773395a9b431291..a59d40c63149fa0800e0cde1114bb3e8a5f27722 100644
--- a/compute/zheevd.c
+++ b/compute/zheevd.c
@@ -336,15 +336,15 @@ int MORSE_zheevd_Tile_Async(MORSE_enum jobz, MORSE_enum uplo,
                             MORSE_sequence_t *sequence, MORSE_request_t *request)
 {
     MORSE_context_t *morse;
-    MORSE_desc_t descA;
-    MORSE_desc_t descT;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descTl, descTt;
     MORSE_desc_t D, *Dptr = NULL;
     MORSE_Complex64_t *Q2;
     int N, NB, status;
     double *E;
     MORSE_Complex64_t *V;
-    MORSE_desc_t descQ2;
-    MORSE_desc_t descV;
+    MORSE_desc_t descQ2l, descQ2t;
+    MORSE_desc_t descVl, descVt;
     MORSE_desc_t *subA, *subQ, *subT;
 
     morse = morse_context_self();
diff --git a/compute/zhemm.c b/compute/zhemm.c
index 24f24bb1f24006d4d77f2c31f33ee91ef836f11b..8d6b9782f4cb74dd55dce07e6ce1902425e5e2a5 100644
--- a/compute/zhemm.c
+++ b/compute/zhemm.c
@@ -114,9 +114,9 @@ int MORSE_zhemm(MORSE_enum side, MORSE_enum uplo, int M, int N,
     int NB;
     int Am;
     int status;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
-    MORSE_desc_t descC;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
+    MORSE_desc_t descCl, descCt;
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
diff --git a/compute/zher2k.c b/compute/zher2k.c
index 453d618180e492c5e051a8221574cd13a6cf3e9b..41449fb8e64cb5b3c170ce021ba4397c0091f239 100644
--- a/compute/zher2k.c
+++ b/compute/zher2k.c
@@ -115,9 +115,9 @@ int MORSE_zher2k(MORSE_enum uplo, MORSE_enum trans, int N, int K,
     int NB;
     int Am, An;
     int status;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
-    MORSE_desc_t descC;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
+    MORSE_desc_t descCl, descCt;
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
diff --git a/compute/zherk.c b/compute/zherk.c
index 9ec4f82a9537696cb604a8732b5395bc938a426f..abf0f8522b387e7cfe389dadc449453e9a119de8 100644
--- a/compute/zherk.c
+++ b/compute/zherk.c
@@ -105,8 +105,8 @@ int MORSE_zherk(MORSE_enum uplo, MORSE_enum trans, int N, int K,
     int NB;
     int Am, An;
     int status;
-    MORSE_desc_t descA;
-    MORSE_desc_t descC;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descCl, descCt;
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
diff --git a/compute/zhetrd.c b/compute/zhetrd.c
index 2c4cfb0602a8b83255fe623d5fae84f42bf8e779..7d1a75fefff1cf1897f577aecb5952750b4330f9 100644
--- a/compute/zhetrd.c
+++ b/compute/zhetrd.c
@@ -125,7 +125,7 @@ int MORSE_zhetrd(MORSE_enum jobz, MORSE_enum uplo, int N,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
 
     morse = morse_context_self();
     if (morse == NULL) {
@@ -333,8 +333,8 @@ int MORSE_zhetrd_Tile_Async(MORSE_enum jobz,
                             MORSE_sequence_t *sequence, MORSE_request_t *request)
 {
     MORSE_context_t *morse;
-    MORSE_desc_t descA;
-    MORSE_desc_t descAB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descABl, descABt;
     int N, NB, LDAB;
     int status;
     MORSE_desc_t D, *Dptr = NULL;
diff --git a/compute/zlacpy.c b/compute/zlacpy.c
index b51de41d370e975bb2f6ee1c1b87ad5eb69468ab..2ba71f07e896270a71443ae251b530a1397bb98c 100644
--- a/compute/zlacpy.c
+++ b/compute/zlacpy.c
@@ -83,8 +83,8 @@ int MORSE_zlacpy(MORSE_enum uplo, int M, int N,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zlange.c b/compute/zlange.c
index a7bd32ca130cf05a6c3111cb237ce19fe6e9918e..ad96f5f74f524579050e317a1a74f65f84a12455 100644
--- a/compute/zlange.c
+++ b/compute/zlange.c
@@ -92,7 +92,7 @@ double MORSE_zlange(MORSE_enum norm, int M, int N,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zlanhe.c b/compute/zlanhe.c
index b7998b8c46d5bfeced1b515229835b6c60045f44..0e1141901eefd9cbb364a9aece436c0fc24c6517 100644
--- a/compute/zlanhe.c
+++ b/compute/zlanhe.c
@@ -92,7 +92,7 @@ double MORSE_zlanhe(MORSE_enum norm, MORSE_enum uplo, int N,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zlansy.c b/compute/zlansy.c
index 0383a7be99864827f12454358ace374bcdfb8e49..780d3c2c169081a3b1de3ad2de2c3297eb6557f7 100644
--- a/compute/zlansy.c
+++ b/compute/zlansy.c
@@ -92,7 +92,7 @@ double MORSE_zlansy(MORSE_enum norm, MORSE_enum uplo, int N,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zlantr.c b/compute/zlantr.c
index 8c06e19679558a70ce2852e65bec3bee09695a21..848750cc2d3fadd2cedb2e4e1d07af3d2ebbbf44 100644
--- a/compute/zlantr.c
+++ b/compute/zlantr.c
@@ -104,7 +104,7 @@ double MORSE_zlantr(MORSE_enum norm, MORSE_enum uplo, MORSE_enum diag,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zlascal.c b/compute/zlascal.c
index fb36b4442d582b470481255faa74c8a7754c981b..b5e78c05315b275eb77e7bddc55bf8bb2255140e 100644
--- a/compute/zlascal.c
+++ b/compute/zlascal.c
@@ -67,7 +67,7 @@ int MORSE_zlascal(MORSE_enum uplo, int M, int N,
 {
     int NB;
     int status;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
@@ -227,7 +227,7 @@ int MORSE_zlascal_Tile_Async(MORSE_enum uplo,
                              MORSE_sequence_t *sequence, MORSE_request_t *request)
 {
     MORSE_context_t *morse;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zlaset.c b/compute/zlaset.c
index f8e42f788bad81d2118f9a44957ee8fc7bc071b0..aa26d42cb148133a73165656043885d0d37701a8 100644
--- a/compute/zlaset.c
+++ b/compute/zlaset.c
@@ -84,7 +84,7 @@ int MORSE_zlaset(MORSE_enum uplo, int M, int N,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zlauum.c b/compute/zlauum.c
index e0622456ef1c835ba2ad6301bbec5ef3bee10e12..228fb7e273200040bba58cc8e62b93417a81ada8 100644
--- a/compute/zlauum.c
+++ b/compute/zlauum.c
@@ -85,7 +85,7 @@ int MORSE_zlauum(MORSE_enum uplo, int N,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zplghe.c b/compute/zplghe.c
index 0396aeed6768f793aaa71122c27d8ed833f75853..a2550f30d93b9a044e1fac3342f09f916ad9c454 100644
--- a/compute/zplghe.c
+++ b/compute/zplghe.c
@@ -84,7 +84,7 @@ int MORSE_zplghe( double bump, MORSE_enum uplo, int N,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zplgsy.c b/compute/zplgsy.c
index e57091b6c87868309f86fcb41a9a8e3b5929bfd4..89b02c279b97c79c12740ad8d0698267504d0385 100644
--- a/compute/zplgsy.c
+++ b/compute/zplgsy.c
@@ -84,7 +84,7 @@ int MORSE_zplgsy( MORSE_Complex64_t bump, MORSE_enum uplo, int N,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zplrnt.c b/compute/zplrnt.c
index 4272ad445d6eb14ebe25a74c2e622c0073662de6..0b563d031711867f17d15d739efed0ebcd458c25 100644
--- a/compute/zplrnt.c
+++ b/compute/zplrnt.c
@@ -78,7 +78,7 @@ int MORSE_zplrnt( int M, int N,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zposv.c b/compute/zposv.c
index 0ed24aaec1715354669e9d971302236117fe70b6..48493733acf7f75c0ad6037b638e53e58b5a2e55 100644
--- a/compute/zposv.c
+++ b/compute/zposv.c
@@ -104,8 +104,8 @@ int MORSE_zposv(MORSE_enum uplo, int N, int NRHS,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zpotrf.c b/compute/zpotrf.c
index 3da636bdd285a7dbb6ad6e22e9142ae2c9cd2cf5..e471c619ac29b4c7f1a468e75ab9f073e155ab29 100644
--- a/compute/zpotrf.c
+++ b/compute/zpotrf.c
@@ -91,8 +91,8 @@ int MORSE_zpotrf(MORSE_enum uplo, int N,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descAt;
-    MORSE_desc_t descAl;
+    MORSE_desc_t descAtl, descAtt;
+    MORSE_desc_t descAll, descAlt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zpotri.c b/compute/zpotri.c
index 3fb9836e3612e65a5d2e3602206e229c8b1175ad..58c6b76dec25b57206b7238591b263a816e94c47 100644
--- a/compute/zpotri.c
+++ b/compute/zpotri.c
@@ -82,7 +82,7 @@ int MORSE_zpotri(MORSE_enum uplo, int N,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zpotrimm.c b/compute/zpotrimm.c
index 150a5ca1994f97e5c72916235e4c4ed1481a8280..5f9f1b9044e523979c7f3f9c22428cd841ff0e41 100644
--- a/compute/zpotrimm.c
+++ b/compute/zpotrimm.c
@@ -84,9 +84,9 @@ int MORSE_zpotrimm(MORSE_enum uplo, int N,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
-    MORSE_desc_t descC;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
+    MORSE_desc_t descCl, descCt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zpotrs.c b/compute/zpotrs.c
index 4b4653dfb64a7f9d2985dfb7804a755356e67e5a..dfbb3136b7cc7cecf497ece5f0a1c1df25a8c2c2 100644
--- a/compute/zpotrs.c
+++ b/compute/zpotrs.c
@@ -89,8 +89,8 @@ int MORSE_zpotrs(MORSE_enum uplo, int N, int NRHS,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zsymm.c b/compute/zsymm.c
index 81f9dc3fc1d6d855aced218a9c12617cdb3c0c72..8948f1c085eb9a35937930416655598fe53f75f3 100644
--- a/compute/zsymm.c
+++ b/compute/zsymm.c
@@ -114,9 +114,9 @@ int MORSE_zsymm(MORSE_enum side, MORSE_enum uplo, int M, int N,
     int NB;
     int Am;
     int status;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
-    MORSE_desc_t descC;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
+    MORSE_desc_t descCl, descCt;
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
diff --git a/compute/zsyr2k.c b/compute/zsyr2k.c
index 6b1125fac4aa832c5256d7463c05a04747619fac..1ac98900b9687a6408e8dc0ce0858e4302b2575c 100644
--- a/compute/zsyr2k.c
+++ b/compute/zsyr2k.c
@@ -115,9 +115,9 @@ int MORSE_zsyr2k(MORSE_enum uplo, MORSE_enum trans, int N, int K,
     int NB;
     int Am, An;
     int status;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
-    MORSE_desc_t descC;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
+    MORSE_desc_t descCl, descCt;
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
diff --git a/compute/zsyrk.c b/compute/zsyrk.c
index 273bc1e2ea0063c48849d8c040eedd0951e0a644..94d67f8d989d2e0d1b9abad14390bc4c53ca8df8 100644
--- a/compute/zsyrk.c
+++ b/compute/zsyrk.c
@@ -105,8 +105,8 @@ int MORSE_zsyrk(MORSE_enum uplo, MORSE_enum trans, int N, int K,
     int NB;
     int Am, An;
     int status;
-    MORSE_desc_t descA;
-    MORSE_desc_t descC;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descCl, descCt;
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
diff --git a/compute/zsysv.c b/compute/zsysv.c
index d263aa3c8ad102cd43593635955fb7afa7e5a098..08c21449681eae066a06c660e146349af3241cae 100644
--- a/compute/zsysv.c
+++ b/compute/zsysv.c
@@ -101,8 +101,8 @@ int MORSE_zsysv(MORSE_enum uplo, int N, int NRHS,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zsytrf.c b/compute/zsytrf.c
index a0e1345f9df37ab18a822b1544e82c8b1947b2c5..45bc1dccb9a812c9a607e2ac92e20474a3324528 100644
--- a/compute/zsytrf.c
+++ b/compute/zsytrf.c
@@ -86,7 +86,7 @@ int MORSE_zsytrf(MORSE_enum uplo, int N,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zsytrs.c b/compute/zsytrs.c
index 36e650f02fdf630b0bcbcd294d0a59a6e66e966a..d608cd19a0e297bb0d1608ba4110293470e3bed8 100644
--- a/compute/zsytrs.c
+++ b/compute/zsytrs.c
@@ -88,8 +88,8 @@ int MORSE_zsytrs(MORSE_enum uplo, int N, int NRHS,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/ztpgqrt.c b/compute/ztpgqrt.c
index cf85533b084d823de87b96c51e0e227b209580c6..252a41d9a1033bdc4964feef40ff34dc7639da81 100644
--- a/compute/ztpgqrt.c
+++ b/compute/ztpgqrt.c
@@ -144,10 +144,10 @@ int MORSE_ztpgqrt( int M, int N, int K, int L,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descQ1;
-    MORSE_desc_t descQ2;
-    MORSE_desc_t descV1;
-    MORSE_desc_t descV2;
+    MORSE_desc_t descQ1l, descQ1t;
+    MORSE_desc_t descQ2l, descQ2t;
+    MORSE_desc_t descV1l, descV1t;
+    MORSE_desc_t descV2l, descV2t;
     int minMK = chameleon_min( M, K );
 
     morse = morse_context_self();
diff --git a/compute/ztpqrt.c b/compute/ztpqrt.c
index 852de0ce2aa14cb63d00a4dce1f000eb9ccd1e53..a84b9f606e1202321bf2d351a7edd2aabc8a154d 100644
--- a/compute/ztpqrt.c
+++ b/compute/ztpqrt.c
@@ -138,8 +138,8 @@ int MORSE_ztpqrt( int M, int N, int L,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
     int minMN = chameleon_min( M, N );
 
     morse = morse_context_self();
diff --git a/compute/ztradd.c b/compute/ztradd.c
index b55fe3e44f9733d7429aa9d09f27120ba751df68..81e9d4d872909088ddce47aefc9099679efc42ca 100644
--- a/compute/ztradd.c
+++ b/compute/ztradd.c
@@ -104,8 +104,8 @@ int MORSE_ztradd(MORSE_enum uplo, MORSE_enum trans, int M, int N,
     int NB;
     int Am, An;
     int status;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
diff --git a/compute/ztrmm.c b/compute/ztrmm.c
index b56caa75bdf8ba0fdf64a4e960cf2d4f32cd7e2b..95ea52546aea3a1c9507abbd74b00f434073aea9 100644
--- a/compute/ztrmm.c
+++ b/compute/ztrmm.c
@@ -111,8 +111,8 @@ int MORSE_ztrmm(MORSE_enum side, MORSE_enum uplo,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/ztrsm.c b/compute/ztrsm.c
index 24bde3d9c456ccf958b348912d1a548da6a01cff..622fafe9a0386954c0740dba5e1e18de36063232 100644
--- a/compute/ztrsm.c
+++ b/compute/ztrsm.c
@@ -112,8 +112,8 @@ int MORSE_ztrsm(MORSE_enum side, MORSE_enum uplo,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/ztrsmpl.c b/compute/ztrsmpl.c
index 9242c9f872d511a92adf69f9b956c4b714abfd08..864489313d9148ea9251e809d86784b3b7255c18 100644
--- a/compute/ztrsmpl.c
+++ b/compute/ztrsmpl.c
@@ -90,8 +90,8 @@ int MORSE_ztrsmpl(int N, int NRHS,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descB;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descBl, descBt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/ztrtri.c b/compute/ztrtri.c
index 4dfc7438fbe005de3a779c12dc49fcf854c63c8b..de6004fdd1d65db7e44e9b934cb0a3f1ad6cd8f4 100644
--- a/compute/ztrtri.c
+++ b/compute/ztrtri.c
@@ -90,7 +90,7 @@ int MORSE_ztrtri(MORSE_enum uplo, MORSE_enum diag, int N,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
+    MORSE_desc_t descAl, descAt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zunglq.c b/compute/zunglq.c
index 1119c9b48bfe4ee95e12e35951614e22642626a2..a5c65ad097cb2ecb9e75fce83963bbb1fb7ab829 100644
--- a/compute/zunglq.c
+++ b/compute/zunglq.c
@@ -91,8 +91,8 @@ int MORSE_zunglq(int M, int N, int K,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descQ;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descQl, descQt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zunglq_param.c b/compute/zunglq_param.c
index 910d778482f0f328ac4eb4c112c6326958e8c574..822ddce3501160bf0716c0bb2d1004be22a30d39 100644
--- a/compute/zunglq_param.c
+++ b/compute/zunglq_param.c
@@ -88,8 +88,8 @@ int MORSE_zunglq_param(const libhqr_tree_t *qrtree, int M, int N, int K,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descQ;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descQl, descQt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zungqr.c b/compute/zungqr.c
index c9a790b032d03cc0ed948bb6703d2bbbca662f00..1c54545db5c60d0266321639b4f14aa5823d6abc 100644
--- a/compute/zungqr.c
+++ b/compute/zungqr.c
@@ -91,8 +91,8 @@ int MORSE_zungqr(int M, int N, int K,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descQ;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descQl, descQt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zungqr_param.c b/compute/zungqr_param.c
index 25a9a831a683d49f60b5ce04dd377ac4e95e80c6..36b03252b2d663b76c0af3053d8574322035b4f9 100644
--- a/compute/zungqr_param.c
+++ b/compute/zungqr_param.c
@@ -90,8 +90,8 @@ int MORSE_zungqr_param(const libhqr_tree_t *qrtree,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descQ;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descQl, descQt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zunmlq.c b/compute/zunmlq.c
index d29598bfb0ced503df840bdde6570bc302e13666..572e275e93d8687ca7274eb749c532a270976ad0 100644
--- a/compute/zunmlq.c
+++ b/compute/zunmlq.c
@@ -115,8 +115,8 @@ int MORSE_zunmlq(MORSE_enum side, MORSE_enum trans, int M, int N, int K,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descC;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descCl, descCt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zunmlq_param.c b/compute/zunmlq_param.c
index 356d4b20c6473af982ac165eb90d5b7dd3a58a05..0672587e977a6d185d9f51aa919c2f7b4f8714c4 100644
--- a/compute/zunmlq_param.c
+++ b/compute/zunmlq_param.c
@@ -114,8 +114,8 @@ int MORSE_zunmlq_param(const libhqr_tree_t *qrtree, MORSE_enum side, MORSE_enum
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descC;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descCl, descCt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zunmqr.c b/compute/zunmqr.c
index 245708e6afa2e543093a37393e3eeaa438066d5e..c332328c2f93fb892ab889938bca685144f95eb3 100644
--- a/compute/zunmqr.c
+++ b/compute/zunmqr.c
@@ -117,8 +117,8 @@ int MORSE_zunmqr(MORSE_enum side, MORSE_enum trans, int M, int N, int K,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descC;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descCl, descCt;
 
     morse = morse_context_self();
     if (morse == NULL) {
diff --git a/compute/zunmqr_param.c b/compute/zunmqr_param.c
index a3a30faf84210833cbd9c824fc468ff4bbd27dc5..1f4a6867c7c6623d32665643c1e9c57c1f7eb6bb 100644
--- a/compute/zunmqr_param.c
+++ b/compute/zunmqr_param.c
@@ -118,8 +118,8 @@ int MORSE_zunmqr_param(const libhqr_tree_t *qrtree,
     MORSE_context_t *morse;
     MORSE_sequence_t *sequence = NULL;
     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
-    MORSE_desc_t descA;
-    MORSE_desc_t descC;
+    MORSE_desc_t descAl, descAt;
+    MORSE_desc_t descCl, descCt;
 
     morse = morse_context_self();
     if (morse == NULL) {