Commit 7289e202 authored by Giovanni La Mura's avatar Giovanni La Mura
Browse files

Use long long indices also in CPU parallel loops

parent a3f8befc
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -502,28 +502,28 @@ void frfme(string data_file, string output_path) {
	  for (int j80 = jlmf - 1; j80 < jlml; j80++) {
	    dcomplex *vec_w = global_vec_w + nkvs * (j80 - jlmf + 1);
#pragma omp parallel for simd
	    for (int jxy50 = 0; jxy50 < nkvs; jxy50++) {
	      int wk_index = nlmmt * jxy50;
	    for (long long jxy50 = 0; jxy50 < nkvs; jxy50++) {
	      long long wk_index = nlmmt * jxy50;
	      dcomplex wk_value = vec_tt1_wk[wk_index + j80];
	      int jy50 = jxy50 / nkv;
	      int jx50 = jxy50 % nkv;
	      long long jy50 = jxy50 / nkv;
	      long long jx50 = jxy50 % nkv;
	      vec_w[(nkv * jx50) + jy50] = wk_value;
	    } // jxy50 loop
	    int nvxy = nxv * nyv;
	    long long nvxy = nxv * nyv;
#pragma omp parallel for
	    for (int ixyz = 0; ixyz < nrvc; ixyz++) {
	      int iz75 = ixyz / nvxy;
	      int iy70 = (ixyz % nvxy) / nxv;
	      int ix65 = ixyz % nxv;
	    for (long long ixyz = 0; ixyz < nrvc; ixyz++) {
	      long long iz75 = ixyz / nvxy;
	      long long iy70 = (ixyz % nvxy) / nxv;
	      long long ix65 = ixyz % nxv;
	      double z = _zv[iz75] + frsh;
	      double y = _yv[iy70];
	      double x = _xv[ix65];
	      dcomplex sumy = cc0;
#pragma omp parallel for simd reduction(+:sumy)
	      for (int jy60x55 = 0; jy60x55 < nkvs ; jy60x55++) {
		int jy60 = jy60x55 / nkv;
		int jx55 = jy60x55 % nkv;
		int w_index = (jx55 * nkv) + jy60;
	      for (long long jy60x55 = 0; jy60x55 < nkvs ; jy60x55++) {
		long long jy60 = jy60x55 / nkv;
		long long jx55 = jy60x55 % nkv;
		long long w_index = (jx55 * nkv) + jy60;
		double vky = vkv[jy60];
		if (jx55 == 0) {
		  // jx55 = 0: phasf