diff --git a/trainer.h b/trainer.h index 711a1700019e4ea6b785dafc2591a53dfe3db893..ae10ad450c65d5508beeab37a491bd6748c5989f 100644 --- a/trainer.h +++ b/trainer.h @@ -222,9 +222,9 @@ class MPI_Trainer: public Trainer { int lda2 = phi_rows2 > phi_cols2 ? phi_rows2 : phi_cols2; descinit_( descPHI, &PHI_rows, &PHI_cols, &rnb1, &cnb1, &izero, - &izero, &context1, /*leading dimension*/&izero, &info); + &izero, &context1, /*leading dimension*/&phi_rows1, &info); descinit_( descPHI2, &PHI_rows, &PHI_cols, &rnb2, &cnb2, &izero, - &izero, &context2, /*leading dimension*/&izero, &info2); + &izero, &context2, /*leading dimension*/&phi_cols1, &info2); if(info != 0) { printf("Error in descinit 1a, info = %d\n", info); @@ -235,9 +235,10 @@ class MPI_Trainer: public Trainer { } - descinit_( descB, &PHI_cols, &ione, &rnb1, &cnb1, &izero, + int temp = PHI_rows > PHI_cols ? PHI_rows : PHI_cols; + descinit_( descB, &temp, &ione, &rnb1, &cnb1, &izero, &izero, &context1, /*leading dimension*/&lda1, &info); - descinit_( descB2, &PHI_cols, &ione, &rnb2, &cnb2, &izero, + descinit_( descB2, &temp, &ione, &rnb2, &cnb2, &izero, &izero, &context2, /*leading dimension*/&lda2, &info2); if(info != 0) {