diff --git a/src/trapping/cfrfme.cpp b/src/trapping/cfrfme.cpp index 0f7370e96d2d09d363e5218fbed9d2d39b572ffa..5d55db92cbb9378a861dd4f60fb4ce073c429e32 100644 --- a/src/trapping/cfrfme.cpp +++ b/src/trapping/cfrfme.cpp @@ -381,18 +381,19 @@ void frfme(string data_file, string output_path) { for (int j80 = jlmf; j80 <= jlml; j80++) { dcomplex *vec_w = new dcomplex[nkv * nkv](); dcomplex **w = new dcomplex*[nkv]; + dcomplex *wk_local = new dcomplex[nlmmt](); for (int wi = 0; wi < nkv; wi++) w[wi] = vec_w + wi * nkv; int wk_index = 0; for (int jy50 = 0; jy50 < nkv; jy50++) { for (int jx50 = 0; jx50 < nkv; jx50++) { - for (int wi = 0; wi < nlmmt; wi++) wk[wi] = tt1->wk[wk_index++]; - w[jx50][jy50] = wk[j80 - 1]; + for (int wi = 0; wi < nlmmt; wi++) wk_local[wi] = tt1->wk[wk_index++]; + w[jx50][jy50] = wk_local[j80 - 1]; } // jx50 } // jy50 loop int ixyz = 0; for (int wj = 0; wj < nrvc; wj++) _wsum[j80 - 1][wj] = cc0; for (int iz75 = 0; iz75 < nzv; iz75++) { - double z = _zv[iz75] + frsh; + double z = _zv[iz75] + frsh; for (int iy70 = 0; iy70 < nyv; iy70++) { double y = _yv[iy70]; for (int ix65 = 0; ix65 < nxv; ix65++) { @@ -422,6 +423,7 @@ void frfme(string data_file, string output_path) { } // iz75 loop delete[] vec_w; delete[] w; + delete[] wk_local; } // j80 loop #ifdef USE_NVTX nvtxRangePop();