diff --git a/runtime/parsec/codelets/codelet_zasum.c b/runtime/parsec/codelets/codelet_zasum.c
index ca99ee59c19abddef2fe8f4ba7314883e1eca822..c279c7c048e30c5f8c991204abf75cf189fa27c0 100644
--- a/runtime/parsec/codelets/codelet_zasum.c
+++ b/runtime/parsec/codelets/codelet_zasum.c
@@ -56,6 +56,6 @@ void MORSE_TASK_dzasum(const MORSE_option_t *options,
         sizeof(int),           &N,                                VALUE,
         PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INPUT,
         sizeof(int),           &lda,                              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( B, double, Bm, Bn ),     INOUT,
+        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 9fcd774e56a8c87d74a199b9755d30bd2a57a7f8..75e695d14c77143f93ff2e9b0be411ef0a10f94a 100644
--- a/runtime/parsec/codelets/codelet_zaxpy.c
+++ b/runtime/parsec/codelets/codelet_zaxpy.c
@@ -53,7 +53,7 @@ void MORSE_TASK_zaxpy(const MORSE_option_t *options,
         sizeof(MORSE_Complex64_t), &alpha, VALUE,
         PASSED_BY_REF,  RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INPUT,
         sizeof(int),               &incA, VALUE,
-        PASSED_BY_REF,  RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ), INOUT,
+        PASSED_BY_REF,  RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ), 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 17015a453d8acf91183f2fa95f032b0e426d2dff..1cef05838c528c51c6e83a22d527d9b58ba091ec 100644
--- a/runtime/parsec/codelets/codelet_zbuild.c
+++ b/runtime/parsec/codelets/codelet_zbuild.c
@@ -59,7 +59,7 @@ void MORSE_TASK_zbuild( const MORSE_option_t *options,
         sizeof(int),   &row_max,                          VALUE,
         sizeof(int),   &col_min,                          VALUE,
         sizeof(int),   &col_max,                          VALUE,
-        PASSED_BY_REF,  RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     OUTPUT,
+        PASSED_BY_REF,  RTBLKADDR( A, MORSE_Complex64_t, Am, An ), 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 b956a76b3c20e1f30e1c9f990ba36db8c5202891..520d156a53b8b6d968832c9621d4eef5104748bb 100644
--- a/runtime/parsec/codelets/codelet_zgeadd.c
+++ b/runtime/parsec/codelets/codelet_zgeadd.c
@@ -117,7 +117,7 @@ void MORSE_TASK_zgeadd(const MORSE_option_t *options,
         PASSED_BY_REF,              RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INPUT,
         sizeof(int),               &lda,   VALUE,
         sizeof(MORSE_Complex64_t), &beta,  VALUE,
-        PASSED_BY_REF,              RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ),     INOUT,
+        PASSED_BY_REF,              RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ),     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 bfde58e8ae9e29fc70480cb1f03fd10e679aa895..1f168f0ee8ea2587651c949fe2367873d1c83295 100644
--- a/runtime/parsec/codelets/codelet_zgelqt.c
+++ b/runtime/parsec/codelets/codelet_zgelqt.c
@@ -116,7 +116,7 @@ void MORSE_TASK_zgelqt(const MORSE_option_t *options,
         sizeof(int),                        &m,     VALUE,
         sizeof(int),                        &n,     VALUE,
         sizeof(int),                        &ib,    VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INOUT,
+        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INOUT | AFFINITY,
         sizeof(int),           &lda,                VALUE,
         PASSED_BY_REF,         RTBLKADDR( T, MORSE_Complex64_t, Tm, Tn ),     OUTPUT,
         sizeof(int),           &ldt,                VALUE,
diff --git a/runtime/parsec/codelets/codelet_zgemm.c b/runtime/parsec/codelets/codelet_zgemm.c
index d79d23cc02c6e0811dcc3b26410c51739de464cf..59265b69834e76f551c6c614b0892d43fe73b314 100644
--- a/runtime/parsec/codelets/codelet_zgemm.c
+++ b/runtime/parsec/codelets/codelet_zgemm.c
@@ -77,7 +77,7 @@ void MORSE_TASK_zgemm( const MORSE_option_t *options,
         PASSED_BY_REF,     RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ),     INPUT | morse_parsec_get_arena_index(B),
         sizeof(int),           &ldb,                              VALUE,
         sizeof(MORSE_Complex64_t),           &beta,               VALUE,
-        PASSED_BY_REF,     RTBLKADDR( C, MORSE_Complex64_t, Cm, Cn ),     INOUT | morse_parsec_get_arena_index(C) | AFFINITY,
+        PASSED_BY_REF,     RTBLKADDR( C, MORSE_Complex64_t, Cm, Cn ),     INOUT | AFFINITY | morse_parsec_get_arena_index(C),
         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 9d5901a623983eca522fb918c87ebbf84d290fe3..6af165a58bf7a2be2dae58788d4787ee1d39198b 100644
--- a/runtime/parsec/codelets/codelet_zgeqrt.c
+++ b/runtime/parsec/codelets/codelet_zgeqrt.c
@@ -117,7 +117,7 @@ void MORSE_TASK_zgeqrt(const MORSE_option_t *options,
         sizeof(int),           &m,                             VALUE,
         sizeof(int),           &n,                             VALUE,
         sizeof(int),           &ib,                            VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INOUT,
+        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INOUT | AFFINITY,
         sizeof(int),           &lda,                           VALUE,
         PASSED_BY_REF,         RTBLKADDR( T, MORSE_Complex64_t, Tm, Tn ), OUTPUT,
         sizeof(int),           &ldt,                           VALUE,
diff --git a/runtime/parsec/codelets/codelet_zgessm.c b/runtime/parsec/codelets/codelet_zgessm.c
index 5e38045630b43f0d9805a8d9e796c632e76f8b6e..f708bfecdba17c7ad264c86e075571c7a6bc7c37 100644
--- a/runtime/parsec/codelets/codelet_zgessm.c
+++ b/runtime/parsec/codelets/codelet_zgessm.c
@@ -109,7 +109,7 @@ void MORSE_TASK_zgessm(const MORSE_option_t *options,
         sizeof(int),           &ldl,                              VALUE,
         PASSED_BY_REF,         RTBLKADDR( D, MORSE_Complex64_t, Dm, Dn ),     INPUT,
         sizeof(int),           &ldd,                              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INOUT,
+        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     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 71d2425a6e317cf1bf92c63904952100ff65fa0b..06fc286469d85d7ba6cb12ec2528191215543001 100644
--- a/runtime/parsec/codelets/codelet_zgessq.c
+++ b/runtime/parsec/codelets/codelet_zgessq.c
@@ -52,6 +52,6 @@ void MORSE_TASK_zgessq( const MORSE_option_t *options,
         sizeof(int),    &n,            VALUE,
         PASSED_BY_REF,   RTBLKADDR( A, MORSE_Complex64_t, Am, An ),                 INPUT,
         sizeof(int),    &lda,          VALUE,
-        PASSED_BY_REF,   RTBLKADDR( SCALESUMSQ, double, SCALESUMSQm, SCALESUMSQn ), INOUT,
+        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 67e7868200e0c4037b9dd9344e8ec1385e678a3d..c5e91b8716327ad1412b88e7adc3bafb9179bc90 100644
--- a/runtime/parsec/codelets/codelet_zgetrf.c
+++ b/runtime/parsec/codelets/codelet_zgetrf.c
@@ -54,7 +54,7 @@ void MORSE_TASK_zgetrf(const MORSE_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, MORSE_Complex64_t, Am, An ),     INOUT,
+        PASSED_BY_REF,       RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INOUT | AFFINITY,
         sizeof(int),        &lda,                        VALUE,
         sizeof(int)*nb,      IPIV,                        SCRATCH,
         sizeof(MORSE_bool), &check_info,                 VALUE,
diff --git a/runtime/parsec/codelets/codelet_zgetrf_incpiv.c b/runtime/parsec/codelets/codelet_zgetrf_incpiv.c
index 24e4d39f308d069d1f027ef760e91e80cff73214..43fa883d91dc59d88ca267f14e8d8e378b97a930 100644
--- a/runtime/parsec/codelets/codelet_zgetrf_incpiv.c
+++ b/runtime/parsec/codelets/codelet_zgetrf_incpiv.c
@@ -112,7 +112,7 @@ void MORSE_TASK_zgetrf_incpiv( const MORSE_option_t *options,
         sizeof(int),           &m,                                VALUE,
         sizeof(int),           &n,                                VALUE,
         sizeof(int),           &ib,                               VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INOUT,
+        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     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 d4910970d16260712d7da2ea7b08600684cebb76..8b0aebba0b6f26881cba737cfc4f02a45b7c2a97 100644
--- a/runtime/parsec/codelets/codelet_zgetrf_nopiv.c
+++ b/runtime/parsec/codelets/codelet_zgetrf_nopiv.c
@@ -100,7 +100,7 @@ void MORSE_TASK_zgetrf_nopiv(const MORSE_option_t *options,
         sizeof(int),           &m,                          VALUE,
         sizeof(int),           &n,                          VALUE,
         sizeof(int),           &ib,                         VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INOUT,
+        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INOUT | AFFINITY,
         sizeof(int),           &lda,                        VALUE,
         sizeof(int),           &iinfo,                      VALUE,
         PARSEC_DTD_ARG_END );
diff --git a/runtime/parsec/codelets/codelet_zhe2ge.c b/runtime/parsec/codelets/codelet_zhe2ge.c
index f8a09c7661c89c451e7074e38166f05e927b1578..18bb9f36500e5a12e511d679626fffcb83308975 100644
--- a/runtime/parsec/codelets/codelet_zhe2ge.c
+++ b/runtime/parsec/codelets/codelet_zhe2ge.c
@@ -61,7 +61,7 @@ void MORSE_TASK_zhe2ge(const MORSE_option_t *options,
         sizeof(int),        &n,      VALUE,
         PASSED_BY_REF,       RTBLKADDR(A, MORSE_Complex64_t, Am, An), INPUT ,
         sizeof(int),        &lda,    VALUE,
-        PASSED_BY_REF,       RTBLKADDR(B, MORSE_Complex64_t, Bm, Bn), OUTPUT,
+        PASSED_BY_REF,       RTBLKADDR(B, MORSE_Complex64_t, Bm, Bn), OUTPUT | AFFINITY,
         sizeof(int),        &ldb,    VALUE,
         PARSEC_DTD_ARG_END );
 
diff --git a/runtime/parsec/codelets/codelet_zhemm.c b/runtime/parsec/codelets/codelet_zhemm.c
index 497a7554600b4064ae8370dafcc9f68b38fd5d97..3fee010d2690b9cfcdb952356e08bac9f9b72a2f 100644
--- a/runtime/parsec/codelets/codelet_zhemm.c
+++ b/runtime/parsec/codelets/codelet_zhemm.c
@@ -75,7 +75,7 @@ void MORSE_TASK_zhemm(const MORSE_option_t *options,
         PASSED_BY_REF,         RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ),     INPUT,
         sizeof(int),           &ldb,                 VALUE,
         sizeof(MORSE_Complex64_t),         &beta,    VALUE,
-        PASSED_BY_REF,         RTBLKADDR( C, MORSE_Complex64_t, Cm, Cn ),     INOUT,
+        PASSED_BY_REF,         RTBLKADDR( C, MORSE_Complex64_t, Cm, Cn ),     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 9f506af6cd2cef773c5805232314d626ac24b7e6..134e7fa18c86fb9327d1d9d162397a4c98ab15e7 100644
--- a/runtime/parsec/codelets/codelet_zher2k.c
+++ b/runtime/parsec/codelets/codelet_zher2k.c
@@ -75,7 +75,7 @@ void MORSE_TASK_zher2k(const MORSE_option_t *options,
         PASSED_BY_REF,         RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ),     INPUT | morse_parsec_get_arena_index(B),
         sizeof(int),                        &ldb,      VALUE,
         sizeof(double),                     &beta,     VALUE,
-        PASSED_BY_REF,         RTBLKADDR( C, MORSE_Complex64_t, Cm, Cn ),     INOUT | morse_parsec_get_arena_index(C) | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( C, MORSE_Complex64_t, Cm, Cn ),     INOUT | AFFINITY | morse_parsec_get_arena_index(C),
         sizeof(int),                        &ldc,      VALUE,
         PARSEC_DTD_ARG_END );
 
diff --git a/runtime/parsec/codelets/codelet_zherfb.c b/runtime/parsec/codelets/codelet_zherfb.c
index 95aea6bc6575aeca82d303df5626fa610d7c971e..02af0d40491199273c41d7869e6f8e509effd631 100644
--- a/runtime/parsec/codelets/codelet_zherfb.c
+++ b/runtime/parsec/codelets/codelet_zherfb.c
@@ -66,11 +66,11 @@ void MORSE_TASK_zherfb(const MORSE_option_t *options,
         sizeof(int),        &k,    VALUE,
         sizeof(int),        &ib,   VALUE,
         sizeof(int),        &nb,   VALUE,
-        PASSED_BY_REF,       RTBLKADDR(A, MORSE_Complex64_t, Am, An), (uplo == MorseUpper) ? INOUT : INOUT,
+        PASSED_BY_REF,       RTBLKADDR(A, MORSE_Complex64_t, Am, An), INOUT,
         sizeof(int),        &lda,  VALUE,
         PASSED_BY_REF,       RTBLKADDR(T, MORSE_Complex64_t, Tm, Tn), INPUT,
         sizeof(int),        &ldt,  VALUE,
-        PASSED_BY_REF,       RTBLKADDR(C, MORSE_Complex64_t, Cm, Cn), (uplo == MorseUpper) ? INOUT : INOUT,
+        PASSED_BY_REF,       RTBLKADDR(C, MORSE_Complex64_t, Cm, Cn), INOUT | AFFINITY,
         sizeof(int),        &ldc,  VALUE,
         sizeof(MORSE_Complex64_t)*2*nb*nb,  NULL, SCRATCH,
         sizeof(int),        &nb,   VALUE,
diff --git a/runtime/parsec/codelets/codelet_zherk.c b/runtime/parsec/codelets/codelet_zherk.c
index fb3d4f768af06cdfd9328c62be676a55d9f7c561..ade3475eb7594dd457a8d8e3ecc5c643e5f10960 100644
--- a/runtime/parsec/codelets/codelet_zherk.c
+++ b/runtime/parsec/codelets/codelet_zherk.c
@@ -69,7 +69,7 @@ void MORSE_TASK_zherk(const MORSE_option_t *options,
         PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INPUT | morse_parsec_get_arena_index(A),
         sizeof(int),           &lda,                              VALUE,
         sizeof(double),        &beta,                             VALUE,
-        PASSED_BY_REF,         RTBLKADDR( C, MORSE_Complex64_t, Cm, Cn ),     INOUT | morse_parsec_get_arena_index(C) | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( C, MORSE_Complex64_t, Cm, Cn ),     INOUT | AFFINITY | morse_parsec_get_arena_index(C),
         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 eb8f30aa43fc02510899feee716f4105cbd84efa..c1b05c6e3d1ba7a52686fb092d4f62a37039bde0 100644
--- a/runtime/parsec/codelets/codelet_zhessq.c
+++ b/runtime/parsec/codelets/codelet_zhessq.c
@@ -52,6 +52,6 @@ void MORSE_TASK_zhessq( const MORSE_option_t *options,
         sizeof(int),           &n,                  VALUE,
         PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),                    INPUT,
         sizeof(int),           &lda,                VALUE,
-        PASSED_BY_REF,         RTBLKADDR( SCALESUMSQ, double, SCALESUMSQm, SCALESUMSQn ),    INOUT,
+        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 c67a943b1d6e184649d683f28b76ce3187d2042f..8932384f8095255ddda579ac44068c9bbe893d17 100644
--- a/runtime/parsec/codelets/codelet_zlacpy.c
+++ b/runtime/parsec/codelets/codelet_zlacpy.c
@@ -65,7 +65,7 @@ void MORSE_TASK_zlacpyx( const MORSE_option_t *options,
         PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),   INPUT,
         sizeof(int),           &lda,                       VALUE,
         sizeof(int),           &displB,                    VALUE,
-        PASSED_BY_REF,         RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ),   OUTPUT,
+        PASSED_BY_REF,         RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ),   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 3d63b66c00a8fd0f0d979317343c34b21a5bc938..ca6e0b9615bc099fa924b56f2025c7d2a8618e01 100644
--- a/runtime/parsec/codelets/codelet_zlag2c.c
+++ b/runtime/parsec/codelets/codelet_zlag2c.c
@@ -58,7 +58,7 @@ void MORSE_TASK_zlag2c(const MORSE_option_t *options,
         sizeof(int),                        &n,         VALUE,
         PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INPUT,
         sizeof(int),                        &lda,       VALUE,
-        PASSED_BY_REF,         RTBLKADDR( B, MORSE_Complex32_t, Bm, Bn ),     OUTPUT,
+        PASSED_BY_REF,         RTBLKADDR( B, MORSE_Complex32_t, Bm, Bn ),     OUTPUT | AFFINITY,
         sizeof(int),                        &ldb,       VALUE,
         PARSEC_DTD_ARG_END );
 }
@@ -100,7 +100,7 @@ void MORSE_TASK_clag2z(const MORSE_option_t *options,
         sizeof(int),                        &n,         VALUE,
         PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex32_t, Am, An ),     INPUT,
         sizeof(int),                        &lda,       VALUE,
-        PASSED_BY_REF,         RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ),     INOUT,
+        PASSED_BY_REF,         RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ),     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 ad5e8dba521b9d849bd6367ae25fc299b7e7d307..4f58529b65f1bba2078bb4c0cec55fb5d09b8d97 100644
--- a/runtime/parsec/codelets/codelet_zlange.c
+++ b/runtime/parsec/codelets/codelet_zlange.c
@@ -55,10 +55,10 @@ void MORSE_TASK_zlange(const MORSE_option_t *options,
         sizeof(MORSE_enum),            &norm,          VALUE,
         sizeof(int),                   &M,             VALUE,
         sizeof(int),                   &N,             VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INPUT,
+        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INPUT,
         sizeof(int),                   &LDA,           VALUE,
         sizeof(double)*szeW,           NULL,           SCRATCH,
-        PASSED_BY_REF,         RTBLKADDR( B, double, Bm, Bn ),     OUTPUT,
+        PASSED_BY_REF,         RTBLKADDR( B, double, Bm, Bn ),            OUTPUT | AFFINITY,
         PARSEC_DTD_ARG_END );
 
     (void)NB;
@@ -91,7 +91,7 @@ void MORSE_TASK_zlange_max(const MORSE_option_t *options,
     parsec_dtd_taskpool_insert_task(
         PARSEC_dtd_taskpool, CORE_zlange_max_parsec, options->priority, "lange_max",
         PASSED_BY_REF,         RTBLKADDR( A, double, Am, An ), INPUT,
-        PASSED_BY_REF,         RTBLKADDR( B, double, Bm, Bn ), OUTPUT,
+        PASSED_BY_REF,         RTBLKADDR( B, double, Bm, Bn ), OUTPUT | AFFINITY,
         PARSEC_DTD_ARG_END );
 }
 
diff --git a/runtime/parsec/codelets/codelet_zlanhe.c b/runtime/parsec/codelets/codelet_zlanhe.c
index 52d6009d49f7d310c636be1ddee3e7ecf5f6b00a..66b7b8182d8e4377d5d635029d93b5ed23412e80 100644
--- a/runtime/parsec/codelets/codelet_zlanhe.c
+++ b/runtime/parsec/codelets/codelet_zlanhe.c
@@ -55,10 +55,10 @@ void MORSE_TASK_zlanhe(const MORSE_option_t *options,
         sizeof(MORSE_enum),            &norm,          VALUE,
         sizeof(MORSE_enum),            &uplo,          VALUE,
         sizeof(int),                   &N,             VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INPUT,
+        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INPUT,
         sizeof(int),                   &LDA,           VALUE,
         sizeof(double)*szeW,           NULL,           SCRATCH,
-        PASSED_BY_REF,         RTBLKADDR( B, double, Bm, Bn ),     OUTPUT,
+        PASSED_BY_REF,         RTBLKADDR( B, double, Bm, Bn ),            OUTPUT | AFFINITY,
         PARSEC_DTD_ARG_END );
 
     (void)NB;
diff --git a/runtime/parsec/codelets/codelet_zlansy.c b/runtime/parsec/codelets/codelet_zlansy.c
index 2c6a5675effb92e811608ad14b8be1d56944ba23..734279438a04d1927eb628d00a8ef82e7488d6f7 100644
--- a/runtime/parsec/codelets/codelet_zlansy.c
+++ b/runtime/parsec/codelets/codelet_zlansy.c
@@ -55,10 +55,10 @@ void MORSE_TASK_zlansy(const MORSE_option_t *options,
         sizeof(MORSE_enum),            &norm,          VALUE,
         sizeof(MORSE_enum),            &uplo,          VALUE,
         sizeof(int),                   &N,             VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INPUT,
+        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INPUT,
         sizeof(int),                   &LDA,           VALUE,
         sizeof(double)*szeW,           NULL,           SCRATCH,
-        PASSED_BY_REF,         RTBLKADDR( B, double, Bm, Bn ),     OUTPUT,
+        PASSED_BY_REF,         RTBLKADDR( B, double, Bm, Bn ),            OUTPUT | AFFINITY,
         PARSEC_DTD_ARG_END );
 
     (void)NB;
diff --git a/runtime/parsec/codelets/codelet_zlantr.c b/runtime/parsec/codelets/codelet_zlantr.c
index 6616a149da8ac19169ebe4fb457601ef2de02221..2645ff1f81eea8ca461d7df0ba3795273d298cec 100644
--- a/runtime/parsec/codelets/codelet_zlantr.c
+++ b/runtime/parsec/codelets/codelet_zlantr.c
@@ -58,10 +58,10 @@ void MORSE_TASK_zlantr(const MORSE_option_t *options,
         sizeof(MORSE_enum),            &diag,          VALUE,
         sizeof(int),                   &M,             VALUE,
         sizeof(int),                   &N,             VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INPUT,
+        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INPUT,
         sizeof(int),                   &LDA,           VALUE,
         sizeof(double)*szeW,           NULL,           SCRATCH,
-        PASSED_BY_REF,         RTBLKADDR( B, double, Bm, Bn ),     OUTPUT,
+        PASSED_BY_REF,         RTBLKADDR( B, double, Bm, Bn ),            OUTPUT | AFFINITY,
         PARSEC_DTD_ARG_END );
 
     (void)NB;
diff --git a/runtime/parsec/codelets/codelet_zlascal.c b/runtime/parsec/codelets/codelet_zlascal.c
index 0fc697925111c1c6daeecdb3d0e86de5066e6d13..7be1493ea099120376183caea2bde82995481af2 100644
--- a/runtime/parsec/codelets/codelet_zlascal.c
+++ b/runtime/parsec/codelets/codelet_zlascal.c
@@ -66,7 +66,7 @@ void MORSE_TASK_zlascal(const MORSE_option_t *options,
         sizeof(int),               &m,     VALUE,
         sizeof(int),               &n,     VALUE,
         sizeof(MORSE_Complex64_t), &alpha, VALUE,
-        PASSED_BY_REF,              RTBLKADDR(A, MORSE_Complex64_t, Am, An), INOUT,
+        PASSED_BY_REF,              RTBLKADDR(A, MORSE_Complex64_t, Am, An), INOUT | AFFINITY,
         sizeof(int),               &lda,   VALUE,
         PARSEC_DTD_ARG_END );
 
diff --git a/runtime/parsec/codelets/codelet_zlaset.c b/runtime/parsec/codelets/codelet_zlaset.c
index 44c0318e9909a2a4344c1a4a6aa3d9878f73163d..fe3dafabcf80112eb36c4d15898df0a26eb96287 100644
--- a/runtime/parsec/codelets/codelet_zlaset.c
+++ b/runtime/parsec/codelets/codelet_zlaset.c
@@ -90,7 +90,7 @@ void MORSE_TASK_zlaset(const MORSE_option_t *options,
         sizeof(int),                     &N,           VALUE,
         sizeof(MORSE_Complex64_t),       &alpha,       VALUE,
         sizeof(MORSE_Complex64_t),       &beta,        VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     OUTPUT,
+        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ), 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 4204df5d0cb7e21742a8ffce04c73d95eb2d32d1..80224256ffe154437cfcd024c8ef7efc41d019b8 100644
--- a/runtime/parsec/codelets/codelet_zlaset2.c
+++ b/runtime/parsec/codelets/codelet_zlaset2.c
@@ -85,7 +85,7 @@ void MORSE_TASK_zlaset2(const MORSE_option_t *options,
         sizeof(int),                       &M,         VALUE,
         sizeof(int),                       &N,         VALUE,
         sizeof(MORSE_enum),                &alpha,     VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     OUTPUT,
+        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ), OUTPUT | AFFINITY,
         sizeof(int),                       &LDA,       VALUE,
         PARSEC_DTD_ARG_END );
 }
diff --git a/runtime/parsec/codelets/codelet_zlatro.c b/runtime/parsec/codelets/codelet_zlatro.c
index 791e9f143e987c835c44455fd0ae7c379bfc69b0..5e724a7a49cc4279bb5063bdeaa299319e0f10de 100644
--- a/runtime/parsec/codelets/codelet_zlatro.c
+++ b/runtime/parsec/codelets/codelet_zlatro.c
@@ -61,9 +61,9 @@ void MORSE_TASK_zlatro(const MORSE_option_t *options,
         sizeof(MORSE_enum), &trans, VALUE,
         sizeof(int),        &m,     VALUE,
         sizeof(int),        &n,     VALUE,
-        PASSED_BY_REF,       RTBLKADDR(A, MORSE_Complex64_t, Am, An), INPUT ,
+        PASSED_BY_REF,       RTBLKADDR(A, MORSE_Complex64_t, Am, An), INPUT,
         sizeof(int),        &lda,   VALUE,
-        PASSED_BY_REF,       RTBLKADDR(B, MORSE_Complex64_t, Bm, Bn), OUTPUT,
+        PASSED_BY_REF,       RTBLKADDR(B, MORSE_Complex64_t, Bm, Bn), OUTPUT | AFFINITY,
         sizeof(int),        &ldb,   VALUE,
         PARSEC_DTD_ARG_END );
 
diff --git a/runtime/parsec/codelets/codelet_zlauum.c b/runtime/parsec/codelets/codelet_zlauum.c
index 06627c6ca2b67ddf8832656ddbba69445a747408..075fd17fc2b5823888a9667f998f42b8967ed18a 100644
--- a/runtime/parsec/codelets/codelet_zlauum.c
+++ b/runtime/parsec/codelets/codelet_zlauum.c
@@ -53,7 +53,7 @@ void MORSE_TASK_zlauum(const MORSE_option_t *options,
         PARSEC_dtd_taskpool, CORE_zlauum_parsec, options->priority, "lauum",
         sizeof(MORSE_enum),    &uplo,                  VALUE,
         sizeof(int),           &n,                     VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INOUT,
+        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ), 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 36da673a6c8c7c7214eb9eb7ee164321cf800e2b..ac35796beaa46868d12f850d75dd0bee732f621e 100644
--- a/runtime/parsec/codelets/codelet_zpamm.c
+++ b/runtime/parsec/codelets/codelet_zpamm.c
@@ -214,7 +214,7 @@ MORSE_TASK_zpamm(const MORSE_option_t *options,
         sizeof(int),                        &l,                 VALUE,
         PASSED_BY_REF,         RTBLKADDR( A1, MORSE_Complex64_t, A1m, A1n ),     INPUT,
         sizeof(int),                        &lda1,              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A2, MORSE_Complex64_t, A2m, A2n ),     INOUT,
+        PASSED_BY_REF,         RTBLKADDR( A2, MORSE_Complex64_t, A2m, A2n ),     INOUT | AFFINITY,
         sizeof(int),                        &lda2,              VALUE,
         PASSED_BY_REF,         RTBLKADDR( V, MORSE_Complex64_t, Vm, Vn ),        INPUT,
         sizeof(int),                        &ldv,               VALUE,
diff --git a/runtime/parsec/codelets/codelet_zplghe.c b/runtime/parsec/codelets/codelet_zplghe.c
index 228aa415f17d46b0dae81a0167780e10fefadb65..b6b0abbdc071a19e8019007208b13e2cf868fdb3 100644
--- a/runtime/parsec/codelets/codelet_zplghe.c
+++ b/runtime/parsec/codelets/codelet_zplghe.c
@@ -54,7 +54,7 @@ void MORSE_TASK_zplghe( const MORSE_option_t *options,
         sizeof(double),    &bump,                          VALUE,
         sizeof(int),       &m,                             VALUE,
         sizeof(int),       &n,                             VALUE,
-        PASSED_BY_REF,     RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     OUTPUT | morse_parsec_get_arena_index(A) | AFFINITY,
+        PASSED_BY_REF,     RTBLKADDR( A, MORSE_Complex64_t, Am, An ), OUTPUT | AFFINITY | morse_parsec_get_arena_index(A),
         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 e1cb2606c30de6b6895c244026d05145116e2279..701518d71db8c5cedebd9a233ed54a027d206e30 100644
--- a/runtime/parsec/codelets/codelet_zplgsy.c
+++ b/runtime/parsec/codelets/codelet_zplgsy.c
@@ -54,7 +54,7 @@ void MORSE_TASK_zplgsy( const MORSE_option_t *options,
         sizeof(MORSE_Complex64_t), &bump,                          VALUE,
         sizeof(int),               &m,                             VALUE,
         sizeof(int),               &n,                             VALUE,
-        PASSED_BY_REF,             RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     OUTPUT | morse_parsec_get_arena_index(A) | AFFINITY,
+        PASSED_BY_REF,             RTBLKADDR( A, MORSE_Complex64_t, Am, An ), OUTPUT | AFFINITY | morse_parsec_get_arena_index(A),
         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 b117329d2e9ae033e56fb09d35964de1f814c2c6..89fb0670d19c38b0e438d56e780d6f21b8950cbd 100644
--- a/runtime/parsec/codelets/codelet_zplrnt.c
+++ b/runtime/parsec/codelets/codelet_zplrnt.c
@@ -52,7 +52,7 @@ void MORSE_TASK_zplrnt( const MORSE_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, MORSE_Complex64_t, Am, An ),     OUTPUT,
+        PASSED_BY_REF,     RTBLKADDR( A, MORSE_Complex64_t, Am, An ), OUTPUT | AFFINITY,
         sizeof(int),       &lda,                        VALUE,
         sizeof(int),       &bigM,                       VALUE,
         sizeof(int),       &m0,                         VALUE,
diff --git a/runtime/parsec/codelets/codelet_zplssq.c b/runtime/parsec/codelets/codelet_zplssq.c
index 39fbc5b5c602002e067fb467d46feb3e4ba3657e..a0b6901cddf7389b76b9249a4bcb9e56deea0d61 100644
--- a/runtime/parsec/codelets/codelet_zplssq.c
+++ b/runtime/parsec/codelets/codelet_zplssq.c
@@ -82,7 +82,7 @@ void MORSE_TASK_zplssq( const MORSE_option_t *options,
     parsec_dtd_taskpool_insert_task(
         PARSEC_dtd_taskpool, CORE_zplssq_parsec, options->priority, "plssq",
         PASSED_BY_REF,         RTBLKADDR( SCALESUMSQ, double, SCALESUMSQm, SCALESUMSQn ),    INPUT,
-        PASSED_BY_REF,         RTBLKADDR( SCLSSQ, double, SCLSSQm, SCLSSQn ),                INOUT,
+        PASSED_BY_REF,         RTBLKADDR( SCLSSQ, double, SCLSSQm, SCLSSQn ),                INOUT | AFFINITY,
         PARSEC_DTD_ARG_END );
 }
 
@@ -108,6 +108,6 @@ void MORSE_TASK_zplssq2( const MORSE_option_t *options,
 
     parsec_dtd_taskpool_insert_task(
         PARSEC_dtd_taskpool, CORE_zplssq2_parsec, options->priority, "plssq2",
-        PASSED_BY_REF,         RTBLKADDR( RESULT, double, RESULTm, RESULTn ),     INOUT,
+        PASSED_BY_REF,         RTBLKADDR( RESULT, double, RESULTm, RESULTn ),     INOUT | AFFINITY,
         PARSEC_DTD_ARG_END );
 }
diff --git a/runtime/parsec/codelets/codelet_zpotrf.c b/runtime/parsec/codelets/codelet_zpotrf.c
index 434968089184f3b9f21ee77639ecf63a306430ca..a447c6e80238b6cff6074389a490009b63a16d4e 100644
--- a/runtime/parsec/codelets/codelet_zpotrf.c
+++ b/runtime/parsec/codelets/codelet_zpotrf.c
@@ -58,7 +58,7 @@ void MORSE_TASK_zpotrf(const MORSE_option_t *options,
         PARSEC_dtd_taskpool, CORE_zpotrf_parsec, options->priority, "potrf",
         sizeof(MORSE_enum),    &uplo,                             VALUE,
         sizeof(int),           &n,                                VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INOUT | morse_parsec_get_arena_index(A) | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INOUT | AFFINITY | morse_parsec_get_arena_index(A),
         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 5dc14b9835fdae6f47a5a8ccf18e4789d13bfd74..d63beb9ab75ca7544e26c07ad4079278e7566fcd 100644
--- a/runtime/parsec/codelets/codelet_zssssm.c
+++ b/runtime/parsec/codelets/codelet_zssssm.c
@@ -69,7 +69,7 @@ void MORSE_TASK_zssssm(const MORSE_option_t *options,
         sizeof(int),           &ib,                                VALUE,
         PASSED_BY_REF,         RTBLKADDR( A1, MORSE_Complex64_t, A1m, A1n ),     INOUT,
         sizeof(int),           &lda1,                              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A2, MORSE_Complex64_t, A2m, A2n ),     INOUT,
+        PASSED_BY_REF,         RTBLKADDR( A2, MORSE_Complex64_t, A2m, A2n ),     INOUT | AFFINITY,
         sizeof(int),           &lda2,                              VALUE,
         PASSED_BY_REF,         RTBLKADDR( L1, MORSE_Complex64_t, L1m, L1n ),     INPUT,
         sizeof(int),           &ldl1,                              VALUE,
diff --git a/runtime/parsec/codelets/codelet_zsymm.c b/runtime/parsec/codelets/codelet_zsymm.c
index e52418ef12b69e7d68a1cea34dde9ca56fc8886e..b33626d331619f8f4928a01809bdbff063fffb99 100644
--- a/runtime/parsec/codelets/codelet_zsymm.c
+++ b/runtime/parsec/codelets/codelet_zsymm.c
@@ -70,7 +70,7 @@ void MORSE_TASK_zsymm(const MORSE_option_t *options,
         PASSED_BY_REF,          RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ),     INPUT,
         sizeof(int),            &ldb,               VALUE,
         sizeof(MORSE_Complex64_t),  &beta,          VALUE,
-        PASSED_BY_REF,          RTBLKADDR( C, MORSE_Complex64_t, Cm, Cn ),     INOUT,
+        PASSED_BY_REF,          RTBLKADDR( C, MORSE_Complex64_t, Cm, Cn ),     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 cc26d68d54afdfa36f32b32aa3b6299adaac6561..4fae143b5fcc5a3f1b8f2c0f4b261aedf86f1c62 100644
--- a/runtime/parsec/codelets/codelet_zsyr2k.c
+++ b/runtime/parsec/codelets/codelet_zsyr2k.c
@@ -70,7 +70,7 @@ void MORSE_TASK_zsyr2k(const MORSE_option_t *options,
         PASSED_BY_REF,          RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ),     INPUT | morse_parsec_get_arena_index(B),
         sizeof(int),            &ldb,                   VALUE,
         sizeof(MORSE_Complex64_t), &beta,               VALUE,
-        PASSED_BY_REF,          RTBLKADDR( C, MORSE_Complex64_t, Cm, Cn ),     INOUT | morse_parsec_get_arena_index(C) | AFFINITY,
+        PASSED_BY_REF,          RTBLKADDR( C, MORSE_Complex64_t, Cm, Cn ),     INOUT | AFFINITY | morse_parsec_get_arena_index(C),
         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 aef91156fc3d54ae5b0e10f410a637cb17235c34..8468484df2f80be8dc683e09a8ee0492c254e5a4 100644
--- a/runtime/parsec/codelets/codelet_zsyrk.c
+++ b/runtime/parsec/codelets/codelet_zsyrk.c
@@ -64,7 +64,7 @@ void MORSE_TASK_zsyrk(const MORSE_option_t *options,
         PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INPUT | morse_parsec_get_arena_index(A),
         sizeof(int),           &lda,                               VALUE,
         sizeof(MORSE_Complex64_t),           &beta,                VALUE,
-        PASSED_BY_REF,         RTBLKADDR( C, MORSE_Complex64_t, Cm, Cn ),     INOUT | morse_parsec_get_arena_index(C) | AFFINITY,
+        PASSED_BY_REF,         RTBLKADDR( C, MORSE_Complex64_t, Cm, Cn ),     INOUT | AFFINITY | morse_parsec_get_arena_index(C),
         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 b00c92c77ce4be3d13dcdb767a54512227806854..839a6b1bb773b6e3f23fb5dc762525f41dd2b7c7 100644
--- a/runtime/parsec/codelets/codelet_zsyssq.c
+++ b/runtime/parsec/codelets/codelet_zsyssq.c
@@ -50,8 +50,8 @@ void MORSE_TASK_zsyssq( const MORSE_option_t *options,
         PARSEC_dtd_taskpool, CORE_zsyssq_parsec, options->priority, "syssq",
         sizeof(MORSE_enum),     &uplo,                  VALUE,
         sizeof(int),            &n,                     VALUE,
-        PASSED_BY_REF,          RTBLKADDR( A, MORSE_Complex64_t, Am, An ),                               INPUT,
+        PASSED_BY_REF,          RTBLKADDR( A, MORSE_Complex64_t, Am, An ),                    INPUT,
         sizeof(int),            &lda,                   VALUE,
-        PASSED_BY_REF,          RTBLKADDR( SCALESUMSQ, double, SCALESUMSQm, SCALESUMSQn ),    INOUT,
+        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 d75061e9844d2a01c889c22b7a19f2dbaba8d959..25d366a3227f9c6d3094a6f3f183c1802fc9e7cc 100644
--- a/runtime/parsec/codelets/codelet_zsytrf_nopiv.c
+++ b/runtime/parsec/codelets/codelet_zsytrf_nopiv.c
@@ -50,7 +50,7 @@ void MORSE_TASK_zsytrf_nopiv(const MORSE_option_t *options,
         PARSEC_dtd_taskpool, CORE_zsytrf_nopiv_parsec, options->priority, "sytrf_nopiv",
         sizeof(MORSE_enum),              &uplo,                VALUE,
         sizeof(int),                     &n,                   VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INOUT,
+        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     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 14d4b32171c9220bcd4a02097535d7925d62f52e..6e11a476522734953f057efdd1ce1ba3ba5e10fb 100644
--- a/runtime/parsec/codelets/codelet_ztile_zero.c
+++ b/runtime/parsec/codelets/codelet_ztile_zero.c
@@ -55,7 +55,7 @@ void MORSE_TASK_ztile_zero( const MORSE_option_t *options,
         sizeof(int),       &X2,                       VALUE,
         sizeof(int),       &Y1,                       VALUE,
         sizeof(int),       &Y2,                       VALUE,
-        PASSED_BY_REF,     RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     OUTPUT,
+        PASSED_BY_REF,     RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     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 3c447650d2358ef25e39a3ebce9858fa3df045c1..cf761fd93a1e4df73f70f2e3b7625cdc9670580e 100644
--- a/runtime/parsec/codelets/codelet_ztplqt.c
+++ b/runtime/parsec/codelets/codelet_ztplqt.c
@@ -63,7 +63,7 @@ void MORSE_TASK_ztplqt( const MORSE_option_t *options,
         sizeof(int),   &ib,  VALUE,
         PASSED_BY_REF,  RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INOUT,
         sizeof(int),   &lda, VALUE,
-        PASSED_BY_REF,  RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ), INOUT,
+        PASSED_BY_REF,  RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ), INOUT | AFFINITY,
         sizeof(int),   &ldb, VALUE,
         PASSED_BY_REF,  RTBLKADDR( T, MORSE_Complex64_t, Tm, Tn ), OUTPUT,
         sizeof(int),   &ldt, VALUE,
diff --git a/runtime/parsec/codelets/codelet_ztpmlqt.c b/runtime/parsec/codelets/codelet_ztpmlqt.c
index 667b63c5ee8ac3d3959db3047779f8a3704298e6..d4b237c4e45ecf3633625d0b2ff5d9d18fa1ce4b 100644
--- a/runtime/parsec/codelets/codelet_ztpmlqt.c
+++ b/runtime/parsec/codelets/codelet_ztpmlqt.c
@@ -77,7 +77,7 @@ void MORSE_TASK_ztpmlqt( const MORSE_option_t *options,
         sizeof(int),        &ldt,   VALUE,
         PASSED_BY_REF,       RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INOUT,
         sizeof(int),        &lda,   VALUE,
-        PASSED_BY_REF,       RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ), INOUT,
+        PASSED_BY_REF,       RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ), INOUT | AFFINITY,
         sizeof(int),        &ldb,   VALUE,
         sizeof(MORSE_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 0b3446d61eaea62d728a1bd9683f9c569193893c..e48cfd46aa00345dbbb70614e568f35b884814ba 100644
--- a/runtime/parsec/codelets/codelet_ztpmqrt.c
+++ b/runtime/parsec/codelets/codelet_ztpmqrt.c
@@ -77,7 +77,7 @@ void MORSE_TASK_ztpmqrt( const MORSE_option_t *options,
         sizeof(int),        &ldt,   VALUE,
         PASSED_BY_REF,       RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INOUT,
         sizeof(int),        &lda,   VALUE,
-        PASSED_BY_REF,       RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ), INOUT,
+        PASSED_BY_REF,       RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ), INOUT | AFFINITY,
         sizeof(int),        &ldb,   VALUE,
         sizeof(MORSE_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 a0f4628ed8c0ebf4899b4e1eb5fe93bbca09882e..1f0a1f4ad0b57ca476f2c6945dd171f3857add9a 100644
--- a/runtime/parsec/codelets/codelet_ztpqrt.c
+++ b/runtime/parsec/codelets/codelet_ztpqrt.c
@@ -63,7 +63,7 @@ void MORSE_TASK_ztpqrt( const MORSE_option_t *options,
         sizeof(int),   &ib,  VALUE,
         PASSED_BY_REF,  RTBLKADDR( A, MORSE_Complex64_t, Am, An ), INOUT,
         sizeof(int),   &lda, VALUE,
-        PASSED_BY_REF,  RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ), INOUT,
+        PASSED_BY_REF,  RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ), INOUT | AFFINITY,
         sizeof(int),   &ldb, VALUE,
         PASSED_BY_REF,  RTBLKADDR( T, MORSE_Complex64_t, Tm, Tn ), OUTPUT,
         sizeof(int),   &ldt, VALUE,
diff --git a/runtime/parsec/codelets/codelet_ztradd.c b/runtime/parsec/codelets/codelet_ztradd.c
index 53d9899288a0b173892497fdd6f9c067ed8eae85..788dfa16328360f02b38223088034167eabb9dd9 100644
--- a/runtime/parsec/codelets/codelet_ztradd.c
+++ b/runtime/parsec/codelets/codelet_ztradd.c
@@ -124,7 +124,7 @@ void MORSE_TASK_ztradd(const MORSE_option_t *options,
         PASSED_BY_REF,              RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INPUT,
         sizeof(int),               &lda,   VALUE,
         sizeof(MORSE_Complex64_t), &beta,  VALUE,
-        PASSED_BY_REF,              RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ),     INOUT,
+        PASSED_BY_REF,              RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ),     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 5b9b9f6f517a73243ea8ea4394e08bb201ac86d9..76deb25a06abb7e83246eb6100d8bf2458ad64a7 100644
--- a/runtime/parsec/codelets/codelet_ztrasm.c
+++ b/runtime/parsec/codelets/codelet_ztrasm.c
@@ -58,6 +58,6 @@ void MORSE_TASK_ztrasm(const MORSE_option_t *options,
         sizeof(int),            &N,                     VALUE,
         PASSED_BY_REF,          RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INPUT,
         sizeof(int),            &lda,                   VALUE,
-        PASSED_BY_REF,          RTBLKADDR( B, double, Bm, Bn ),     INOUT,
+        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 ae2ef47f1385c509e94f4f4d17e95c7893d144e0..c41148f28f1e707715a5406881703eadf661d14e 100644
--- a/runtime/parsec/codelets/codelet_ztrmm.c
+++ b/runtime/parsec/codelets/codelet_ztrmm.c
@@ -68,7 +68,7 @@ void MORSE_TASK_ztrmm(const MORSE_option_t *options,
         sizeof(MORSE_Complex64_t),         &alpha,      VALUE,
         PASSED_BY_REF,          RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INPUT,
         sizeof(int),            &lda,                   VALUE,
-        PASSED_BY_REF,          RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ),     INOUT,
+        PASSED_BY_REF,          RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ),     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 697ac02e806b01ef032d6e36ffbd8303a129e062..64c87b4694e7b4f02abc9fe6fb0d11dcba73b528 100644
--- a/runtime/parsec/codelets/codelet_ztrsm.c
+++ b/runtime/parsec/codelets/codelet_ztrsm.c
@@ -60,7 +60,7 @@ void MORSE_TASK_ztrsm(const MORSE_option_t *options,
         sizeof(MORSE_Complex64_t),           &alpha,      VALUE,
         PASSED_BY_REF,     RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INPUT | morse_parsec_get_arena_index(A),
         sizeof(int),           &lda,                      VALUE,
-        PASSED_BY_REF,     RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ),     INOUT | morse_parsec_get_arena_index(A) | AFFINITY,
+        PASSED_BY_REF,     RTBLKADDR( B, MORSE_Complex64_t, Bm, Bn ),     INOUT | AFFINITY | morse_parsec_get_arena_index(A),
         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 fc6428a91f6e242221ba3f155c6e23f1f4efb8ab..70ad146020d8177ef4130726c73fc0e992f842ee 100644
--- a/runtime/parsec/codelets/codelet_ztrssq.c
+++ b/runtime/parsec/codelets/codelet_ztrssq.c
@@ -57,6 +57,6 @@ void MORSE_TASK_ztrssq( const MORSE_option_t *options,
         sizeof(int),            &n,                     VALUE,
         PASSED_BY_REF,          RTBLKADDR( A, MORSE_Complex64_t, Am, An ),                    INPUT,
         sizeof(int),            &lda,                   VALUE,
-        PASSED_BY_REF,          RTBLKADDR( SCALESUMSQ, double, SCALESUMSQm, SCALESUMSQn ),    INOUT,
+        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 4fc0bcf0d2fdf131ac3d0ec317e6bd0c26beeb9e..1c0565de8acfc719f383627a150f358bafd02d7b 100644
--- a/runtime/parsec/codelets/codelet_ztrtri.c
+++ b/runtime/parsec/codelets/codelet_ztrtri.c
@@ -54,7 +54,7 @@ void MORSE_TASK_ztrtri( const MORSE_option_t *options,
         sizeof(MORSE_enum),         &uplo,                  VALUE,
         sizeof(MORSE_enum),         &diag,                  VALUE,
         sizeof(int),                &n,                     VALUE,
-        PASSED_BY_REF,              RTBLKADDR( A, MORSE_Complex64_t, Am, An ),   INOUT,
+        PASSED_BY_REF,              RTBLKADDR( A, MORSE_Complex64_t, Am, An ),   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 fde0eeeab677c2bd24ee5cca8a2a11719aa169a0..0a47438a723b3b8cb8881cc45087fcaf4210eef1 100644
--- a/runtime/parsec/codelets/codelet_ztslqt.c
+++ b/runtime/parsec/codelets/codelet_ztslqt.c
@@ -60,7 +60,7 @@ void MORSE_TASK_ztslqt(const MORSE_option_t *options,
         sizeof(int),            &ib,                    VALUE,
         PASSED_BY_REF,          RTBLKADDR( A1, MORSE_Complex64_t, A1m, A1n ),     INOUT,
         sizeof(int),            &lda1,                  VALUE,
-        PASSED_BY_REF,          RTBLKADDR( A2, MORSE_Complex64_t, A2m, A2n ),     INOUT,
+        PASSED_BY_REF,          RTBLKADDR( A2, MORSE_Complex64_t, A2m, A2n ),     INOUT | AFFINITY,
         sizeof(int),            &lda2,                  VALUE,
         PASSED_BY_REF,          RTBLKADDR( T, MORSE_Complex64_t, Tm, Tn ),        OUTPUT,
         sizeof(int),                        &ldt,       VALUE,
diff --git a/runtime/parsec/codelets/codelet_ztsmlq.c b/runtime/parsec/codelets/codelet_ztsmlq.c
index 5642007d9a15be6d99dbcb53e83c215bfe532727..f36e140d6b71db5c8f341e8931682eccd942d72f 100644
--- a/runtime/parsec/codelets/codelet_ztsmlq.c
+++ b/runtime/parsec/codelets/codelet_ztsmlq.c
@@ -77,7 +77,7 @@ void MORSE_TASK_ztsmlq(const MORSE_option_t *options,
         sizeof(int),                        &ib,        VALUE,
         PASSED_BY_REF,         RTBLKADDR( A1, MORSE_Complex64_t, A1m, A1n ),  INOUT,
         sizeof(int),           &lda1,                   VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A2, MORSE_Complex64_t, A2m, A2n ),  INOUT,
+        PASSED_BY_REF,         RTBLKADDR( A2, MORSE_Complex64_t, A2m, A2n ),  INOUT | AFFINITY,
         sizeof(int),           &lda2,                   VALUE,
         PASSED_BY_REF,         RTBLKADDR( V, MORSE_Complex64_t, Vm, Vn ),     INPUT,
         sizeof(int),           &ldv,                    VALUE,
diff --git a/runtime/parsec/codelets/codelet_ztsmlq_hetra1.c b/runtime/parsec/codelets/codelet_ztsmlq_hetra1.c
index 5f3fa01d35346c70c24f641715b7e7ca272cd685..30377ae166004648dd3103d9f0acd99c5fd558b8 100644
--- a/runtime/parsec/codelets/codelet_ztsmlq_hetra1.c
+++ b/runtime/parsec/codelets/codelet_ztsmlq_hetra1.c
@@ -82,7 +82,7 @@ void MORSE_TASK_ztsmlq_hetra1(const MORSE_option_t *options,
         sizeof(int),        &ib,     VALUE,
         PASSED_BY_REF,       RTBLKADDR(A1, MORSE_Complex64_t, A1m, A1n), INOUT,
         sizeof(int),        &lda1,   VALUE,
-        PASSED_BY_REF,       RTBLKADDR(A2, MORSE_Complex64_t, A2m, A2n), INOUT,
+        PASSED_BY_REF,       RTBLKADDR(A2, MORSE_Complex64_t, A2m, A2n), INOUT | AFFINITY,
         sizeof(int),        &lda2,   VALUE,
         PASSED_BY_REF,       RTBLKADDR(V,  MORSE_Complex64_t, Vm,  Vn),  INPUT,
         sizeof(int),        &ldv,    VALUE,
diff --git a/runtime/parsec/codelets/codelet_ztsmqr.c b/runtime/parsec/codelets/codelet_ztsmqr.c
index 607c58fe311d77160f0cf7fe078fde4685bcfd75..126bb58cba64900e6b8492cfaa241d8670f17c35 100644
--- a/runtime/parsec/codelets/codelet_ztsmqr.c
+++ b/runtime/parsec/codelets/codelet_ztsmqr.c
@@ -77,7 +77,7 @@ void MORSE_TASK_ztsmqr(const MORSE_option_t *options,
         sizeof(int),           &ib,                                VALUE,
         PASSED_BY_REF,         RTBLKADDR( A1, MORSE_Complex64_t, A1m, A1n ), INOUT,
         sizeof(int),           &lda1,                              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A2, MORSE_Complex64_t, A2m, A2n ), INOUT,
+        PASSED_BY_REF,         RTBLKADDR( A2, MORSE_Complex64_t, A2m, A2n ), INOUT | AFFINITY,
         sizeof(int),           &lda2,                              VALUE,
         PASSED_BY_REF,         RTBLKADDR( V, MORSE_Complex64_t, Vm, Vn ),    INPUT,
         sizeof(int),           &ldv,                               VALUE,
diff --git a/runtime/parsec/codelets/codelet_ztsmqr_hetra1.c b/runtime/parsec/codelets/codelet_ztsmqr_hetra1.c
index a73d1fe46e21004bf8114de9919d1a249d62e4b2..0e7c0e271eb4f4b0270374b892aa5fac78ea8eeb 100644
--- a/runtime/parsec/codelets/codelet_ztsmqr_hetra1.c
+++ b/runtime/parsec/codelets/codelet_ztsmqr_hetra1.c
@@ -82,7 +82,7 @@ void MORSE_TASK_ztsmqr_hetra1(const MORSE_option_t *options,
         sizeof(int),        &ib,     VALUE,
         PASSED_BY_REF,       RTBLKADDR(A1, MORSE_Complex64_t, A1m, A1n), INOUT,
         sizeof(int),        &lda1,   VALUE,
-        PASSED_BY_REF,       RTBLKADDR(A2, MORSE_Complex64_t, A2m, A2n), INOUT,
+        PASSED_BY_REF,       RTBLKADDR(A2, MORSE_Complex64_t, A2m, A2n), INOUT | AFFINITY,
         sizeof(int),        &lda2,   VALUE,
         PASSED_BY_REF,       RTBLKADDR(V,  MORSE_Complex64_t, Vm,  Vn),  INPUT,
         sizeof(int),        &ldv,    VALUE,
diff --git a/runtime/parsec/codelets/codelet_ztsqrt.c b/runtime/parsec/codelets/codelet_ztsqrt.c
index 70e6255ae514492feef1c7b5b327513dadc121e4..2c62aa78a77191e510b9f7d1e9d51a0f577b2043 100644
--- a/runtime/parsec/codelets/codelet_ztsqrt.c
+++ b/runtime/parsec/codelets/codelet_ztsqrt.c
@@ -60,7 +60,7 @@ void MORSE_TASK_ztsqrt(const MORSE_option_t *options,
         sizeof(int),           &ib,                                VALUE,
         PASSED_BY_REF,         RTBLKADDR( A1, MORSE_Complex64_t, A1m, A1n ),     INOUT,
         sizeof(int),           &lda1,                              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A2, MORSE_Complex64_t, A2m, A2n ),     INOUT,
+        PASSED_BY_REF,         RTBLKADDR( A2, MORSE_Complex64_t, A2m, A2n ),     INOUT | AFFINITY,
         sizeof(int),           &lda2,                              VALUE,
         PASSED_BY_REF,         RTBLKADDR( T, MORSE_Complex64_t, Tm, Tn ),        OUTPUT,
         sizeof(int),           &ldt,                               VALUE,
diff --git a/runtime/parsec/codelets/codelet_ztstrf.c b/runtime/parsec/codelets/codelet_ztstrf.c
index d5434de94d2ddaa5ccb0850322b0ead5a878b8e8..6d25673a06899e89852c1420d321f3161651f2af 100644
--- a/runtime/parsec/codelets/codelet_ztstrf.c
+++ b/runtime/parsec/codelets/codelet_ztstrf.c
@@ -69,7 +69,7 @@ void MORSE_TASK_ztstrf(const MORSE_option_t *options,
         sizeof(int),           &nb,                               VALUE,
         PASSED_BY_REF,         RTBLKADDR( U, MORSE_Complex64_t, Um, Un ),     INOUT,
         sizeof(int),           &ldu,                              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INOUT,
+        PASSED_BY_REF,         RTBLKADDR( A, MORSE_Complex64_t, Am, An ),     INOUT | AFFINITY,
         sizeof(int),           &lda,                              VALUE,
         PASSED_BY_REF,         RTBLKADDR( L, MORSE_Complex64_t, Lm, Ln ),     OUTPUT,
         sizeof(int),           &ldl,                              VALUE,
diff --git a/runtime/parsec/codelets/codelet_zttlqt.c b/runtime/parsec/codelets/codelet_zttlqt.c
index 50b58208a5415f588b9ae11d1fc866bad4ead4f1..688d498501ea04f80dc489b9c69c663b1bc76fbb 100644
--- a/runtime/parsec/codelets/codelet_zttlqt.c
+++ b/runtime/parsec/codelets/codelet_zttlqt.c
@@ -61,7 +61,7 @@ void MORSE_TASK_zttlqt(const MORSE_option_t *options,
         sizeof(int),            &ib,                    VALUE,
         PASSED_BY_REF,          RTBLKADDR( A1, MORSE_Complex64_t, A1m, A1n ),    INOUT,
         sizeof(int),            &lda1,                  VALUE,
-        PASSED_BY_REF,          RTBLKADDR( A2, MORSE_Complex64_t, A2m, A2n ),    INOUT,
+        PASSED_BY_REF,          RTBLKADDR( A2, MORSE_Complex64_t, A2m, A2n ),    INOUT | AFFINITY,
         sizeof(int),            &lda2,                  VALUE,
         PASSED_BY_REF,          RTBLKADDR( T, MORSE_Complex64_t, Tm, Tn ),       OUTPUT,
         sizeof(int),            &ldt,                   VALUE,
diff --git a/runtime/parsec/codelets/codelet_zttmlq.c b/runtime/parsec/codelets/codelet_zttmlq.c
index daf10d1a6a30303c11f9894db0b7c6aedf463b16..a7d80a4919cf4062d0fdb39c6f23873ad0c892b9 100644
--- a/runtime/parsec/codelets/codelet_zttmlq.c
+++ b/runtime/parsec/codelets/codelet_zttmlq.c
@@ -77,7 +77,7 @@ void MORSE_TASK_zttmlq(const MORSE_option_t *options,
         sizeof(int),            &ib,                        VALUE,
         PASSED_BY_REF,          RTBLKADDR( A1, MORSE_Complex64_t, A1m, A1n ),    INOUT,
         sizeof(int),            &lda1,                      VALUE,
-        PASSED_BY_REF,          RTBLKADDR( A2, MORSE_Complex64_t, A2m, A2n ),    INOUT,
+        PASSED_BY_REF,          RTBLKADDR( A2, MORSE_Complex64_t, A2m, A2n ),    INOUT | AFFINITY,
         sizeof(int),            &lda2,                      VALUE,
         PASSED_BY_REF,          RTBLKADDR( V, MORSE_Complex64_t, Vm, Vn ),       INPUT,
         sizeof(int),            &ldv,                       VALUE,
diff --git a/runtime/parsec/codelets/codelet_zttmqr.c b/runtime/parsec/codelets/codelet_zttmqr.c
index ef3ac2fca74e9115f72df0880a45336af92a6e23..d5adaed22f4dd35d23fabd68b914b29de61664cb 100644
--- a/runtime/parsec/codelets/codelet_zttmqr.c
+++ b/runtime/parsec/codelets/codelet_zttmqr.c
@@ -78,7 +78,7 @@ void MORSE_TASK_zttmqr(const MORSE_option_t *options,
         sizeof(int),           &ib,                               VALUE,
         PASSED_BY_REF,         RTBLKADDR( A1, MORSE_Complex64_t, A1m, A1n ), INOUT,
         sizeof(int),           &lda1,                             VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A2, MORSE_Complex64_t, A2m, A2n ), INOUT,
+        PASSED_BY_REF,         RTBLKADDR( A2, MORSE_Complex64_t, A2m, A2n ), INOUT | AFFINITY,
         sizeof(int),           &lda2,                             VALUE,
         PASSED_BY_REF,         RTBLKADDR( V, MORSE_Complex64_t, Vm, Vn ),    INPUT,
         sizeof(int),           &ldv,                              VALUE,
diff --git a/runtime/parsec/codelets/codelet_zttqrt.c b/runtime/parsec/codelets/codelet_zttqrt.c
index 498029a535a348ba6e399c942ea27edc37926374..71074f80686f3db8807b0c438c0dccbde36493a2 100644
--- a/runtime/parsec/codelets/codelet_zttqrt.c
+++ b/runtime/parsec/codelets/codelet_zttqrt.c
@@ -37,7 +37,7 @@ CORE_zttqrt_parsec( parsec_execution_stream_t *context,
     MORSE_Complex64_t *WORK;
 
     parsec_dtd_unpack_args(
-        this_task,   &m,   &n,   &ib, &A1,   &lda1, &A2,   &lda2, &T,   &ldt, &TAU, &WORK );
+        this_task, &m, &n, &ib, &A1, &lda1, &A2, &lda2, &T, &ldt, &TAU, &WORK );
 
     CORE_zttqrt( m, n, ib, A1, lda1, A2, lda2, T, ldt, TAU, WORK );
 
@@ -60,7 +60,7 @@ void MORSE_TASK_zttqrt(const MORSE_option_t *options,
         sizeof(int),           &ib,                                VALUE,
         PASSED_BY_REF,         RTBLKADDR( A1, MORSE_Complex64_t, A1m, A1n ),     INOUT,
         sizeof(int),           &lda1,                              VALUE,
-        PASSED_BY_REF,         RTBLKADDR( A2, MORSE_Complex64_t, A2m, A2n ),     INOUT,
+        PASSED_BY_REF,         RTBLKADDR( A2, MORSE_Complex64_t, A2m, A2n ),     INOUT | AFFINITY,
         sizeof(int),           &lda2,                              VALUE,
         PASSED_BY_REF,         RTBLKADDR( T, MORSE_Complex64_t, Tm, Tn ),        OUTPUT,
         sizeof(int),           &ldt,                               VALUE,
diff --git a/runtime/parsec/codelets/codelet_zunmlq.c b/runtime/parsec/codelets/codelet_zunmlq.c
index 3e189ad793f1bdb36a35b0adc3985d0c7deb710f..01377d6ec10fb1e60ec197ad3c7a6efa53655b32 100644
--- a/runtime/parsec/codelets/codelet_zunmlq.c
+++ b/runtime/parsec/codelets/codelet_zunmlq.c
@@ -70,7 +70,7 @@ void MORSE_TASK_zunmlq(const MORSE_option_t *options,
         sizeof(int),                        &lda,               VALUE,
         PASSED_BY_REF,         RTBLKADDR( T, MORSE_Complex64_t, Tm, Tn ),     INPUT,
         sizeof(int),                        &ldt,               VALUE,
-        PASSED_BY_REF,         RTBLKADDR( C, MORSE_Complex64_t, Cm, Cn ),     INOUT,
+        PASSED_BY_REF,         RTBLKADDR( C, MORSE_Complex64_t, Cm, Cn ),     INOUT | AFFINITY,
         sizeof(int),                        &ldc,               VALUE,
         sizeof(MORSE_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 904547eb5d59ef2fbb26f9e2d330216205a2b0c4..7b2c7ccf3c584ac39c3ca88f2277bcab5dd75e9c 100644
--- a/runtime/parsec/codelets/codelet_zunmqr.c
+++ b/runtime/parsec/codelets/codelet_zunmqr.c
@@ -70,7 +70,7 @@ void MORSE_TASK_zunmqr(const MORSE_option_t *options,
         sizeof(int),           &lda,                               VALUE,
         PASSED_BY_REF,         RTBLKADDR( T, MORSE_Complex64_t, Tm, Tn ), INPUT,
         sizeof(int),           &ldt,                               VALUE,
-        PASSED_BY_REF,         RTBLKADDR( C, MORSE_Complex64_t, Cm, Cn ), INOUT,
+        PASSED_BY_REF,         RTBLKADDR( C, MORSE_Complex64_t, Cm, Cn ), INOUT | AFFINITY,
         sizeof(int),           &ldc,                               VALUE,
         sizeof(MORSE_Complex64_t)*ib*nb,   NULL,                          SCRATCH,
         sizeof(int),           &nb,                                VALUE,