diff --git a/cmake_modules/morse_cmake b/cmake_modules/morse_cmake
index 32c1ba6ae5d7e19d570ac3bd86a24acb82f2081e..0a974775b7192227b887dcba77515305083c1f13 160000
--- a/cmake_modules/morse_cmake
+++ b/cmake_modules/morse_cmake
@@ -1 +1 @@
-Subproject commit 32c1ba6ae5d7e19d570ac3bd86a24acb82f2081e
+Subproject commit 0a974775b7192227b887dcba77515305083c1f13
diff --git a/compute/zgesvd.c b/compute/zgesvd.c
index 571b9fa90a299fed8cf13c5de469bf03d52810e3..f61ddd9b970dba43379b395d10c48b1d4e3298f0 100644
--- a/compute/zgesvd.c
+++ b/compute/zgesvd.c
@@ -521,6 +521,8 @@ int MORSE_zgesvd_Tile_Async(MORSE_enum jobu, MORSE_enum jobvt,
     }
 
     morse_sequence_wait(morse, sequence);
+
+#if !defined(CHAMELEON_SIMULATION)
     info = LAPACKE_zgbbrd( LAPACK_COL_MAJOR,
                            gbbrd_vect,
                            M, N,
@@ -533,6 +535,7 @@ int MORSE_zgesvd_Tile_Async(MORSE_enum jobu, MORSE_enum jobvt,
     if (info != 0) {
         fprintf(stderr, "MORSE_zgesvd_Tile_Async: LAPACKE_zgbbrd = %d\n", info );
     }
+#endif /* !defined(CHAMELEON_SIMULATION) */
     morse_desc_mat_free(&descAB);
 
     /* Transform U and Vt into tile format */
@@ -594,6 +597,7 @@ int MORSE_zgesvd_Tile_Async(MORSE_enum jobu, MORSE_enum jobvt,
 
     /* Solve the bidiagonal SVD problem */
     /* On exit, U and VT are updated with bidiagonal matrix singular vectors */
+#if !defined(CHAMELEON_SIMULATION)
     info = LAPACKE_zbdsqr( LAPACK_COL_MAJOR, 'U',
                            MINMN, ncvt, nru, 0,
                            S, E,
@@ -601,6 +605,7 @@ int MORSE_zgesvd_Tile_Async(MORSE_enum jobu, MORSE_enum jobvt,
     if (info != 0) {
         fprintf(stderr, "MORSE_zgesvd_Tile_Async: LAPACKE_zbdsqr = %d\n", info );
     }
+#endif /* !defined(CHAMELEON_SIMULATION) */
 
     if (jobu != MorseNoVec)
         morse_desc_mat_free( &descU );
diff --git a/compute/zheevd.c b/compute/zheevd.c
index a873de7436be9d9629b038403248ee8f1c0b7f67..664fb2ab3f2968f77fc3fd173a8d2f8b36708225 100644
--- a/compute/zheevd.c
+++ b/compute/zheevd.c
@@ -420,6 +420,7 @@ int MORSE_zheevd_Tile_Async(MORSE_enum jobz, MORSE_enum uplo,
 
 
     if (jobz == MorseNoVec){
+#if !defined(CHAMELEON_SIMULATION)
         /* Tridiagonal eigensolver */
         status = LAPACKE_zstedc( LAPACK_COL_MAJOR,
                                  morse_lapack_const(jobz),
@@ -428,6 +429,7 @@ int MORSE_zheevd_Tile_Async(MORSE_enum jobz, MORSE_enum uplo,
         if (status != 0) {
             morse_error("MORSE_zheevd_Tile_Async", "LAPACKE_zstedc failed");
         }
+#endif /* !defined(CHAMELEON_SIMULATION) */
         free(E);
         return MORSE_SUCCESS;
     }
@@ -441,8 +443,11 @@ int MORSE_zheevd_Tile_Async(MORSE_enum jobz, MORSE_enum uplo,
     /* For bug in lapacke */
     memset(V, 0, N * N * sizeof(MORSE_Complex64_t));
 
-    /* Tridiagonal eigensolver */
-    /* V contains the eigenvectors of the tridiagonal system on exit */
+    /*
+     * Tridiagonal eigensolver
+     * V contains the eigenvectors of the tridiagonal system on exit
+     */
+#if !defined(CHAMELEON_SIMULATION)
     status = LAPACKE_zstedc( LAPACK_COL_MAJOR,
                              morse_lapack_const(MorseIvec),
                              N, W, E,
@@ -450,6 +455,7 @@ int MORSE_zheevd_Tile_Async(MORSE_enum jobz, MORSE_enum uplo,
     if (status != 0) {
         morse_error("MORSE_zheevd_Tile_Async", "LAPACKE_zstedc failed");
     }
+#endif /* !defined(CHAMELEON_SIMULATION) */
 
     /* Convert matrices in tile format */
     /* A/T from MORSE_zhetrd   refer  to Q1 (tile   layout) */
diff --git a/compute/zhetrd.c b/compute/zhetrd.c
index 40c8dde894083346456d3a8330ac1dd77f7f07d5..b74a90afc880a8a8f044cb0d421e727077e4db53 100644
--- a/compute/zhetrd.c
+++ b/compute/zhetrd.c
@@ -408,6 +408,7 @@ int MORSE_zhetrd_Tile_Async(MORSE_enum jobz,
     morse_sequence_wait(morse, sequence);
 
     /* Reduce band matrix to tridiagonal matrix */
+#if !defined(CHAMELEON_SIMULATION)
     status = LAPACKE_zhbtrd( LAPACK_COL_MAJOR,
                              morse_lapack_const(jobz),
                              morse_lapack_const(uplo),
@@ -417,6 +418,7 @@ int MORSE_zhetrd_Tile_Async(MORSE_enum jobz,
     if (status != 0) {
         morse_error("MORSE_zhetrd_Tile_Async", "LAPACKE_zhbtrd failed");
     }
+#endif /* !defined(CHAMELEON_SIMULATION) */
 
     morse_desc_mat_free(&descAB);
     return MORSE_SUCCESS;