From f483486a1b6ce81dc4908ee65b589968be81f06b Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 24 Aug 2020 08:29:34 -0600 Subject: [PATCH 1/2] Change the way iterator is handled inside inner loop. Previous way was confusing PGI compilers. --- src/Analysis_IRED.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Analysis_IRED.cpp b/src/Analysis_IRED.cpp index ae0b4a523f..1b9f1be247 100644 --- a/src/Analysis_IRED.cpp +++ b/src/Analysis_IRED.cpp @@ -310,7 +310,10 @@ Analysis::RetType Analysis_IRED::Analyze() { // Loop over SH coords for this l value (real, img) for (ComplexArray::iterator sh = IredVectors_[vidx]->SphericalHarmonics(Lval).begin(); sh != IredVectors_[vidx]->SphericalHarmonics(Lval).end(); ++sh) + { + //if (mode==0) mprintf("DEBUG: %10li Qvec= %16.8E SH= %16.8E\n", CF-cf_tmp.begin(), Qvec, *sh); *(CF++) += (Qvec * (*sh)); + } } } } @@ -336,13 +339,16 @@ Analysis::RetType Analysis_IRED::Analyze() { double plateau_r = 0; double plateau_i = 0; for (int k = 0; k < Nframes*2; k += 2) { + //if (mode==0) mprintf("k= %8i CF= %10li CF0= %16.8E CF1= %16.8E\n", k, CF-cf_tmp.begin(), *CF, *(CF+1)); data1_[k ] = *CF; - plateau_r += *(CF++); - data1_[k+1] = *CF; - plateau_i += *(CF++); + plateau_r += *CF; + data1_[k+1] = *(CF+1); + plateau_i += *(CF+1); + CF += 2; } plateau_r /= (double)Nframes; plateau_i /= (double)Nframes; + //mprintf("DEBUG: mode= %6i Lval= %3i plateau_r= %16.8E plateau_i= %16.8E\n", mode, Lval, plateau_r, plateau_i); // Calc plateau value of correlation function, Cm(t->T) in Bruschweiler paper (A20) Plateau[mode] += (plateau_r * plateau_r) + (plateau_i * plateau_i); // Calc correlation function for this mode and l, Cml(t) From 167f8b34e8718b12f427a94b92be977a6ebcb9b9 Mon Sep 17 00:00:00 2001 From: "Daniel R. Roe" Date: Mon, 24 Aug 2020 08:30:56 -0600 Subject: [PATCH 2/2] Revision bump for PGI IRED fix --- src/Version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Version.h b/src/Version.h index c0835e7b52..e3e885103c 100644 --- a/src/Version.h +++ b/src/Version.h @@ -12,7 +12,7 @@ * Whenever a number that precedes is incremented, all subsequent * numbers should be reset to 0. */ -#define CPPTRAJ_INTERNAL_VERSION "V4.29.5" +#define CPPTRAJ_INTERNAL_VERSION "V4.29.6" /// PYTRAJ relies on this #define CPPTRAJ_VERSION_STRING CPPTRAJ_INTERNAL_VERSION #endif