• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revision2fd7f2eda6cc0d8e998c504d73e94233b9448365 (tree)
Time2013-09-24 20:07:48
AuthorMikiya Fujii <mikiya.fujii@gmai...>
CommiterMikiya Fujii

Log Message

Modifications for complation on FX10 are done, but this is not perfect yet. #32094

git-svn-id: https://svn.sourceforge.jp/svnroot/molds/branches/fx10@1519 1136aad2-a195-0410-b898-f5ea1d11b9d8

Change Summary

Incremental Difference

--- /dev/null
+++ b/src/Makefile_FX10
@@ -0,0 +1,65 @@
1+#//************************************************************************//
2+#// Copyright (C) 2011-2012 Mikiya Fujii //
3+#// Copyright (C) 2012-2013 Katsuhiko Nishimra //
4+#// //
5+#// This file is part of MolDS. //
6+#// //
7+#// MolDS is free software: you can redistribute it and/or modify //
8+#// it under the terms of the GNU General Public License as published by //
9+#// the Free Software Foundation, either version 3 of the License, or //
10+#// (at your option) any later version. //
11+#// //
12+#// MolDS is distributed in the hope that it will be useful, //
13+#// but WITHOUT ANY WARRANTY; without even the implied warranty of //
14+#// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
15+#// GNU General Public License for more details. //
16+#// //
17+#// You should have received a copy of the GNU General Public License //
18+#// along with MolDS. If not, see <http://www.gnu.org/licenses/>. //
19+#//************************************************************************//
20+CC = mpiFCCpx
21+#CFLAGS = -Kfast,openmp -SSL2BLAMP -Xg
22+CFLAGS = -O0 -Kopenmp -SSL2BLAMP -Xg
23+BOOST_TOP_DIR = /home/n0011/n001101/opt/boost/boost1.49.0/
24+BOOST_INC_DIR = $(BOOST_TOP_DIR)include/
25+BOOST_LIB_DIR = $(BOOST_TOP_DIR)lib/
26+BOOST_LIBS = -lboost
27+#OPENBLAS_TOP_DIR = /usr/local/openblas/
28+#OPENBLAS_INC_DIR = $(OPENBLAS_TOP_DIR)include/
29+#OPENBLAS_LIB_DIR = $(OPENBLAS_TOP_DIR)lib/
30+#OPENBLAS_LIBS = -lopenblas
31+#LIBSBASE = -lpthread -lgomp
32+#LIBS = $(LIBSBASE) $(BOOST_LIBS) $(OPENBLAS_LIBS)
33+#LIBS = $(LIBSBASE) $(BOOST_LIBS)
34+LIBS = $(BOOST_LIBS)
35+EXENAME = MolDS.out
36+DEPFILE = obj/objfile.dep
37+#LDFLAGS = -Kfast,openmp -SSL2BLAMP -Xg
38+LDFLAGS = -O0 -Kopenmp -SSL2BLAMP -Xg
39+
40+ALL_CPP_FILES = base/Enums.cpp base/PrintController.cpp base/MolDSException.cpp base/MallocerFreer.cpp mpi/MpiProcess.cpp mpi/AsyncCommunicator.cpp wrappers/Blas.cpp wrappers/Lapack.cpp base/Utilities.cpp base/MathUtilities.cpp base/EularAngle.cpp base/Parameters.cpp base/atoms/Atom.cpp base/atoms/Hatom.cpp base/atoms/Liatom.cpp base/atoms/Catom.cpp base/atoms/Natom.cpp base/atoms/Oatom.cpp base/atoms/Satom.cpp base/factories/AtomFactory.cpp base/Molecule.cpp base/InputParser.cpp base/GTOExpansionSTO.cpp base/RealSphericalHarmonicsIndex.cpp base/loggers/MOLogger.cpp base/loggers/DensityLogger.cpp base/loggers/HoleDensityLogger.cpp base/loggers/ParticleDensityLogger.cpp cndo/Cndo2.cpp indo/Indo.cpp zindo/ZindoS.cpp mndo/Mndo.cpp am1/Am1.cpp am1/Am1D.cpp pm3/Pm3.cpp pm3/Pm3D.cpp pm3/Pm3Pddg.cpp base/factories/ElectronicStructureFactory.cpp md/MD.cpp mc/MC.cpp rpmd/RPMD.cpp nasco/NASCO.cpp optimization/Optimizer.cpp optimization/ConjugateGradient.cpp optimization/SteepestDescent.cpp optimization/BFGS.cpp optimization/GEDIIS.cpp base/factories/OptimizerFactory.cpp base/MolDS.cpp Main.cpp
41+ALL_HEAD_FILES = base/Enums.h base/Uncopyable.h base/PrintController.h base/MolDSException.h base/containers/ThreadSafeQueue.h base/MallocerFreer.h mpi/MpiProcess.h mpi/AsyncCommunicator.h wrappers/Blas.h wrappers/Lapack.h base/Utilities.h base/MathUtilities.h base/EularAngle.h base/Parameters.h base/atoms/Atom.h base/atoms/Hatom.h base/atoms/Liatom.h base/atoms/Catom.h base/atoms/Natom.h base/atoms/Oatom.h base/atoms/Satom.h base/factories/AtomFactory.h base/Molecule.h base/InputParser.h base/GTOExpansionSTO.h base/RealSphericalHarmonicsIndex.h base/loggers/MOLogger.h base/loggers/DensityLogger.h base/loggers/HoleDensityLogger.h base/loggers/ParticleDensityLogger.h base/ElectronicStructure.h cndo/Cndo2.h cndo/ReducedOverlapAOsParameters.h indo/Indo.h zindo/ZindoS.h mndo/Mndo.h am1/Am1.h am1/Am1D.h pm3/Pm3.h pm3/Pm3D.h pm3/Pm3Pddg.h base/factories/ElectronicStructureFactory.h md/MD.h mc/MC.h rpmd/RPMD.h nasco/NASCO.h optimization/Optimizer.h optimization/ConjugateGradient.h optimization/SteepestDescent.h optimization/BFGS.h optimization/GEDIIS.h base/factories/OptimizerFactory.h base/MolDS.h
42+ALL_OBJ_FILES = obj/Enums.o obj/PrintController.o obj/MolDSException.o obj/MallocerFreer.o obj/MpiProcess.o obj/AsyncCommunicator.o obj/Blas.o obj/Lapack.o obj/Utilities.o obj/MathUtilities.o obj/EularAngle.o obj/Parameters.o obj/Atom.o obj/Hatom.o obj/Liatom.o obj/Catom.o obj/Natom.o obj/Oatom.o obj/Satom.o obj/AtomFactory.o obj/Molecule.o obj/InputParser.o obj/GTOExpansionSTO.o obj/RealSphericalHarmonicsIndex.o obj/MOLogger.o obj/DensityLogger.o obj/HoleDensityLogger.o obj/ParticleDensityLogger.o obj/Cndo2.o obj/Indo.o obj/ZindoS.o obj/Mndo.o obj/Am1.o obj/Am1D.o obj/Pm3.o obj/Pm3D.o obj/Pm3Pddg.o obj/ElectronicStructureFactory.o obj/MD.o obj/MC.o obj/RPMD.o obj/NASCO.o obj/Optimizer.o obj/ConjugateGradient.o obj/SteepestDescent.o obj/BFGS.o obj/GEDIIS.o obj/OptimizerFactory.o obj/MolDS.o obj/Main.o
43+
44+$(EXENAME): $(ALL_OBJ_FILES)
45+ $(CC) -o $@ $(LDFLAGS) -Wl,-rpath=$(BOOST_LIB_DIR) $(LDFLAGS) $(ALL_OBJ_FILES) -L$(BOOST_LIB_DIR) $(LIBS)
46+# $(CC) -o $@ $(LDFLAGS) -Wl,-rpath=$(BOOST_LIB_DIR) -Wl,-rpath=$(OPENBLAS_LIB_DIR) $(LDFLAGS) $(ALL_OBJ_FILES) -L$(BOOST_LIB_DIR) -L$(OPENBLAS_LIB_DIR) $(LIBS)
47+
48+-include $(DEPFILE)
49+
50+.PHONY: depend
51+depend:
52+ rm $(DEPFILE)
53+ +make $(DEPFILE)
54+
55+$(DEPFILE): Makefile_FX10
56+ $(CC) -MM $(ALL_CPP_FILES) -I$(BOOST_INC_DIR) | sed 's/^\([^ ]\)/obj\/\1/g' | sed 's/\($$*\)\.o[ :]*/\1.o : /g' > $(DEPFILE)
57+# $(CC) -MM $(ALL_CPP_FILES) -I$(BOOST_INC_DIR) -I$(OPENBLAS_INC_DIR) | sed 's/^\([^ ]\)/obj\/\1/g' | sed 's/\($$*\)\.o[ :]*/\1.o : /g' > $(DEPFILE)
58+$(ALL_OBJ_FILES):
59+ $(CC) -I$(BOOST_INC_DIR) -o $@ $< $(CFLAGS) -c
60+# $(CC) -I$(BOOST_INC_DIR) -I$(OPENBLAS_INC_DIR) -o $@ $< $(CFLAGS) -c
61+.PHONY: clean
62+clean:
63+ rm -f $(ALL_OBJ_FILES) $(EXENAME) $(DEPFILE)
64+
65+all: clean $(EXENAME)
--- a/src/base/MathUtilities.cpp
+++ b/src/base/MathUtilities.cpp
@@ -119,8 +119,13 @@ void CalcRotatingMatrix(double matrix[][3], double theta, CartesianType cartesia
119119 // calculate determinant of the matrix
120120 double GetDeterminant(double** matrix, int dim){
121121 double determinant=1.0;
122+#ifdef __FCC_VERSION
123+ int* ipiv=NULL;
124+ MallocerFreer::GetInstance()->Malloc<int>(&ipiv, dim);
125+#else
122126 intptr_t* ipiv=NULL;
123127 MallocerFreer::GetInstance()->Malloc<intptr_t>(&ipiv, dim);
128+#endif
124129 MolDS_wrappers::Lapack::GetInstance()->Dgetrf(matrix, ipiv, dim, dim);
125130 for(int i=0; i<dim; i++){
126131 determinant*=matrix[i][i];
@@ -128,7 +133,11 @@ double GetDeterminant(double** matrix, int dim){
128133 determinant *= -1.0;
129134 }
130135 }
136+#ifdef __FCC_VERSION
137+ MallocerFreer::GetInstance()->Free<int>(&ipiv, dim);
138+#else
131139 MallocerFreer::GetInstance()->Free<intptr_t>(&ipiv, dim);
140+#endif
132141 return determinant;
133142 }
134143 }
--- a/src/base/MolDSException.cpp
+++ b/src/base/MolDSException.cpp
@@ -160,9 +160,11 @@ void MolDSException::serialize(Archive& ar, const unsigned int ver){
160160 }
161161
162162 void MolDSException::Serialize(std::ostream& os){
163+#ifndef __FCC_VERSION
163164 boost::archive::text_oarchive oa(os);
164165 std::string what = domain_error::what();
165166 oa << this;
167+#endif
166168 }
167169
168170 MolDSException MolDSException::Deserialize(std::istream& is){
--- a/src/wrappers/Blas.cpp
+++ b/src/wrappers/Blas.cpp
@@ -34,6 +34,8 @@
3434
3535 #ifdef __INTEL_COMPILER
3636 #include"mkl.h"
37+#elif defined __FCC_VERSION
38+#include"fj_lapack.h"
3739 #else
3840 #include"cblas.h"
3941 #endif
@@ -84,7 +86,11 @@ void Blas::Dcopy(molds_blas_int n,
8486 double const* vectorX, molds_blas_int incrementX,
8587 double* vectorY, molds_blas_int incrementY) const{
8688 double* x = const_cast<double*>(&vectorX[0]);
89+#ifdef __FCC_VERSION
90+ dcopy_(&n, x, &incrementX, vectorY, &incrementY);
91+#else
8792 cblas_dcopy(n, x, incrementX, vectorY, incrementY);
93+#endif
8894 }
8995
9096 // vectorY = alpha*vectorX + vectorY
@@ -105,7 +111,11 @@ void Blas::Daxpy(molds_blas_int n, double alpha,
105111 double const* vectorX, molds_blas_int incrementX,
106112 double* vectorY, molds_blas_int incrementY) const{
107113 double* x = const_cast<double*>(&vectorX[0]);
114+#ifdef __FCC_VERSION
115+ daxpy_(&n, &alpha, x, &incrementX, vectorY, &incrementY);
116+#else
108117 cblas_daxpy(n, alpha, x, incrementX, vectorY, incrementY);
118+#endif
109119 }
110120
111121 // returns vectorX^T*vectorY
@@ -127,7 +137,11 @@ double Blas::Ddot(molds_blas_int n,
127137 double const* vectorY, molds_blas_int incrementY)const{
128138 double* x=const_cast<double*>(vectorX),
129139 * y=const_cast<double*>(vectorY);
140+#ifdef __FCC_VERSION
141+ return ddot_(&n, x, &incrementX, y, &incrementY);
142+#else
130143 return cblas_ddot(n, x, incrementX, y, incrementY);
144+#endif
131145 }
132146
133147 // returns max(abs(vectorX[i]))
@@ -143,7 +157,12 @@ double Blas::Damax(molds_blas_int n,
143157 double Blas::Damax(molds_blas_int n,
144158 double const* vectorX, molds_blas_int incrementX)const{
145159 double* x=const_cast<double*>(vectorX);
146- molds_blas_int i = cblas_idamax(n, x, incrementX);
160+ molds_blas_int i = 0;
161+#ifdef __FCC_VERSION
162+ i = idamax_(&n, x, &incrementX);
163+#else
164+ i = cblas_idamax(n, x, incrementX);
165+#endif
147166 return abs(vectorX[incrementX*i]);
148167 }
149168
@@ -178,6 +197,19 @@ void Blas::Dgemv(bool isColumnMajorMatrixA,
178197 molds_blas_int incrementY) const{
179198 double* a = const_cast<double*>(&matrixA[0][0]);
180199 double* x = const_cast<double*>(&vectorX[0]);
200+#ifdef __FCC_VERSION
201+ char* transA;
202+ molds_blas_int transALen=1;
203+ if(isColumnMajorMatrixA){
204+ transA = "n";
205+ }
206+ else{
207+ transA = "t";
208+ swap(m,n);
209+ }
210+ molds_blas_int lda = m;
211+ dgemv_(transA, &m, &n, &alpha, a, &lda, x, &incrementX, &beta, vectorY, &incrementY, transALen);
212+#else
181213 CBLAS_TRANSPOSE transA;
182214 if(isColumnMajorMatrixA){
183215 transA = CblasNoTrans;
@@ -188,10 +220,13 @@ void Blas::Dgemv(bool isColumnMajorMatrixA,
188220 }
189221 molds_blas_int lda = m;
190222 cblas_dgemv(CblasColMajor, transA, m, n, alpha, a, lda, x, incrementX, beta, vectorY, incrementY);
223+#endif
224+
225+
191226 }
192227
193228 // vectorY = matrixA*vectorX
194-// matrixA: n*n-matrix,symmetric (Use the upper triangular part)
229+// matrixA: n*n-matrix,symmetric (Use the upper triangular part in row-major(C/C++ style))
195230 // vectorX: n-vector
196231 // vectorY: n-vector
197232 void Blas::Dsymv(molds_blas_int n,
@@ -205,7 +240,7 @@ void Blas::Dsymv(molds_blas_int n,
205240 }
206241
207242 // vectorY = alpha*matrixA*vectorX + beta*vectorY
208-// matrixA: n*n-matrix,symmetric (Use the upper triangular part)
243+// matrixA: n*n-matrix,symmetric (Use the upper triangular part in row-major(C/C++ style))
209244 // vectorX: n-vector
210245 // vectorY: n-vector
211246 void Blas::Dsymv(molds_blas_int n, double alpha,
@@ -213,11 +248,25 @@ void Blas::Dsymv(molds_blas_int n, double alpha,
213248 double const* vectorX, molds_blas_int incrementX,
214249 double beta,
215250 double* vectorY, molds_blas_int incrementY) const{
216- double* a = const_cast<double*>(&matrixA[0][0]);
217251 double* x = const_cast<double*>(&vectorX[0]);
218- CBLAS_UPLO uploA=CblasUpper;
219252 molds_blas_int lda = n;
253+#ifdef __FCC_VERSION
254+ char* uploA = "u";
255+ double* convertedMatrixA=NULL;
256+ convertedMatrixA = (double*)malloc(sizeof(double)*n*n);
257+ for(molds_blas_int i=0; i<n; i++){
258+ for(molds_blas_int j=i; j<n; j++){
259+ convertedMatrixA[i+j*n] = matrixA[i][j];
260+ }
261+ }
262+ molds_blas_int uploALen =1;
263+ dsymv_(uploA, &n, &alpha, convertedMatrixA, &lda, x, &incrementX, &beta, vectorY, &incrementY, uploALen);
264+ free(convertedMatrixA);
265+#else
266+ double* a = const_cast<double*>(&matrixA[0][0]);
267+ CBLAS_UPLO uploA=CblasUpper;
220268 cblas_dsymv(CblasRowMajor, uploA, n, alpha, a, lda, x, incrementX, beta, vectorY, incrementY);
269+#endif
221270 }
222271
223272 // matrixA = alpha*vectorX*vectorX^T + matrixA
@@ -235,15 +284,33 @@ void Blas::Dsyr(molds_blas_int n, double alpha,
235284 double ** matrixA)const{
236285 double* a = &matrixA[0][0];
237286 double* x = const_cast<double*>(&vectorX[0]);
238- CBLAS_UPLO uploA=CblasUpper;
287+
239288 molds_blas_int lda = n;
289+#ifdef __FCC_VERSION
290+ char* uploA = "u";
291+ molds_blas_int uploALen =1;
292+ for(molds_blas_int i=0; i<n; i++){
293+ for(molds_blas_int j=i; j<n; j++){
294+ matrixA[j][i] = matrixA[i][j];
295+ }
296+ }
297+ dsyr_(uploA, &n, &alpha, x, &incrementX, a, &lda, uploALen);
298+#pragma omp parallel for schedule(auto)
299+ for(molds_blas_int i=0;i<n;i++){
300+ for(molds_blas_int j=i+1;j<n;j++){
301+ matrixA[i][j] = matrixA[j][i]; // Note that output matrixA is column-major(Fortran style) in BLAS
302+ }
303+ }
304+#else
305+ CBLAS_UPLO uploA=CblasUpper;
240306 cblas_dsyr(CblasRowMajor, uploA, n, alpha, x, incrementX, a, lda);
241307 #pragma omp parallel for schedule(auto)
242308 for(molds_blas_int i=0;i<n;i++){
243309 for(molds_blas_int j=i+1;j<n;j++){
244- matrixA[j][i] = matrixA[i][j];
310+ matrixA[j][i] = matrixA[i][j]; // Note that output matrixA is row-major(C/C++ stype)
245311 }
246312 }
313+#endif
247314 }
248315
249316 // matrixC = matrixA*matrixB
@@ -295,6 +362,18 @@ void Blas::Dgemm(bool isColumnMajorMatrixA,
295362 double* c = &matrixC[0][0];
296363
297364 molds_blas_int lda;
365+#ifdef __FCC_VERSION
366+ char* transA;
367+ molds_blas_int transALen=1;
368+ if(isColumnMajorMatrixA){
369+ transA = "n";
370+ lda = m;
371+ }
372+ else{
373+ transA = "t";
374+ lda = k;
375+ }
376+#else
298377 CBLAS_TRANSPOSE transA;
299378 if(isColumnMajorMatrixA){
300379 transA = CblasNoTrans;
@@ -304,8 +383,21 @@ void Blas::Dgemm(bool isColumnMajorMatrixA,
304383 transA = CblasTrans;
305384 lda = k;
306385 }
386+#endif
307387
308388 molds_blas_int ldb;
389+#ifdef __FCC_VERSION
390+ char* transB;
391+ molds_blas_int transBLen=1;
392+ if(isColumnMajorMatrixB){
393+ transB = "n";
394+ ldb = k;
395+ }
396+ else{
397+ transB = "t";
398+ ldb = n;
399+ }
400+#else
309401 CBLAS_TRANSPOSE transB;
310402 if(isColumnMajorMatrixB){
311403 transB = CblasNoTrans;
@@ -315,6 +407,7 @@ void Blas::Dgemm(bool isColumnMajorMatrixA,
315407 transB = CblasTrans;
316408 ldb = n;
317409 }
410+#endif
318411
319412 double* tmpC;
320413 #ifdef __INTEL_COMPILER
@@ -335,8 +428,11 @@ void Blas::Dgemm(bool isColumnMajorMatrixA,
335428 }
336429
337430 //call blas
431+#ifdef __FCC_VERSION
432+ dgemm_(transA, transB, &m, &n, &k, &alpha, a, &lda, b, &ldb, &beta, tmpC, &ldc, transALen, transBLen);
433+#else
338434 cblas_dgemm(CblasColMajor, transA, transB, m, n, k, alpha, a, lda, b, ldb, beta, tmpC, ldc);
339-
435+#endif
340436 if(isColumnMajorMatrixC){
341437 this->Dcopy(m*n, tmpC, &matrixC[0][0]);
342438 }
@@ -460,23 +556,86 @@ void Blas::Dsyrk(molds_blas_int n, molds_blas_int k,
460556 double beta, double ** matrixC)const{
461557 double* c = &matrixC[0][0];
462558 double* a = const_cast<double*>(&matrixA[0][0]);
559+ molds_blas_int lda = &matrixA[1][0] - &matrixA[0][0];
560+ molds_blas_int ldc = &matrixC[1][0] - &matrixC[0][0];
561+#ifdef __FCC_VERSION
562+ molds_blas_int uploLen =1;
563+ molds_blas_int transLen=1;
564+
565+ double* convertedMatrixA=NULL;
566+ if(!isMatrixAColumnMajor){
567+ convertedMatrixA = (double*)malloc(sizeof(double)*n*k);
568+ molds_blas_int iSize=0;
569+ molds_blas_int jSize=0;
570+ if(isMatrixATransposed){
571+ iSize=k;
572+ jSize=n;
573+ }
574+ else{
575+ iSize=n;
576+ jSize=k;
577+ }
578+ lda=iSize;
579+ for(molds_blas_int i=0; i<iSize; i++){
580+ for(molds_blas_int j=0; j<jSize; j++){
581+ convertedMatrixA[i+j*iSize] = matrixA[i][j];
582+ }
583+ }
584+ }
585+ else{
586+ convertedMatrixA = a;
587+ }
588+
589+ char* uploC = "u";
590+ if(isLowerTriangularPartMatrixCUsed){
591+ uploC = "l";
592+ }
593+ char* transA = "n";
594+ if(isMatrixATransposed){
595+ transA = "t";
596+ }
597+ dsyrk_(uploC, transA, &n, &k, &alpha, convertedMatrixA, &lda, &beta, c, &ldc, uploLen, transLen);
598+ if(!isMatrixAColumnMajor){
599+ free(convertedMatrixA);
600+ }
601+#pragma omp parallel for schedule(auto)
602+ for(molds_blas_int i=0;i<n;i++){
603+ for(molds_blas_int j=i+1;j<n;j++){
604+ if(isLowerTriangularPartMatrixCUsed){
605+ matrixC[j][i] = matrixC[i][j]; // Note that output matrixC is column-major(Fortran style) in BLAS
606+ }
607+ else{
608+ matrixC[i][j] = matrixC[j][i]; // Note that output matrixC is column-major(Fortran style) in BLAS
609+ }
610+ }
611+ }
612+#else
463613 CBLAS_ORDER orderA = isMatrixAColumnMajor ? CblasColMajor : CblasRowMajor;
464614 CBLAS_UPLO uploC= isLowerTriangularPartMatrixCUsed ? CblasLower : CblasUpper;
465615 CBLAS_TRANSPOSE transA= isMatrixATransposed ? CblasTrans : CblasNoTrans;
466- molds_blas_int lda = &matrixA[1][0] - &matrixA[0][0];
467- molds_blas_int ldc = &matrixC[1][0] - &matrixC[0][0];
468616 cblas_dsyrk(orderA, uploC, transA, n, k, alpha, a, lda, beta, c, ldc);
469617 #pragma omp parallel for schedule(auto)
470618 for(molds_blas_int i=0;i<n;i++){
471619 for(molds_blas_int j=i+1;j<n;j++){
472620 if(isLowerTriangularPartMatrixCUsed){
473- matrixC[i][j] = matrixC[j][i];
621+ if(orderA == CblasRowMajor){
622+ matrixC[i][j] = matrixC[j][i]; // Note that output matrixC is row-major(C/C++ style)
623+ }
624+ else{
625+ matrixC[j][i] = matrixC[i][j]; // Note that output matrixC is column-major(Fortran style)
626+ }
474627 }
475628 else{
476- matrixC[j][i] = matrixC[i][j];
629+ if(orderA == CblasRowMajor){
630+ matrixC[j][i] = matrixC[i][j]; // Note that output matrixC is row-major(C/C++ style)
631+ }
632+ else{
633+ matrixC[i][j] = matrixC[j][i]; // Note that output matrixC is column-major(Fortran style)
634+ }
477635 }
478636 }
479637 }
638+#endif
480639 }
481640
482641 }
--- a/src/wrappers/Blas.h
+++ b/src/wrappers/Blas.h
@@ -21,7 +21,11 @@
2121 #define INCLUDED_BLAS
2222 namespace MolDS_wrappers{
2323 //typedef intptr_t molds_blas_int;
24+#ifdef __FCC_VERSION
25+typedef int molds_blas_int;
26+#else
2427 typedef intptr_t molds_blas_int;
28+#endif
2529 // Blas is singleton
2630 class Blas: public MolDS_base::PrintController, private MolDS_base::Uncopyable{
2731 public:
--- a/src/wrappers/Lapack.cpp
+++ b/src/wrappers/Lapack.cpp
@@ -33,14 +33,16 @@
3333 #include"Lapack.h"
3434
3535 #ifdef __INTEL_COMPILER
36-#include"mkl.h"
36+ #include"mkl.h"
37+#elif defined __FCC_VERSION
38+ #include"fj_lapack.h"
3739 #else
38-#if ( __WORDSIZE == 32 )
39-#else
40-#define HAVE_LAPACK_CONFIG_H
41-#define LAPACK_ILP64
42-#endif
43-#include"lapacke.h"
40+ #if ( __WORDSIZE == 32 )
41+ #else
42+ #define HAVE_LAPACK_CONFIG_H
43+ #define LAPACK_ILP64
44+ #endif
45+ #include"lapacke.h"
4446 #endif
4547
4648 #ifdef __INTEL_COMPILER
@@ -160,6 +162,10 @@ molds_lapack_int Lapack::Dsyevd(double** matrix, double* eigenValues, molds_lapa
160162 // call Lapack
161163 #ifdef __INTEL_COMPILER
162164 dsyevd(&job, &uplo, &size, convertedMatrix, &lda, tempEigenValues, work, &lwork, iwork, &liwork, &info);
165+#elif defined __FCC_VERSION
166+ molds_lapack_int jobLen=1;
167+ molds_lapack_int uploLen=1;
168+ dsyevd_(&job, &uplo, &size, convertedMatrix, &lda, tempEigenValues, work, &lwork, iwork, &liwork, &info, jobLen, uploLen);
163169 #else
164170 info = LAPACKE_dsyevd_work(LAPACK_COL_MAJOR, job, uplo, size, convertedMatrix, lda, tempEigenValues, work, lwork, iwork, liwork);
165171 #endif
@@ -215,6 +221,9 @@ molds_lapack_int Lapack::Dsysv(double const* const* matrix, double* b, molds_lap
215221 molds_lapack_int info = 0;
216222 molds_lapack_int lwork;
217223 char uplo = 'U';
224+#ifdef __FCC_VERSION
225+ molds_lapack_int uploLen=1;
226+#endif
218227 molds_lapack_int lda = size;
219228 molds_lapack_int ldb = size;
220229 molds_lapack_int nrhs = 1;
@@ -251,6 +260,8 @@ molds_lapack_int Lapack::Dsysv(double const* const* matrix, double* b, molds_lap
251260 double tempWork[3]={0.0, 0.0, 0.0};
252261 #ifdef __INTEL_COMPILER
253262 dsysv(&uplo, &size, &nrhs, convertedMatrix, &lda, ipiv, tempB, &ldb, tempWork, &lwork, &info);
263+#elif defined __FCC_VERSION
264+ dsysv_(&uplo, &size, &nrhs, convertedMatrix, &lda, ipiv, tempB, &ldb, tempWork, &lwork, &info, uploLen);
254265 #else
255266 info = LAPACKE_dsysv_work(LAPACK_COL_MAJOR, uplo, size, nrhs, convertedMatrix, lda, ipiv, tempB, ldb, tempWork, lwork);
256267 #endif
@@ -263,6 +274,8 @@ molds_lapack_int Lapack::Dsysv(double const* const* matrix, double* b, molds_lap
263274 // call Lapack
264275 #ifdef __INTEL_COMPILER
265276 dsysv(&uplo, &size, &nrhs, convertedMatrix, &lda, ipiv, tempB, &ldb, work, &lwork, &info);
277+#elif defined __FCC_VERSION
278+ dsysv_(&uplo, &size, &nrhs, convertedMatrix, &lda, ipiv, tempB, &ldb, work, &lwork, &info, uploLen);
266279 #else
267280 info = LAPACKE_dsysv_work(LAPACK_COL_MAJOR, uplo, size, nrhs, convertedMatrix, lda, ipiv, tempB, ldb, work, lwork);
268281 #endif
@@ -328,6 +341,9 @@ molds_lapack_int Lapack::Dgetrs(double const* const* matrix, double** b, molds_l
328341 this->Dgetrf(convertedMatrix, ipiv, size, size);
329342 #ifdef __INTEL_COMPILER
330343 dgetrs(&trans, &size, &nrhs, convertedMatrix, &lda, ipiv, convertedB, &ldb, &info);
344+#elif defined __FCC_VERSION
345+ molds_lapack_int transLen=1;
346+ dgetrs_(&trans, &size, &nrhs, convertedMatrix, &lda, ipiv, convertedB, &ldb, &info, transLen);
331347 #else
332348 info = LAPACKE_dgetrs_work(LAPACK_COL_MAJOR, trans, size, nrhs, convertedMatrix, lda, ipiv, convertedB, ldb);
333349 #endif
@@ -395,6 +411,8 @@ molds_lapack_int Lapack::Dgetrf(double* matrix, molds_lapack_int* ipiv, molds_la
395411 molds_lapack_int lda = sizeM;
396412 #ifdef __INTEL_COMPILER
397413 dgetrf(&sizeM, &sizeN, matrix, &lda, ipiv, &info);
414+#elif defined __FCC_VERSION
415+ dgetrf_(&sizeM, &sizeN, matrix, &lda, ipiv, &info);
398416 #else
399417 info = LAPACKE_dgetrf_work(LAPACK_COL_MAJOR, sizeM, sizeN, matrix, lda, ipiv);
400418 #endif
--- a/src/wrappers/Lapack.h
+++ b/src/wrappers/Lapack.h
@@ -20,7 +20,11 @@
2020 #define INCLUDED_LAPACK
2121 namespace MolDS_wrappers{
2222 //typedef intptr_t molds_lapack_int;
23+#ifdef __FCC_VERSION
24+typedef int molds_lapack_int;
25+#else
2326 typedef intptr_t molds_lapack_int;
27+#endif
2428 // Lapacke is singleton
2529 class Lapack: public MolDS_base::PrintController, private MolDS_base::Uncopyable{
2630 public:
--- a/src/zindo/ZindoS.cpp
+++ b/src/zindo/ZindoS.cpp
@@ -3289,10 +3289,24 @@ void ZindoS::CalcAuxiliaryVector(double* y,
32893289 &(q[nonRedundantQIndeces.size()]),
32903290 y);
32913291 stringstream ompErrors;
3292-#pragma omp parallel
3293-#pragma omp single nowait
3292+#ifdef __FCC_VERSION
3293+ #pragma omp parallel for schedule(auto)
32943294 for(int i=0; i<nonRedundantQIndeces.size(); i++){
3295-#pragma omp task
3295+ try{
3296+ int moI = nonRedundantQIndeces[i].moI;
3297+ int moJ = nonRedundantQIndeces[i].moJ;
3298+ y[i] += q[i]/this->GetNNRElement(moI, moJ, moI, moJ);
3299+ }
3300+ catch(MolDSException ex){
3301+ #pragma omp critical
3302+ ex.Serialize(ompErrors);
3303+ }
3304+ }
3305+#else
3306+ #pragma omp parallel
3307+ #pragma omp single nowait
3308+ for(int i=0; i<nonRedundantQIndeces.size(); i++){
3309+ #pragma omp task
32963310 {
32973311 try{
32983312 int moI = nonRedundantQIndeces[i].moI;
@@ -3300,11 +3314,12 @@ void ZindoS::CalcAuxiliaryVector(double* y,
33003314 y[i] += q[i]/this->GetNNRElement(moI, moJ, moI, moJ);
33013315 }
33023316 catch(MolDSException ex){
3303-#pragma omp critical
3317+ #pragma omp critical
33043318 ex.Serialize(ompErrors);
33053319 }
33063320 }
33073321 }
3322+#endif
33083323 // Exception throwing for omp-region
33093324 if(!ompErrors.str().empty()){
33103325 throw MolDSException::Deserialize(ompErrors);
--- /dev/null
+++ b/test/Test_Of_MolDS_p1.rb
@@ -0,0 +1,1233 @@
1+#!/usr/bin/env ruby
2+#//************************************************************************//
3+#// Copyright (C) 2011-2012 Mikiya Fujii //
4+#// Copyright (C) 2012-2013 Katsuhiko Nishimra //
5+#// //
6+#// This file is part of MolDS. //
7+#// //
8+#// MolDS is free software: you can redistribute it and/or modify //
9+#// it under the terms of the GNU General Public License as published by //
10+#// the Free Software Foundation, either version 3 of the License, or //
11+#// (at your option) any later version. //
12+#// //
13+#// MolDS is distributed in the hope that it will be useful, //
14+#// but WITHOUT ANY WARRANTY; without even the implied warranty of //
15+#// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
16+#// GNU General Public License for more details. //
17+#// //
18+#// You should have received a copy of the GNU General Public License //
19+#// along with MolDS. If not, see <http://www.gnu.org/licenses/>. //
20+#//************************************************************************//
21+
22+Dir.chdir(File.dirname(__FILE__))
23+
24+MolDSBin = "../src/MolDS.out".freeze
25+
26+module AllInclude
27+ def include? *arg
28+ true
29+ end
30+end
31+
32+if ARGV.empty?
33+ Tests = Object.new.extend(AllInclude)
34+else
35+ Tests = ARGV.collect do |s|
36+ File.basename(s, '.*')
37+ end.freeze
38+end
39+
40+class Tester
41+ @@surfixDat = ".dat"
42+ @@surfixInp = ".in"
43+ @@tempFile = "temp.dat"
44+ @@moldsBin = MolDSBin
45+ @@command = "command: "
46+ @@mpiCommand = "mpiexec -n "
47+ @@mpiProcesses = "1"
48+ @@deleteDiff = " | gawk '{if(($2!=\"SCF\")&&($3!=\"iter\")){print $0}}' | gawk '{if(($4!=\"time:\")){print $0}}' | gawk '{if(($3!=\"Elapsed\")){print $0}}' | gawk '{if(($2!=\"Elapsed\")){print $0}}' | gawk '{if(($3!=\"Welcome\")){print $0}}' | gawk '{if(($7!=\"residual\")){print $0}}' | gawk '{if(($3!=\"mode(nmw):\") ){print $0}}' | gawk '{if( !(($3==\"mode(mw):\")&&($4<6)) ){print $0}}'"
49+ @@printed_section = []
50+ def doesTestOmp(mklNumThreads, ompNumThreads)
51+ return unless should_run?
52+ ENV["MKL_NUM_THREADS"] = mklNumThreads
53+ ENV["OMP_NUM_THREADS"] = ompNumThreads
54+ puts <<EOS % [1,ENV["MKL_NUM_THREADS"],ENV["OMP_NUM_THREADS"]]
55+MPI processes: %s
56+MKL_NUM_THREADS:%s
57+OMP_NUM_THREADS:%s
58+EOS
59+ puts @@command + @moldsCommand
60+ system(@moldsCommand)
61+ puts @@command + @diffCommand + @@deleteDiff
62+ system(@diffCommand + @@deleteDiff)
63+ puts '','',''
64+ end
65+ def doesTestMpi(mklNumThreads, ompNumThreads)
66+ return unless should_run?
67+ ENV["MKL_NUM_THREADS"] = mklNumThreads
68+ ENV["OMP_NUM_THREADS"] = ompNumThreads
69+ puts <<EOS % [@@mpiProcesses,ENV["MKL_NUM_THREADS"],ENV["OMP_NUM_THREADS"]]
70+MPI processes: %s
71+MKL_NUM_THREADS:%s
72+OMP_NUM_THREADS:%s
73+EOS
74+ puts @@command + @moldsCommandMPI
75+ system(@moldsCommandMPI)
76+ puts @@command + @diffCommand + @@deleteDiff
77+ system(@diffCommand + @@deleteDiff)
78+ puts '','',''
79+ end
80+ #def initialize(prefix, section=nil, title)
81+ #Old ruby workaround.
82+ #Old versioned ruby accept default values for only last arguments.
83+ def initialize(prefix, section, title=nil)
84+ #So swap arguments if section is ommitted.
85+ if title.nil?
86+ section,title = title,section
87+ end
88+ @prefix = prefix
89+ @inputFile = prefix + @@surfixInp
90+ @outputFile = prefix + @@surfixDat
91+ @moldsCommand = @@moldsBin + " < " + @inputFile + " > " + @@tempFile
92+ @moldsCommandMPI = @@mpiCommand + @@mpiProcesses + " " + @@moldsBin + " " + @inputFile + " > " + @@tempFile
93+ @diffCommand = "diff " + @outputFile + " " + @@tempFile
94+ @title = title
95+ # Update section title if given, otherwise reuse previous one.
96+ @@section = section unless section.nil?
97+ print_title
98+ end
99+
100+ private
101+ def should_run?
102+ @should ||= Tests.include?(@prefix)
103+ end
104+
105+ def print_title
106+ return unless should_run?
107+ unless @@printed_section.include?(@@section)
108+ @@printed_section << @@section
109+ puts @@section,''
110+ end
111+ puts @title, ''
112+ end
113+end
114+
115+puts <<EOS
116+
117+*****************************************
118+*** ***
119+*** ***
120+*** Start Test for MolDS ***
121+*** ***
122+*** Powered by Ruby ***
123+*****************************************
124+EOS
125+
126+puts 'MD5 sum of the MolDS.out to be tested:'
127+system "md5sum #{MolDSBin}"
128+puts '',''
129+
130+prefix = "FNC1_principal"
131+tester = Tester.new(prefix, <<"SECTION",<<"TITLE")
132+---------------------------------------------------
133+----------- Test of principal axes --------------
134+---------------------------------------------------
135+SECTION
136+\t\t\t>>> F8BT <<<
137+TITLE
138+mklNumThreads = "1"
139+ompNumThreads = "1"
140+tester.doesTestOmp(mklNumThreads,ompNumThreads)
141+
142+prefix = "FNC1_rot120"
143+tester = Tester.new(prefix, <<"SECTION",<<"TITLE")
144+---------------------------------------------------
145+----------- Test of rotate ----------------------
146+---------------------------------------------------
147+SECTION
148+\t\t\t>>> F8BT <<<
149+TITLE
150+mklNumThreads = "1"
151+ompNumThreads = "1"
152+tester.doesTestOmp(mklNumThreads,ompNumThreads)
153+
154+prefix = "FNC1_translate"
155+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
156+---------------------------------------------------
157+----------- Test of translate -------------------
158+---------------------------------------------------
159+SECTION
160+\t\t\t>>> F8BT <<<
161+TITLE
162+mklNumThreads = "1"
163+ompNumThreads = "1"
164+tester.doesTestOmp(mklNumThreads,ompNumThreads)
165+
166+prefix = "ch4_cndo2"
167+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
168+-------------------------------------------
169+---------- Test of CNDO2/HF ---------
170+-------------------------------------------
171+SECTION
172+\t\t\t>>> CH4 <<<
173+TITLE
174+mklNumThreads = "1"
175+ompNumThreads = "1"
176+tester.doesTestOmp(mklNumThreads,ompNumThreads)
177+mklNumThreads = "2"
178+ompNumThreads = "2"
179+tester.doesTestOmp(mklNumThreads,ompNumThreads)
180+mklNumThreads = "4"
181+ompNumThreads = "2"
182+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
183+
184+prefix = "c2h6_cndo2"
185+tester = Tester.new(prefix, <<"TITLE")
186+\t\t\t>>> C2H6 <<<
187+TITLE
188+mklNumThreads = "1"
189+ompNumThreads = "1"
190+tester.doesTestOmp(mklNumThreads,ompNumThreads)
191+mklNumThreads = "2"
192+ompNumThreads = "2"
193+tester.doesTestOmp(mklNumThreads,ompNumThreads)
194+mklNumThreads = "4"
195+ompNumThreads = "2"
196+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
197+
198+prefix = "h2s_cndo2"
199+tester = Tester.new(prefix, <<"TITLE")
200+\t\t\t>>> H2S <<<
201+TITLE
202+mklNumThreads = "1"
203+ompNumThreads = "1"
204+tester.doesTestOmp(mklNumThreads,ompNumThreads)
205+mklNumThreads = "2"
206+ompNumThreads = "2"
207+tester.doesTestOmp(mklNumThreads,ompNumThreads)
208+mklNumThreads = "4"
209+ompNumThreads = "2"
210+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
211+
212+prefix = "ch4_indo"
213+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
214+-------------------------------------------
215+---------- Test of INDO/HF -----------
216+-------------------------------------------
217+SECTION
218+\t\t\t>>> CH4 <<<
219+TITLE
220+mklNumThreads = "1"
221+ompNumThreads = "1"
222+tester.doesTestOmp(mklNumThreads,ompNumThreads)
223+mklNumThreads = "2"
224+ompNumThreads = "2"
225+tester.doesTestOmp(mklNumThreads,ompNumThreads)
226+mklNumThreads = "4"
227+ompNumThreads = "2"
228+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
229+
230+prefix = "c2h6_indo"
231+tester = Tester.new(prefix, <<"TITLE")
232+\t\t\t>>> C2H6 <<<
233+TITLE
234+mklNumThreads = "1"
235+ompNumThreads = "1"
236+tester.doesTestOmp(mklNumThreads,ompNumThreads)
237+mklNumThreads = "2"
238+ompNumThreads = "2"
239+tester.doesTestOmp(mklNumThreads,ompNumThreads)
240+mklNumThreads = "4"
241+ompNumThreads = "2"
242+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
243+
244+prefix = "ch4_zindos_directCIS_singlet"
245+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
246+---------------------------------------------------
247+---------- Test of ZINDO/CIS-singlet ---------
248+---------- Without Davidson for the CIS ---------
249+---------------------------------------------------
250+SECTION
251+\t\t\t>>> CH4 <<<
252+TITLE
253+mklNumThreads = "1"
254+ompNumThreads = "1"
255+tester.doesTestOmp(mklNumThreads,ompNumThreads)
256+mklNumThreads = "2"
257+ompNumThreads = "2"
258+tester.doesTestOmp(mklNumThreads,ompNumThreads)
259+mklNumThreads = "4"
260+ompNumThreads = "2"
261+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
262+
263+prefix = "c2h6_zindos_directCIS_singlet"
264+tester = Tester.new(prefix, <<"TITLE")
265+\t\t\t>>> C2H6 <<<
266+TITLE
267+mklNumThreads = "1"
268+ompNumThreads = "1"
269+tester.doesTestOmp(mklNumThreads,ompNumThreads)
270+mklNumThreads = "2"
271+ompNumThreads = "2"
272+tester.doesTestOmp(mklNumThreads,ompNumThreads)
273+mklNumThreads = "4"
274+ompNumThreads = "2"
275+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
276+
277+prefix = "h2s_zindos_directCIS_singlet"
278+tester = Tester.new(prefix, <<"TITLE")
279+\t\t\t>>> H2S <<<
280+TITLE
281+mklNumThreads = "1"
282+ompNumThreads = "1"
283+tester.doesTestOmp(mklNumThreads,ompNumThreads)
284+mklNumThreads = "2"
285+ompNumThreads = "2"
286+tester.doesTestOmp(mklNumThreads,ompNumThreads)
287+mklNumThreads = "4"
288+ompNumThreads = "2"
289+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
290+
291+prefix = "h2o_zindos_directCIS_singlet"
292+tester = Tester.new(prefix, <<"TITLE")
293+\t\t\t>>> H2O <<<
294+TITLE
295+mklNumThreads = "1"
296+ompNumThreads = "1"
297+tester.doesTestOmp(mklNumThreads,ompNumThreads)
298+mklNumThreads = "2"
299+ompNumThreads = "2"
300+tester.doesTestOmp(mklNumThreads,ompNumThreads)
301+mklNumThreads = "4"
302+ompNumThreads = "2"
303+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
304+
305+prefix = "ch4_zindos_davidsonCIS_singlet"
306+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
307+------------------------------------------------
308+---------- Test of ZINDO/CIS-singlet ---------
309+---------- With Davidson for the CIS ---------
310+------------------------------------------------
311+SECTION
312+\t\t\t>>> CH4 <<<
313+TITLE
314+mklNumThreads = "1"
315+ompNumThreads = "1"
316+tester.doesTestOmp(mklNumThreads,ompNumThreads)
317+mklNumThreads = "2"
318+ompNumThreads = "2"
319+tester.doesTestOmp(mklNumThreads,ompNumThreads)
320+mklNumThreads = "4"
321+ompNumThreads = "2"
322+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
323+
324+prefix = "c2h6_zindos_davidsonCIS_singlet"
325+tester = Tester.new(prefix, <<"TITLE")
326+\t\t\t>>> C2H6 <<<
327+TITLE
328+mklNumThreads = "1"
329+ompNumThreads = "1"
330+tester.doesTestOmp(mklNumThreads,ompNumThreads)
331+mklNumThreads = "2"
332+ompNumThreads = "2"
333+tester.doesTestOmp(mklNumThreads,ompNumThreads)
334+mklNumThreads = "4"
335+ompNumThreads = "2"
336+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
337+
338+prefix = "h2s_zindos_davidsonCIS_singlet"
339+tester = Tester.new(prefix, <<"TITLE")
340+\t\t\t>>> H2S <<<
341+TITLE
342+mklNumThreads = "1"
343+ompNumThreads = "1"
344+tester.doesTestOmp(mklNumThreads,ompNumThreads)
345+mklNumThreads = "2"
346+ompNumThreads = "2"
347+tester.doesTestOmp(mklNumThreads,ompNumThreads)
348+mklNumThreads = "4"
349+ompNumThreads = "2"
350+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
351+
352+prefix = "c2h6_zindos_force"
353+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
354+------------------------------------------------
355+---------- Test of ZINDO/HF-Force ------------
356+------------------------------------------------
357+SECTION
358+\t\t\t>>> C2H6 <<<
359+TITLE
360+mklNumThreads = "1"
361+ompNumThreads = "1"
362+tester.doesTestOmp(mklNumThreads,ompNumThreads)
363+mklNumThreads = "2"
364+ompNumThreads = "2"
365+tester.doesTestOmp(mklNumThreads,ompNumThreads)
366+mklNumThreads = "4"
367+ompNumThreads = "2"
368+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
369+
370+prefix = "c2h6_zindos_directCIS_singlet_force"
371+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
372+---------------------------------------------------
373+---------- Test of ZINDO/CIS-singlet-force --------
374+---------- Without Davidson for the CIS --------
375+---------------------------------------------------
376+SECTION
377+\t\t\t>>> C2H6 <<<
378+TITLE
379+mklNumThreads = "1"
380+ompNumThreads = "1"
381+tester.doesTestOmp(mklNumThreads,ompNumThreads)
382+mklNumThreads = "2"
383+ompNumThreads = "2"
384+tester.doesTestOmp(mklNumThreads,ompNumThreads)
385+mklNumThreads = "4"
386+ompNumThreads = "2"
387+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
388+
389+prefix = "ch4_mndo"
390+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
391+-------------------------------------------
392+---------- Test of MNDO/HF ----------
393+-------------------------------------------
394+SECTION
395+\t\t\t>>> CH4 <<<
396+TITLE
397+mklNumThreads = "1"
398+ompNumThreads = "1"
399+tester.doesTestOmp(mklNumThreads,ompNumThreads)
400+mklNumThreads = "2"
401+ompNumThreads = "2"
402+tester.doesTestOmp(mklNumThreads,ompNumThreads)
403+mklNumThreads = "4"
404+ompNumThreads = "2"
405+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
406+
407+prefix = "c2h6_mndo"
408+tester = Tester.new(prefix, <<"TITLE")
409+\t\t\t>>> C2H6 <<<
410+TITLE
411+mklNumThreads = "1"
412+ompNumThreads = "1"
413+tester.doesTestOmp(mklNumThreads,ompNumThreads)
414+mklNumThreads = "2"
415+ompNumThreads = "2"
416+tester.doesTestOmp(mklNumThreads,ompNumThreads)
417+mklNumThreads = "4"
418+ompNumThreads = "2"
419+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
420+
421+prefix = "ch4_mndo_directCIS_singlet"
422+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
423+---------------------------------------------------
424+---------- Test of MNDO/CIS-singlet ---------
425+---------- Without Davidson for the CIS ---------
426+---------------------------------------------------
427+SECTION
428+\t\t\t>>> CH4 <<<
429+TITLE
430+mklNumThreads = "1"
431+ompNumThreads = "1"
432+tester.doesTestOmp(mklNumThreads,ompNumThreads)
433+mklNumThreads = "2"
434+ompNumThreads = "2"
435+tester.doesTestOmp(mklNumThreads,ompNumThreads)
436+mklNumThreads = "4"
437+ompNumThreads = "2"
438+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
439+
440+prefix = "c2h6_mndo_directCIS_singlet"
441+tester = Tester.new(prefix, <<"TITLE")
442+\t\t\t>>> C2H6 <<<
443+TITLE
444+mklNumThreads = "1"
445+ompNumThreads = "1"
446+tester.doesTestOmp(mklNumThreads,ompNumThreads)
447+mklNumThreads = "2"
448+ompNumThreads = "2"
449+tester.doesTestOmp(mklNumThreads,ompNumThreads)
450+mklNumThreads = "4"
451+ompNumThreads = "2"
452+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
453+
454+prefix = "ch4_mndo_davidsonCIS_singlet"
455+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
456+---------------------------------------------------
457+---------- Test of MNDO/CIS-singlet ---------
458+---------- With Davidson for the CIS ---------
459+---------------------------------------------------
460+SECTION
461+\t\t\t>>> CH4 <<<
462+TITLE
463+mklNumThreads = "1"
464+ompNumThreads = "1"
465+tester.doesTestOmp(mklNumThreads,ompNumThreads)
466+mklNumThreads = "2"
467+ompNumThreads = "2"
468+tester.doesTestOmp(mklNumThreads,ompNumThreads)
469+mklNumThreads = "4"
470+ompNumThreads = "2"
471+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
472+
473+prefix = "c2h6_mndo_davidsonCIS_singlet"
474+tester = Tester.new(prefix, <<"TITLE")
475+\t\t\t>>> C2H6 <<<
476+TITLE
477+mklNumThreads = "1"
478+ompNumThreads = "1"
479+tester.doesTestOmp(mklNumThreads,ompNumThreads)
480+mklNumThreads = "2"
481+ompNumThreads = "2"
482+tester.doesTestOmp(mklNumThreads,ompNumThreads)
483+mklNumThreads = "4"
484+ompNumThreads = "2"
485+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
486+
487+prefix = "c2h6_mndo_force"
488+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
489+------------------------------------------------
490+---------- Test of MNDO/HF-Force ------------
491+------------------------------------------------
492+SECTION
493+\t\t\t>>> C2H6 <<<
494+TITLE
495+mklNumThreads = "1"
496+ompNumThreads = "1"
497+tester.doesTestOmp(mklNumThreads,ompNumThreads)
498+mklNumThreads = "2"
499+ompNumThreads = "2"
500+tester.doesTestOmp(mklNumThreads,ompNumThreads)
501+mklNumThreads = "4"
502+ompNumThreads = "2"
503+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
504+
505+prefix = "c2h6_mndo_directCIS_singlet_force"
506+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
507+---------------------------------------------------
508+---------- Test of MNDO/CIS-singlet-force --------
509+---------- Without Davidson for the CIS --------
510+---------------------------------------------------
511+SECTION
512+\t\t\t>>> C2H6 <<<
513+TITLE
514+mklNumThreads = "1"
515+ompNumThreads = "1"
516+tester.doesTestOmp(mklNumThreads,ompNumThreads)
517+mklNumThreads = "2"
518+ompNumThreads = "2"
519+tester.doesTestOmp(mklNumThreads,ompNumThreads)
520+mklNumThreads = "4"
521+ompNumThreads = "2"
522+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
523+
524+prefix = "c2h6_mndo_davidsonCIS_singlet_force"
525+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
526+---------------------------------------------------
527+---------- Test of MNDO/CIS-singlet-force --------
528+---------- With Davidson for the CIS --------
529+---------------------------------------------------
530+SECTION
531+\t\t\t>>> C2H6 <<<
532+TITLE
533+mklNumThreads = "1"
534+ompNumThreads = "1"
535+tester.doesTestOmp(mklNumThreads,ompNumThreads)
536+mklNumThreads = "2"
537+ompNumThreads = "2"
538+tester.doesTestOmp(mklNumThreads,ompNumThreads)
539+mklNumThreads = "4"
540+ompNumThreads = "2"
541+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
542+
543+prefix = "ch4_am1"
544+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
545+-------------------------------------------
546+---------- Test of AM1/HF ------------
547+-------------------------------------------
548+SECTION
549+\t\t\t>>> CH4 <<<
550+TITLE
551+mklNumThreads = "1"
552+ompNumThreads = "1"
553+tester.doesTestOmp(mklNumThreads,ompNumThreads)
554+mklNumThreads = "2"
555+ompNumThreads = "2"
556+tester.doesTestOmp(mklNumThreads,ompNumThreads)
557+mklNumThreads = "4"
558+ompNumThreads = "2"
559+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
560+
561+prefix = "c2h6_am1"
562+tester = Tester.new(prefix, <<"TITLE")
563+\t\t\t>>> C2H6 <<<
564+TITLE
565+mklNumThreads = "1"
566+ompNumThreads = "1"
567+tester.doesTestOmp(mklNumThreads,ompNumThreads)
568+mklNumThreads = "2"
569+ompNumThreads = "2"
570+tester.doesTestOmp(mklNumThreads,ompNumThreads)
571+mklNumThreads = "4"
572+ompNumThreads = "2"
573+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
574+
575+prefix = "ch4_am1_directCIS_singlet"
576+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
577+---------------------------------------------------
578+---------- Test of AM1/CIS-singlet ---------
579+---------- Without Davidson for the CIS ---------
580+---------------------------------------------------
581+SECTION
582+\t\t\t>>> CH4 <<<
583+TITLE
584+mklNumThreads = "1"
585+ompNumThreads = "1"
586+tester.doesTestOmp(mklNumThreads,ompNumThreads)
587+mklNumThreads = "2"
588+ompNumThreads = "2"
589+tester.doesTestOmp(mklNumThreads,ompNumThreads)
590+mklNumThreads = "4"
591+ompNumThreads = "2"
592+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
593+
594+prefix = "c2h6_am1_directCIS_singlet"
595+tester = Tester.new(prefix, <<"TITLE")
596+\t\t\t>>> C2H6 <<<\n
597+TITLE
598+mklNumThreads = "1"
599+ompNumThreads = "1"
600+tester.doesTestOmp(mklNumThreads,ompNumThreads)
601+mklNumThreads = "2"
602+ompNumThreads = "2"
603+tester.doesTestOmp(mklNumThreads,ompNumThreads)
604+mklNumThreads = "4"
605+ompNumThreads = "2"
606+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
607+
608+prefix = "ch4_am1_davidsonCIS_singlet"
609+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
610+---------------------------------------------------
611+---------- Test of AM1/CIS-singlet ---------
612+---------- With Davidson for the CIS ---------
613+---------------------------------------------------
614+SECTION
615+\t\t\t>>> CH4 <<<
616+TITLE
617+mklNumThreads = "1"
618+ompNumThreads = "1"
619+tester.doesTestOmp(mklNumThreads,ompNumThreads)
620+mklNumThreads = "2"
621+ompNumThreads = "2"
622+tester.doesTestOmp(mklNumThreads,ompNumThreads)
623+mklNumThreads = "4"
624+ompNumThreads = "2"
625+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
626+
627+prefix = "c2h6_am1_davidsonCIS_singlet"
628+tester = Tester.new(prefix, <<"TITLE")
629+\t\t\t>>> C2H6 <<<
630+TITLE
631+mklNumThreads = "1"
632+ompNumThreads = "1"
633+tester.doesTestOmp(mklNumThreads,ompNumThreads)
634+mklNumThreads = "2"
635+ompNumThreads = "2"
636+tester.doesTestOmp(mklNumThreads,ompNumThreads)
637+mklNumThreads = "4"
638+ompNumThreads = "2"
639+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
640+
641+prefix = "c2h6_am1_force"
642+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
643+------------------------------------------------
644+---------- Test of AM1/HF-Force ------------
645+------------------------------------------------
646+SECTION
647+\t\t\t>>> C2H6 <<<
648+TITLE
649+mklNumThreads = "1"
650+ompNumThreads = "1"
651+tester.doesTestOmp(mklNumThreads,ompNumThreads)
652+mklNumThreads = "2"
653+ompNumThreads = "2"
654+tester.doesTestOmp(mklNumThreads,ompNumThreads)
655+mklNumThreads = "4"
656+ompNumThreads = "2"
657+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
658+
659+prefix = "c2h6_am1_directCIS_singlet_force"
660+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
661+---------------------------------------------------
662+---------- Test of AM1/CIS-singlet-force --------
663+---------- Without Davidson for the CIS --------
664+---------------------------------------------------
665+SECTION
666+\t\t\t>>> C2H6 <<<
667+TITLE
668+mklNumThreads = "1"
669+ompNumThreads = "1"
670+tester.doesTestOmp(mklNumThreads,ompNumThreads)
671+mklNumThreads = "2"
672+ompNumThreads = "2"
673+tester.doesTestOmp(mklNumThreads,ompNumThreads)
674+mklNumThreads = "4"
675+ompNumThreads = "2"
676+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
677+
678+prefix = "c2h6_am1_davidsonCIS_singlet_force"
679+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
680+---------------------------------------------------
681+---------- Test of AM1/CIS-singlet-force --------
682+---------- With Davidson for the CIS --------
683+---------------------------------------------------
684+SECTION
685+\t\t\t>>> C2H6 <<<
686+TITLE
687+mklNumThreads = "1"
688+ompNumThreads = "1"
689+tester.doesTestOmp(mklNumThreads,ompNumThreads)
690+mklNumThreads = "2"
691+ompNumThreads = "2"
692+tester.doesTestOmp(mklNumThreads,ompNumThreads)
693+mklNumThreads = "4"
694+ompNumThreads = "2"
695+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
696+
697+prefix = "ch4_pm3"
698+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
699+-------------------------------------------
700+---------- Test of PM3/HF ------------
701+-------------------------------------------
702+SECTION
703+\t\t\t>>> CH4 <<<
704+TITLE
705+mklNumThreads = "1"
706+ompNumThreads = "1"
707+tester.doesTestOmp(mklNumThreads,ompNumThreads)
708+mklNumThreads = "2"
709+ompNumThreads = "2"
710+tester.doesTestOmp(mklNumThreads,ompNumThreads)
711+mklNumThreads = "4"
712+ompNumThreads = "2"
713+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
714+
715+prefix = "c2h6_pm3"
716+tester = Tester.new(prefix, <<"TITLE")
717+\t\t\t>>> C2H6 <<<
718+TITLE
719+mklNumThreads = "1"
720+ompNumThreads = "1"
721+tester.doesTestOmp(mklNumThreads,ompNumThreads)
722+mklNumThreads = "2"
723+ompNumThreads = "2"
724+tester.doesTestOmp(mklNumThreads,ompNumThreads)
725+mklNumThreads = "4"
726+ompNumThreads = "2"
727+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
728+
729+prefix = "ch4_pm3_directCIS_singlet"
730+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
731+---------------------------------------------------
732+---------- Test of PM3/CIS-singlet ---------
733+---------- Without Davidson for the CIS ---------
734+---------------------------------------------------
735+SECTION
736+\t\t\t>>> CH4 <<<
737+TITLE
738+mklNumThreads = "1"
739+ompNumThreads = "1"
740+tester.doesTestOmp(mklNumThreads,ompNumThreads)
741+mklNumThreads = "2"
742+ompNumThreads = "2"
743+tester.doesTestOmp(mklNumThreads,ompNumThreads)
744+mklNumThreads = "4"
745+ompNumThreads = "2"
746+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
747+
748+prefix = "c2h6_pm3_directCIS_singlet"
749+tester = Tester.new(prefix, <<"TITLE")
750+\t\t\t>>> C2H6 <<<
751+TITLE
752+mklNumThreads = "1"
753+ompNumThreads = "1"
754+tester.doesTestOmp(mklNumThreads,ompNumThreads)
755+mklNumThreads = "2"
756+ompNumThreads = "2"
757+tester.doesTestOmp(mklNumThreads,ompNumThreads)
758+mklNumThreads = "4"
759+ompNumThreads = "2"
760+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
761+
762+prefix = "ch4_pm3_davidsonCIS_singlet"
763+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
764+---------------------------------------------------
765+---------- Test of PM3/CIS-singlet ---------
766+---------- With Davidson for the CIS ---------
767+---------------------------------------------------
768+SECTION
769+\t\t\t>>> CH4 <<<
770+TITLE
771+mklNumThreads = "1"
772+ompNumThreads = "1"
773+tester.doesTestOmp(mklNumThreads,ompNumThreads)
774+mklNumThreads = "2"
775+ompNumThreads = "2"
776+tester.doesTestOmp(mklNumThreads,ompNumThreads)
777+mklNumThreads = "4"
778+ompNumThreads = "2"
779+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
780+
781+prefix = "c2h6_pm3_davidsonCIS_singlet"
782+tester = Tester.new(prefix, <<"TITLE")
783+\t\t\t>>> C2H6 <<<\n
784+TITLE
785+mklNumThreads = "1"
786+ompNumThreads = "1"
787+tester.doesTestOmp(mklNumThreads,ompNumThreads)
788+mklNumThreads = "2"
789+ompNumThreads = "2"
790+tester.doesTestOmp(mklNumThreads,ompNumThreads)
791+mklNumThreads = "4"
792+ompNumThreads = "2"
793+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
794+
795+prefix = "c2h6_pm3_force"
796+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
797+------------------------------------------------
798+---------- Test of PM3/HF-Force --------------
799+------------------------------------------------
800+SECTION
801+\t\t\t>>> C2H6 <<<
802+TITLE
803+mklNumThreads = "1"
804+ompNumThreads = "1"
805+tester.doesTestOmp(mklNumThreads,ompNumThreads)
806+mklNumThreads = "2"
807+ompNumThreads = "2"
808+tester.doesTestOmp(mklNumThreads,ompNumThreads)
809+mklNumThreads = "4"
810+ompNumThreads = "2"
811+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
812+
813+prefix = "c2h6_pm3_directCIS_singlet_force"
814+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
815+---------------------------------------------------
816+---------- Test of PM3/CIS-singlet-force --------
817+---------- Without Davidson for the CIS --------
818+---------------------------------------------------
819+SECTION
820+\t\t\t>>> C2H6 <<<
821+TITLE
822+mklNumThreads = "1"
823+ompNumThreads = "1"
824+tester.doesTestOmp(mklNumThreads,ompNumThreads)
825+mklNumThreads = "2"
826+ompNumThreads = "2"
827+tester.doesTestOmp(mklNumThreads,ompNumThreads)
828+mklNumThreads = "4"
829+ompNumThreads = "2"
830+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
831+
832+prefix = "c2h6_pm3_davidsonCIS_singlet_force"
833+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
834+---------------------------------------------------
835+---------- Test of PM3/CIS-singlet-force --------
836+---------- With Davidson for the CIS --------
837+---------------------------------------------------
838+SECTION
839+\t\t\t>>> C2H6 <<<
840+TITLE
841+mklNumThreads = "1"
842+ompNumThreads = "1"
843+tester.doesTestOmp(mklNumThreads,ompNumThreads)
844+mklNumThreads = "2"
845+ompNumThreads = "2"
846+tester.doesTestOmp(mklNumThreads,ompNumThreads)
847+mklNumThreads = "4"
848+ompNumThreads = "2"
849+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
850+
851+prefix = "c2h6_pm3pddg"
852+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
853+-------------------------------------------
854+---------- Test of PM3/PDDG/HF ------------
855+-------------------------------------------
856+SECTION
857+\t\t\t>>> C2H6 <<<
858+TITLE
859+mklNumThreads = "1"
860+ompNumThreads = "1"
861+tester.doesTestOmp(mklNumThreads,ompNumThreads)
862+mklNumThreads = "2"
863+ompNumThreads = "2"
864+tester.doesTestOmp(mklNumThreads,ompNumThreads)
865+mklNumThreads = "4"
866+ompNumThreads = "2"
867+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
868+
869+prefix = "c2h6_pm3pddg_directCIS_singlet"
870+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
871+---------------------------------------------------
872+---------- Test of PM3/PDDG/CIS-singlet ---------
873+---------- Without Davidson for the CIS ---------
874+---------------------------------------------------
875+SECTION
876+\t\t\t>>> C2H6 <<<
877+TITLE
878+mklNumThreads = "1"
879+ompNumThreads = "1"
880+tester.doesTestOmp(mklNumThreads,ompNumThreads)
881+mklNumThreads = "2"
882+ompNumThreads = "2"
883+tester.doesTestOmp(mklNumThreads,ompNumThreads)
884+mklNumThreads = "4"
885+ompNumThreads = "2"
886+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
887+
888+prefix = "c2h6_pm3pddg_davidsonCIS_singlet"
889+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
890+---------------------------------------------------
891+---------- Test of PM3/PDDG/CIS-singlet ---------
892+---------- With Davidson for the CIS ---------
893+---------------------------------------------------
894+SECTION
895+\t\t\t>>> C2H6 <<<
896+TITLE
897+mklNumThreads = "1"
898+ompNumThreads = "1"
899+tester.doesTestOmp(mklNumThreads,ompNumThreads)
900+mklNumThreads = "2"
901+ompNumThreads = "2"
902+tester.doesTestOmp(mklNumThreads,ompNumThreads)
903+mklNumThreads = "4"
904+ompNumThreads = "2"
905+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
906+
907+prefix = "c2h6_pm3pddg_force"
908+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
909+------------------------------------------------
910+---------- Test of PM3/PDDG/HF-Force ---------
911+------------------------------------------------
912+SECTION
913+\t\t\t>>> C2H6 <<<
914+TITLE
915+mklNumThreads = "1"
916+ompNumThreads = "1"
917+tester.doesTestOmp(mklNumThreads,ompNumThreads)
918+mklNumThreads = "2"
919+ompNumThreads = "2"
920+tester.doesTestOmp(mklNumThreads,ompNumThreads)
921+mklNumThreads = "4"
922+ompNumThreads = "2"
923+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
924+
925+prefix = "c2h6_pm3pddg_directCIS_singlet_force"
926+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
927+---------------------------------------------------
928+--------- Test of PM3/PDDG/CIS-singlet-force ----
929+--------- Without Davidson for the CIS --------
930+---------------------------------------------------
931+SECTION
932+\t\t\t>>> C2H6 <<<
933+TITLE
934+mklNumThreads = "1"
935+ompNumThreads = "1"
936+tester.doesTestOmp(mklNumThreads,ompNumThreads)
937+mklNumThreads = "2"
938+ompNumThreads = "2"
939+tester.doesTestOmp(mklNumThreads,ompNumThreads)
940+mklNumThreads = "4"
941+ompNumThreads = "2"
942+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
943+
944+prefix = "c2h6_pm3pddg_davidsonCIS_singlet_force"
945+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
946+---------------------------------------------------
947+--------- Test of PM3/PDDG/CIS-singlet-force ----
948+--------- With Davidson for the CIS --------
949+---------------------------------------------------
950+SECTION
951+\t\t\t>>> C2H6 <<<
952+TITLE
953+mklNumThreads = "1"
954+ompNumThreads = "1"
955+tester.doesTestOmp(mklNumThreads,ompNumThreads)
956+mklNumThreads = "2"
957+ompNumThreads = "2"
958+tester.doesTestOmp(mklNumThreads,ompNumThreads)
959+mklNumThreads = "4"
960+ompNumThreads = "2"
961+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
962+
963+prefix = "c2h6_pm3pddg_opt_steepest"
964+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
965+------------------------------------------------
966+------ Test of PM3/PDDG/Steepest Descent ------
967+------------------------------------------------
968+SECTION
969+\t\t\t>>> C2H6 <<<\n
970+TITLE
971+mklNumThreads = "1"
972+ompNumThreads = "1"
973+tester.doesTestOmp(mklNumThreads,ompNumThreads)
974+mklNumThreads = "2"
975+ompNumThreads = "2"
976+tester.doesTestOmp(mklNumThreads,ompNumThreads)
977+mklNumThreads = "4"
978+ompNumThreads = "2"
979+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
980+
981+prefix = "c2h6_pm3pddg_opt_conjugate"
982+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
983+------------------------------------------------
984+---- Test of PM3/PDDG/Conjugate gradient ------
985+------------------------------------------------
986+SECTION
987+\t\t\t>>> C2H6 <<<
988+TITLE
989+mklNumThreads = "1"
990+ompNumThreads = "1"
991+tester.doesTestOmp(mklNumThreads,ompNumThreads)
992+mklNumThreads = "2"
993+ompNumThreads = "2"
994+tester.doesTestOmp(mklNumThreads,ompNumThreads)
995+mklNumThreads = "4"
996+ompNumThreads = "2"
997+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
998+
999+prefix = "c2h6_pm3pddg_opt_bfgs"
1000+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1001+------------------------------------------------
1002+------ Test of PM3/PDDG/BFGS ------------------
1003+------------------------------------------------
1004+SECTION
1005+\t\t\t>>> C2H6 <<<
1006+TITLE
1007+mklNumThreads = "1"
1008+ompNumThreads = "1"
1009+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1010+mklNumThreads = "2"
1011+ompNumThreads = "2"
1012+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1013+mklNumThreads = "4"
1014+ompNumThreads = "2"
1015+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
1016+
1017+prefix = "c2h6_pm3pddg_opt_gediis"
1018+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1019+------------------------------------------------
1020+------ Test of PM3/PDDG/GEDIIS ----------------
1021+------------------------------------------------
1022+SECTION
1023+\t\t\t>>> C2H6 <<<
1024+TITLE
1025+mklNumThreads = "1"
1026+ompNumThreads = "1"
1027+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1028+mklNumThreads = "2"
1029+ompNumThreads = "2"
1030+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1031+
1032+prefix = "c2h6_pm3_MC"
1033+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1034+---------------------------------------------------
1035+--------- Test of PM3/HF-MC ---------------------
1036+---------------------------------------------------
1037+SECTION
1038+\t\t\t>>> C2H6 <<<
1039+TITLE
1040+mklNumThreads = "1"
1041+ompNumThreads = "1"
1042+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1043+mklNumThreads = "2"
1044+ompNumThreads = "2"
1045+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1046+mklNumThreads = "4"
1047+ompNumThreads = "2"
1048+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
1049+
1050+prefix = "c2h6_pm3_directCIS_singlet_MC"
1051+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1052+---------------------------------------------------
1053+--------- Test of PM3/CIS-singlet-MC ----------
1054+--------- Without Davidson for the CIS ----------
1055+---------------------------------------------------
1056+SECTION
1057+\t\t\t>>> C2H6 <<<
1058+TITLE
1059+mklNumThreads = "1"
1060+ompNumThreads = "1"
1061+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1062+mklNumThreads = "2"
1063+ompNumThreads = "2"
1064+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1065+mklNumThreads = "4"
1066+ompNumThreads = "2"
1067+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
1068+
1069+prefix = "c2h6_pm3pddg_rpmd"
1070+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1071+------------------------------------------------
1072+---------- Test of PM3/PDDG/RPMD -------------
1073+------------------------------------------------
1074+SECTION
1075+\t\t\t>>> C2H6 <<<
1076+TITLE
1077+mklNumThreads = "1"
1078+ompNumThreads = "1"
1079+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1080+mklNumThreads = "2"
1081+ompNumThreads = "2"
1082+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1083+mklNumThreads = "4"
1084+ompNumThreads = "2"
1085+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
1086+
1087+prefix = "c2h6_pm3pddg_davidsonCIS_singlet_rpmd"
1088+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1089+---------------------------------------------------
1090+--------- Test of PM3/PDDG/CIS/RPMD ---------
1091+--------- With Davidson for the CIS ---------
1092+---------------------------------------------------
1093+SECTION
1094+\t\t\t>>> C2H6 <<<
1095+TITLE
1096+mklNumThreads = "1"
1097+ompNumThreads = "1"
1098+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1099+mklNumThreads = "2"
1100+ompNumThreads = "2"
1101+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1102+mklNumThreads = "4"
1103+ompNumThreads = "2"
1104+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
1105+
1106+prefix = "c2h6_pm3d"
1107+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1108+-------------------------------------------
1109+------------ Test of PM3-D/HF -------------
1110+-------------------------------------------
1111+SECTION
1112+\t\t\t>>> C2H6 <<<
1113+TITLE
1114+
1115+mklNumThreads = "1"
1116+ompNumThreads = "1"
1117+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1118+mklNumThreads = "2"
1119+ompNumThreads = "2"
1120+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1121+mklNumThreads = "4"
1122+ompNumThreads = "2"
1123+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
1124+
1125+prefix = "c2h6_pm3_vdw"
1126+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1127+---------------------------------------------------
1128+------ Test of vdw correction in PM3/HF ---------
1129+---------------------------------------------------
1130+SECTION
1131+\t\t\t>>> C2H6 <<<
1132+TITLE
1133+mklNumThreads = "1"
1134+ompNumThreads = "1"
1135+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1136+mklNumThreads = "2"
1137+ompNumThreads = "2"
1138+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1139+mklNumThreads = "4"
1140+ompNumThreads = "2"
1141+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
1142+
1143+prefix = "c2h6_pm3_vdw_force"
1144+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1145+---------------------------------------------------
1146+---- Test of vdw correction in PM3/HF-Force -----
1147+---------------------------------------------------
1148+SECTION
1149+\t\t\t>>> C2H6 <<<
1150+TITLE
1151+mklNumThreads = "1"
1152+ompNumThreads = "1"
1153+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1154+mklNumThreads = "2"
1155+ompNumThreads = "2"
1156+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1157+mklNumThreads = "4"
1158+ompNumThreads = "2"
1159+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
1160+
1161+prefix = "c2h6_pm3_vdw_MC"
1162+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1163+---------------------------------------------------
1164+------ Test of vdw correction in PM3/HF-MC ------
1165+---------------------------------------------------
1166+SECTION
1167+\t\t\t>>> C2H6 <<<
1168+TITLE
1169+mklNumThreads = "1"
1170+ompNumThreads = "1"
1171+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1172+mklNumThreads = "2"
1173+ompNumThreads = "2"
1174+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1175+mklNumThreads = "4"
1176+ompNumThreads = "2"
1177+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
1178+
1179+prefix = "c2h6-h2o-cluster_pm3pddg_freq"
1180+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1181+-------------------------------------------
1182+---- Test of PM3/PDDG/HF/FREQUENCIES ---
1183+-------------------------------------------
1184+SECTION
1185+\t\t\t>>> C2H6 H2O cluster <<<
1186+TITLE
1187+mklNumThreads = "1"
1188+ompNumThreads = "1"
1189+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1190+mklNumThreads = "2"
1191+ompNumThreads = "2"
1192+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1193+mklNumThreads = "4"
1194+ompNumThreads = "2"
1195+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
1196+
1197+prefix = "c2h6-nh3-cluster_pm3d_freq"
1198+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1199+-------------------------------------------
1200+----- Test of PM3-D/HF/FREQUENCIES ----
1201+-------------------------------------------
1202+SECTION
1203+\t\t\t>>> C2H6 NH3 cluster <<<
1204+TITLE
1205+mklNumThreads = "1"
1206+ompNumThreads = "1"
1207+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1208+mklNumThreads = "2"
1209+ompNumThreads = "2"
1210+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1211+mklNumThreads = "4"
1212+ompNumThreads = "2"
1213+#tester.doesTestMpi(mklNumThreads,ompNumThreads)
1214+
1215+prefix = "c2h6_mndo_directCIS_singlet_force_heap_limit"
1216+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1217+---------------------------------------------------
1218+----------- Test of limitation of Heap ----------
1219+---------------------------------------------------
1220+SECTION
1221+\t\t\t>>> C2H6 <<<
1222+TITLE
1223+mklNumThreads = "1"
1224+ompNumThreads = "1"
1225+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1226+mklNumThreads = "2"
1227+ompNumThreads = "2"
1228+tester.doesTestOmp(mklNumThreads,ompNumThreads)
1229+
1230+
1231+
1232+
1233+system("rm -rf temp.dat")
--- /dev/null
+++ b/test/Test_Of_MolDS_p2.rb
@@ -0,0 +1,1233 @@
1+#!/usr/bin/env ruby
2+#//************************************************************************//
3+#// Copyright (C) 2011-2012 Mikiya Fujii //
4+#// Copyright (C) 2012-2013 Katsuhiko Nishimra //
5+#// //
6+#// This file is part of MolDS. //
7+#// //
8+#// MolDS is free software: you can redistribute it and/or modify //
9+#// it under the terms of the GNU General Public License as published by //
10+#// the Free Software Foundation, either version 3 of the License, or //
11+#// (at your option) any later version. //
12+#// //
13+#// MolDS is distributed in the hope that it will be useful, //
14+#// but WITHOUT ANY WARRANTY; without even the implied warranty of //
15+#// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
16+#// GNU General Public License for more details. //
17+#// //
18+#// You should have received a copy of the GNU General Public License //
19+#// along with MolDS. If not, see <http://www.gnu.org/licenses/>. //
20+#//************************************************************************//
21+
22+Dir.chdir(File.dirname(__FILE__))
23+
24+MolDSBin = "../src/MolDS.out".freeze
25+
26+module AllInclude
27+ def include? *arg
28+ true
29+ end
30+end
31+
32+if ARGV.empty?
33+ Tests = Object.new.extend(AllInclude)
34+else
35+ Tests = ARGV.collect do |s|
36+ File.basename(s, '.*')
37+ end.freeze
38+end
39+
40+class Tester
41+ @@surfixDat = ".dat"
42+ @@surfixInp = ".in"
43+ @@tempFile = "temp.dat"
44+ @@moldsBin = MolDSBin
45+ @@command = "command: "
46+ @@mpiCommand = "mpiexec -n "
47+ @@mpiProcesses = "2"
48+ @@deleteDiff = " | gawk '{if(($2!=\"SCF\")&&($3!=\"iter\")){print $0}}' | gawk '{if(($4!=\"time:\")){print $0}}' | gawk '{if(($3!=\"Elapsed\")){print $0}}' | gawk '{if(($2!=\"Elapsed\")){print $0}}' | gawk '{if(($3!=\"Welcome\")){print $0}}' | gawk '{if(($7!=\"residual\")){print $0}}' | gawk '{if(($3!=\"mode(nmw):\") ){print $0}}' | gawk '{if( !(($3==\"mode(mw):\")&&($4<6)) ){print $0}}'"
49+ @@printed_section = []
50+ def doesTestOmp(mklNumThreads, ompNumThreads)
51+ return unless should_run?
52+ ENV["MKL_NUM_THREADS"] = mklNumThreads
53+ ENV["OMP_NUM_THREADS"] = ompNumThreads
54+ puts <<EOS % [1,ENV["MKL_NUM_THREADS"],ENV["OMP_NUM_THREADS"]]
55+MPI processes: %s
56+MKL_NUM_THREADS:%s
57+OMP_NUM_THREADS:%s
58+EOS
59+ puts @@command + @moldsCommand
60+ system(@moldsCommand)
61+ puts @@command + @diffCommand + @@deleteDiff
62+ system(@diffCommand + @@deleteDiff)
63+ puts '','',''
64+ end
65+ def doesTestMpi(mklNumThreads, ompNumThreads)
66+ return unless should_run?
67+ ENV["MKL_NUM_THREADS"] = mklNumThreads
68+ ENV["OMP_NUM_THREADS"] = ompNumThreads
69+ puts <<EOS % [@@mpiProcesses,ENV["MKL_NUM_THREADS"],ENV["OMP_NUM_THREADS"]]
70+MPI processes: %s
71+MKL_NUM_THREADS:%s
72+OMP_NUM_THREADS:%s
73+EOS
74+ puts @@command + @moldsCommandMPI
75+ system(@moldsCommandMPI)
76+ puts @@command + @diffCommand + @@deleteDiff
77+ system(@diffCommand + @@deleteDiff)
78+ puts '','',''
79+ end
80+ #def initialize(prefix, section=nil, title)
81+ #Old ruby workaround.
82+ #Old versioned ruby accept default values for only last arguments.
83+ def initialize(prefix, section, title=nil)
84+ #So swap arguments if section is ommitted.
85+ if title.nil?
86+ section,title = title,section
87+ end
88+ @prefix = prefix
89+ @inputFile = prefix + @@surfixInp
90+ @outputFile = prefix + @@surfixDat
91+ @moldsCommand = @@moldsBin + " < " + @inputFile + " > " + @@tempFile
92+ @moldsCommandMPI = @@mpiCommand + @@mpiProcesses + " " + @@moldsBin + " " + @inputFile + " > " + @@tempFile
93+ @diffCommand = "diff " + @outputFile + " " + @@tempFile
94+ @title = title
95+ # Update section title if given, otherwise reuse previous one.
96+ @@section = section unless section.nil?
97+ print_title
98+ end
99+
100+ private
101+ def should_run?
102+ @should ||= Tests.include?(@prefix)
103+ end
104+
105+ def print_title
106+ return unless should_run?
107+ unless @@printed_section.include?(@@section)
108+ @@printed_section << @@section
109+ puts @@section,''
110+ end
111+ puts @title, ''
112+ end
113+end
114+
115+puts <<EOS
116+
117+*****************************************
118+*** ***
119+*** ***
120+*** Start Test for MolDS ***
121+*** ***
122+*** Powered by Ruby ***
123+*****************************************
124+EOS
125+
126+puts 'MD5 sum of the MolDS.out to be tested:'
127+system "md5sum #{MolDSBin}"
128+puts '',''
129+
130+prefix = "FNC1_principal"
131+tester = Tester.new(prefix, <<"SECTION",<<"TITLE")
132+---------------------------------------------------
133+----------- Test of principal axes --------------
134+---------------------------------------------------
135+SECTION
136+\t\t\t>>> F8BT <<<
137+TITLE
138+mklNumThreads = "1"
139+ompNumThreads = "1"
140+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
141+
142+prefix = "FNC1_rot120"
143+tester = Tester.new(prefix, <<"SECTION",<<"TITLE")
144+---------------------------------------------------
145+----------- Test of rotate ----------------------
146+---------------------------------------------------
147+SECTION
148+\t\t\t>>> F8BT <<<
149+TITLE
150+mklNumThreads = "1"
151+ompNumThreads = "1"
152+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
153+
154+prefix = "FNC1_translate"
155+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
156+---------------------------------------------------
157+----------- Test of translate -------------------
158+---------------------------------------------------
159+SECTION
160+\t\t\t>>> F8BT <<<
161+TITLE
162+mklNumThreads = "1"
163+ompNumThreads = "1"
164+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
165+
166+prefix = "ch4_cndo2"
167+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
168+-------------------------------------------
169+---------- Test of CNDO2/HF ---------
170+-------------------------------------------
171+SECTION
172+\t\t\t>>> CH4 <<<
173+TITLE
174+mklNumThreads = "1"
175+ompNumThreads = "1"
176+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
177+mklNumThreads = "2"
178+ompNumThreads = "2"
179+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
180+mklNumThreads = "4"
181+ompNumThreads = "2"
182+tester.doesTestMpi(mklNumThreads,ompNumThreads)
183+
184+prefix = "c2h6_cndo2"
185+tester = Tester.new(prefix, <<"TITLE")
186+\t\t\t>>> C2H6 <<<
187+TITLE
188+mklNumThreads = "1"
189+ompNumThreads = "1"
190+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
191+mklNumThreads = "2"
192+ompNumThreads = "2"
193+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
194+mklNumThreads = "4"
195+ompNumThreads = "2"
196+tester.doesTestMpi(mklNumThreads,ompNumThreads)
197+
198+prefix = "h2s_cndo2"
199+tester = Tester.new(prefix, <<"TITLE")
200+\t\t\t>>> H2S <<<
201+TITLE
202+mklNumThreads = "1"
203+ompNumThreads = "1"
204+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
205+mklNumThreads = "2"
206+ompNumThreads = "2"
207+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
208+mklNumThreads = "4"
209+ompNumThreads = "2"
210+tester.doesTestMpi(mklNumThreads,ompNumThreads)
211+
212+prefix = "ch4_indo"
213+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
214+-------------------------------------------
215+---------- Test of INDO/HF -----------
216+-------------------------------------------
217+SECTION
218+\t\t\t>>> CH4 <<<
219+TITLE
220+mklNumThreads = "1"
221+ompNumThreads = "1"
222+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
223+mklNumThreads = "2"
224+ompNumThreads = "2"
225+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
226+mklNumThreads = "4"
227+ompNumThreads = "2"
228+tester.doesTestMpi(mklNumThreads,ompNumThreads)
229+
230+prefix = "c2h6_indo"
231+tester = Tester.new(prefix, <<"TITLE")
232+\t\t\t>>> C2H6 <<<
233+TITLE
234+mklNumThreads = "1"
235+ompNumThreads = "1"
236+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
237+mklNumThreads = "2"
238+ompNumThreads = "2"
239+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
240+mklNumThreads = "4"
241+ompNumThreads = "2"
242+tester.doesTestMpi(mklNumThreads,ompNumThreads)
243+
244+prefix = "ch4_zindos_directCIS_singlet"
245+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
246+---------------------------------------------------
247+---------- Test of ZINDO/CIS-singlet ---------
248+---------- Without Davidson for the CIS ---------
249+---------------------------------------------------
250+SECTION
251+\t\t\t>>> CH4 <<<
252+TITLE
253+mklNumThreads = "1"
254+ompNumThreads = "1"
255+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
256+mklNumThreads = "2"
257+ompNumThreads = "2"
258+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
259+mklNumThreads = "4"
260+ompNumThreads = "2"
261+tester.doesTestMpi(mklNumThreads,ompNumThreads)
262+
263+prefix = "c2h6_zindos_directCIS_singlet"
264+tester = Tester.new(prefix, <<"TITLE")
265+\t\t\t>>> C2H6 <<<
266+TITLE
267+mklNumThreads = "1"
268+ompNumThreads = "1"
269+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
270+mklNumThreads = "2"
271+ompNumThreads = "2"
272+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
273+mklNumThreads = "4"
274+ompNumThreads = "2"
275+tester.doesTestMpi(mklNumThreads,ompNumThreads)
276+
277+prefix = "h2s_zindos_directCIS_singlet"
278+tester = Tester.new(prefix, <<"TITLE")
279+\t\t\t>>> H2S <<<
280+TITLE
281+mklNumThreads = "1"
282+ompNumThreads = "1"
283+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
284+mklNumThreads = "2"
285+ompNumThreads = "2"
286+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
287+mklNumThreads = "4"
288+ompNumThreads = "2"
289+tester.doesTestMpi(mklNumThreads,ompNumThreads)
290+
291+prefix = "h2o_zindos_directCIS_singlet"
292+tester = Tester.new(prefix, <<"TITLE")
293+\t\t\t>>> H2O <<<
294+TITLE
295+mklNumThreads = "1"
296+ompNumThreads = "1"
297+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
298+mklNumThreads = "2"
299+ompNumThreads = "2"
300+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
301+mklNumThreads = "4"
302+ompNumThreads = "2"
303+tester.doesTestMpi(mklNumThreads,ompNumThreads)
304+
305+prefix = "ch4_zindos_davidsonCIS_singlet"
306+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
307+------------------------------------------------
308+---------- Test of ZINDO/CIS-singlet ---------
309+---------- With Davidson for the CIS ---------
310+------------------------------------------------
311+SECTION
312+\t\t\t>>> CH4 <<<
313+TITLE
314+mklNumThreads = "1"
315+ompNumThreads = "1"
316+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
317+mklNumThreads = "2"
318+ompNumThreads = "2"
319+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
320+mklNumThreads = "4"
321+ompNumThreads = "2"
322+tester.doesTestMpi(mklNumThreads,ompNumThreads)
323+
324+prefix = "c2h6_zindos_davidsonCIS_singlet"
325+tester = Tester.new(prefix, <<"TITLE")
326+\t\t\t>>> C2H6 <<<
327+TITLE
328+mklNumThreads = "1"
329+ompNumThreads = "1"
330+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
331+mklNumThreads = "2"
332+ompNumThreads = "2"
333+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
334+mklNumThreads = "4"
335+ompNumThreads = "2"
336+tester.doesTestMpi(mklNumThreads,ompNumThreads)
337+
338+prefix = "h2s_zindos_davidsonCIS_singlet"
339+tester = Tester.new(prefix, <<"TITLE")
340+\t\t\t>>> H2S <<<
341+TITLE
342+mklNumThreads = "1"
343+ompNumThreads = "1"
344+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
345+mklNumThreads = "2"
346+ompNumThreads = "2"
347+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
348+mklNumThreads = "4"
349+ompNumThreads = "2"
350+tester.doesTestMpi(mklNumThreads,ompNumThreads)
351+
352+prefix = "c2h6_zindos_force"
353+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
354+------------------------------------------------
355+---------- Test of ZINDO/HF-Force ------------
356+------------------------------------------------
357+SECTION
358+\t\t\t>>> C2H6 <<<
359+TITLE
360+mklNumThreads = "1"
361+ompNumThreads = "1"
362+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
363+mklNumThreads = "2"
364+ompNumThreads = "2"
365+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
366+mklNumThreads = "4"
367+ompNumThreads = "2"
368+tester.doesTestMpi(mklNumThreads,ompNumThreads)
369+
370+prefix = "c2h6_zindos_directCIS_singlet_force"
371+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
372+---------------------------------------------------
373+---------- Test of ZINDO/CIS-singlet-force --------
374+---------- Without Davidson for the CIS --------
375+---------------------------------------------------
376+SECTION
377+\t\t\t>>> C2H6 <<<
378+TITLE
379+mklNumThreads = "1"
380+ompNumThreads = "1"
381+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
382+mklNumThreads = "2"
383+ompNumThreads = "2"
384+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
385+mklNumThreads = "4"
386+ompNumThreads = "2"
387+tester.doesTestMpi(mklNumThreads,ompNumThreads)
388+
389+prefix = "ch4_mndo"
390+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
391+-------------------------------------------
392+---------- Test of MNDO/HF ----------
393+-------------------------------------------
394+SECTION
395+\t\t\t>>> CH4 <<<
396+TITLE
397+mklNumThreads = "1"
398+ompNumThreads = "1"
399+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
400+mklNumThreads = "2"
401+ompNumThreads = "2"
402+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
403+mklNumThreads = "4"
404+ompNumThreads = "2"
405+tester.doesTestMpi(mklNumThreads,ompNumThreads)
406+
407+prefix = "c2h6_mndo"
408+tester = Tester.new(prefix, <<"TITLE")
409+\t\t\t>>> C2H6 <<<
410+TITLE
411+mklNumThreads = "1"
412+ompNumThreads = "1"
413+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
414+mklNumThreads = "2"
415+ompNumThreads = "2"
416+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
417+mklNumThreads = "4"
418+ompNumThreads = "2"
419+tester.doesTestMpi(mklNumThreads,ompNumThreads)
420+
421+prefix = "ch4_mndo_directCIS_singlet"
422+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
423+---------------------------------------------------
424+---------- Test of MNDO/CIS-singlet ---------
425+---------- Without Davidson for the CIS ---------
426+---------------------------------------------------
427+SECTION
428+\t\t\t>>> CH4 <<<
429+TITLE
430+mklNumThreads = "1"
431+ompNumThreads = "1"
432+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
433+mklNumThreads = "2"
434+ompNumThreads = "2"
435+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
436+mklNumThreads = "4"
437+ompNumThreads = "2"
438+tester.doesTestMpi(mklNumThreads,ompNumThreads)
439+
440+prefix = "c2h6_mndo_directCIS_singlet"
441+tester = Tester.new(prefix, <<"TITLE")
442+\t\t\t>>> C2H6 <<<
443+TITLE
444+mklNumThreads = "1"
445+ompNumThreads = "1"
446+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
447+mklNumThreads = "2"
448+ompNumThreads = "2"
449+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
450+mklNumThreads = "4"
451+ompNumThreads = "2"
452+tester.doesTestMpi(mklNumThreads,ompNumThreads)
453+
454+prefix = "ch4_mndo_davidsonCIS_singlet"
455+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
456+---------------------------------------------------
457+---------- Test of MNDO/CIS-singlet ---------
458+---------- With Davidson for the CIS ---------
459+---------------------------------------------------
460+SECTION
461+\t\t\t>>> CH4 <<<
462+TITLE
463+mklNumThreads = "1"
464+ompNumThreads = "1"
465+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
466+mklNumThreads = "2"
467+ompNumThreads = "2"
468+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
469+mklNumThreads = "4"
470+ompNumThreads = "2"
471+tester.doesTestMpi(mklNumThreads,ompNumThreads)
472+
473+prefix = "c2h6_mndo_davidsonCIS_singlet"
474+tester = Tester.new(prefix, <<"TITLE")
475+\t\t\t>>> C2H6 <<<
476+TITLE
477+mklNumThreads = "1"
478+ompNumThreads = "1"
479+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
480+mklNumThreads = "2"
481+ompNumThreads = "2"
482+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
483+mklNumThreads = "4"
484+ompNumThreads = "2"
485+tester.doesTestMpi(mklNumThreads,ompNumThreads)
486+
487+prefix = "c2h6_mndo_force"
488+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
489+------------------------------------------------
490+---------- Test of MNDO/HF-Force ------------
491+------------------------------------------------
492+SECTION
493+\t\t\t>>> C2H6 <<<
494+TITLE
495+mklNumThreads = "1"
496+ompNumThreads = "1"
497+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
498+mklNumThreads = "2"
499+ompNumThreads = "2"
500+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
501+mklNumThreads = "4"
502+ompNumThreads = "2"
503+tester.doesTestMpi(mklNumThreads,ompNumThreads)
504+
505+prefix = "c2h6_mndo_directCIS_singlet_force"
506+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
507+---------------------------------------------------
508+---------- Test of MNDO/CIS-singlet-force --------
509+---------- Without Davidson for the CIS --------
510+---------------------------------------------------
511+SECTION
512+\t\t\t>>> C2H6 <<<
513+TITLE
514+mklNumThreads = "1"
515+ompNumThreads = "1"
516+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
517+mklNumThreads = "2"
518+ompNumThreads = "2"
519+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
520+mklNumThreads = "4"
521+ompNumThreads = "2"
522+tester.doesTestMpi(mklNumThreads,ompNumThreads)
523+
524+prefix = "c2h6_mndo_davidsonCIS_singlet_force"
525+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
526+---------------------------------------------------
527+---------- Test of MNDO/CIS-singlet-force --------
528+---------- With Davidson for the CIS --------
529+---------------------------------------------------
530+SECTION
531+\t\t\t>>> C2H6 <<<
532+TITLE
533+mklNumThreads = "1"
534+ompNumThreads = "1"
535+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
536+mklNumThreads = "2"
537+ompNumThreads = "2"
538+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
539+mklNumThreads = "4"
540+ompNumThreads = "2"
541+tester.doesTestMpi(mklNumThreads,ompNumThreads)
542+
543+prefix = "ch4_am1"
544+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
545+-------------------------------------------
546+---------- Test of AM1/HF ------------
547+-------------------------------------------
548+SECTION
549+\t\t\t>>> CH4 <<<
550+TITLE
551+mklNumThreads = "1"
552+ompNumThreads = "1"
553+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
554+mklNumThreads = "2"
555+ompNumThreads = "2"
556+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
557+mklNumThreads = "4"
558+ompNumThreads = "2"
559+tester.doesTestMpi(mklNumThreads,ompNumThreads)
560+
561+prefix = "c2h6_am1"
562+tester = Tester.new(prefix, <<"TITLE")
563+\t\t\t>>> C2H6 <<<
564+TITLE
565+mklNumThreads = "1"
566+ompNumThreads = "1"
567+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
568+mklNumThreads = "2"
569+ompNumThreads = "2"
570+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
571+mklNumThreads = "4"
572+ompNumThreads = "2"
573+tester.doesTestMpi(mklNumThreads,ompNumThreads)
574+
575+prefix = "ch4_am1_directCIS_singlet"
576+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
577+---------------------------------------------------
578+---------- Test of AM1/CIS-singlet ---------
579+---------- Without Davidson for the CIS ---------
580+---------------------------------------------------
581+SECTION
582+\t\t\t>>> CH4 <<<
583+TITLE
584+mklNumThreads = "1"
585+ompNumThreads = "1"
586+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
587+mklNumThreads = "2"
588+ompNumThreads = "2"
589+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
590+mklNumThreads = "4"
591+ompNumThreads = "2"
592+tester.doesTestMpi(mklNumThreads,ompNumThreads)
593+
594+prefix = "c2h6_am1_directCIS_singlet"
595+tester = Tester.new(prefix, <<"TITLE")
596+\t\t\t>>> C2H6 <<<\n
597+TITLE
598+mklNumThreads = "1"
599+ompNumThreads = "1"
600+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
601+mklNumThreads = "2"
602+ompNumThreads = "2"
603+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
604+mklNumThreads = "4"
605+ompNumThreads = "2"
606+tester.doesTestMpi(mklNumThreads,ompNumThreads)
607+
608+prefix = "ch4_am1_davidsonCIS_singlet"
609+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
610+---------------------------------------------------
611+---------- Test of AM1/CIS-singlet ---------
612+---------- With Davidson for the CIS ---------
613+---------------------------------------------------
614+SECTION
615+\t\t\t>>> CH4 <<<
616+TITLE
617+mklNumThreads = "1"
618+ompNumThreads = "1"
619+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
620+mklNumThreads = "2"
621+ompNumThreads = "2"
622+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
623+mklNumThreads = "4"
624+ompNumThreads = "2"
625+tester.doesTestMpi(mklNumThreads,ompNumThreads)
626+
627+prefix = "c2h6_am1_davidsonCIS_singlet"
628+tester = Tester.new(prefix, <<"TITLE")
629+\t\t\t>>> C2H6 <<<
630+TITLE
631+mklNumThreads = "1"
632+ompNumThreads = "1"
633+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
634+mklNumThreads = "2"
635+ompNumThreads = "2"
636+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
637+mklNumThreads = "4"
638+ompNumThreads = "2"
639+tester.doesTestMpi(mklNumThreads,ompNumThreads)
640+
641+prefix = "c2h6_am1_force"
642+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
643+------------------------------------------------
644+---------- Test of AM1/HF-Force ------------
645+------------------------------------------------
646+SECTION
647+\t\t\t>>> C2H6 <<<
648+TITLE
649+mklNumThreads = "1"
650+ompNumThreads = "1"
651+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
652+mklNumThreads = "2"
653+ompNumThreads = "2"
654+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
655+mklNumThreads = "4"
656+ompNumThreads = "2"
657+tester.doesTestMpi(mklNumThreads,ompNumThreads)
658+
659+prefix = "c2h6_am1_directCIS_singlet_force"
660+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
661+---------------------------------------------------
662+---------- Test of AM1/CIS-singlet-force --------
663+---------- Without Davidson for the CIS --------
664+---------------------------------------------------
665+SECTION
666+\t\t\t>>> C2H6 <<<
667+TITLE
668+mklNumThreads = "1"
669+ompNumThreads = "1"
670+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
671+mklNumThreads = "2"
672+ompNumThreads = "2"
673+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
674+mklNumThreads = "4"
675+ompNumThreads = "2"
676+tester.doesTestMpi(mklNumThreads,ompNumThreads)
677+
678+prefix = "c2h6_am1_davidsonCIS_singlet_force"
679+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
680+---------------------------------------------------
681+---------- Test of AM1/CIS-singlet-force --------
682+---------- With Davidson for the CIS --------
683+---------------------------------------------------
684+SECTION
685+\t\t\t>>> C2H6 <<<
686+TITLE
687+mklNumThreads = "1"
688+ompNumThreads = "1"
689+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
690+mklNumThreads = "2"
691+ompNumThreads = "2"
692+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
693+mklNumThreads = "4"
694+ompNumThreads = "2"
695+tester.doesTestMpi(mklNumThreads,ompNumThreads)
696+
697+prefix = "ch4_pm3"
698+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
699+-------------------------------------------
700+---------- Test of PM3/HF ------------
701+-------------------------------------------
702+SECTION
703+\t\t\t>>> CH4 <<<
704+TITLE
705+mklNumThreads = "1"
706+ompNumThreads = "1"
707+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
708+mklNumThreads = "2"
709+ompNumThreads = "2"
710+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
711+mklNumThreads = "4"
712+ompNumThreads = "2"
713+tester.doesTestMpi(mklNumThreads,ompNumThreads)
714+
715+prefix = "c2h6_pm3"
716+tester = Tester.new(prefix, <<"TITLE")
717+\t\t\t>>> C2H6 <<<
718+TITLE
719+mklNumThreads = "1"
720+ompNumThreads = "1"
721+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
722+mklNumThreads = "2"
723+ompNumThreads = "2"
724+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
725+mklNumThreads = "4"
726+ompNumThreads = "2"
727+tester.doesTestMpi(mklNumThreads,ompNumThreads)
728+
729+prefix = "ch4_pm3_directCIS_singlet"
730+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
731+---------------------------------------------------
732+---------- Test of PM3/CIS-singlet ---------
733+---------- Without Davidson for the CIS ---------
734+---------------------------------------------------
735+SECTION
736+\t\t\t>>> CH4 <<<
737+TITLE
738+mklNumThreads = "1"
739+ompNumThreads = "1"
740+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
741+mklNumThreads = "2"
742+ompNumThreads = "2"
743+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
744+mklNumThreads = "4"
745+ompNumThreads = "2"
746+tester.doesTestMpi(mklNumThreads,ompNumThreads)
747+
748+prefix = "c2h6_pm3_directCIS_singlet"
749+tester = Tester.new(prefix, <<"TITLE")
750+\t\t\t>>> C2H6 <<<
751+TITLE
752+mklNumThreads = "1"
753+ompNumThreads = "1"
754+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
755+mklNumThreads = "2"
756+ompNumThreads = "2"
757+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
758+mklNumThreads = "4"
759+ompNumThreads = "2"
760+tester.doesTestMpi(mklNumThreads,ompNumThreads)
761+
762+prefix = "ch4_pm3_davidsonCIS_singlet"
763+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
764+---------------------------------------------------
765+---------- Test of PM3/CIS-singlet ---------
766+---------- With Davidson for the CIS ---------
767+---------------------------------------------------
768+SECTION
769+\t\t\t>>> CH4 <<<
770+TITLE
771+mklNumThreads = "1"
772+ompNumThreads = "1"
773+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
774+mklNumThreads = "2"
775+ompNumThreads = "2"
776+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
777+mklNumThreads = "4"
778+ompNumThreads = "2"
779+tester.doesTestMpi(mklNumThreads,ompNumThreads)
780+
781+prefix = "c2h6_pm3_davidsonCIS_singlet"
782+tester = Tester.new(prefix, <<"TITLE")
783+\t\t\t>>> C2H6 <<<\n
784+TITLE
785+mklNumThreads = "1"
786+ompNumThreads = "1"
787+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
788+mklNumThreads = "2"
789+ompNumThreads = "2"
790+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
791+mklNumThreads = "4"
792+ompNumThreads = "2"
793+tester.doesTestMpi(mklNumThreads,ompNumThreads)
794+
795+prefix = "c2h6_pm3_force"
796+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
797+------------------------------------------------
798+---------- Test of PM3/HF-Force --------------
799+------------------------------------------------
800+SECTION
801+\t\t\t>>> C2H6 <<<
802+TITLE
803+mklNumThreads = "1"
804+ompNumThreads = "1"
805+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
806+mklNumThreads = "2"
807+ompNumThreads = "2"
808+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
809+mklNumThreads = "4"
810+ompNumThreads = "2"
811+tester.doesTestMpi(mklNumThreads,ompNumThreads)
812+
813+prefix = "c2h6_pm3_directCIS_singlet_force"
814+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
815+---------------------------------------------------
816+---------- Test of PM3/CIS-singlet-force --------
817+---------- Without Davidson for the CIS --------
818+---------------------------------------------------
819+SECTION
820+\t\t\t>>> C2H6 <<<
821+TITLE
822+mklNumThreads = "1"
823+ompNumThreads = "1"
824+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
825+mklNumThreads = "2"
826+ompNumThreads = "2"
827+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
828+mklNumThreads = "4"
829+ompNumThreads = "2"
830+tester.doesTestMpi(mklNumThreads,ompNumThreads)
831+
832+prefix = "c2h6_pm3_davidsonCIS_singlet_force"
833+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
834+---------------------------------------------------
835+---------- Test of PM3/CIS-singlet-force --------
836+---------- With Davidson for the CIS --------
837+---------------------------------------------------
838+SECTION
839+\t\t\t>>> C2H6 <<<
840+TITLE
841+mklNumThreads = "1"
842+ompNumThreads = "1"
843+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
844+mklNumThreads = "2"
845+ompNumThreads = "2"
846+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
847+mklNumThreads = "4"
848+ompNumThreads = "2"
849+tester.doesTestMpi(mklNumThreads,ompNumThreads)
850+
851+prefix = "c2h6_pm3pddg"
852+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
853+-------------------------------------------
854+---------- Test of PM3/PDDG/HF ------------
855+-------------------------------------------
856+SECTION
857+\t\t\t>>> C2H6 <<<
858+TITLE
859+mklNumThreads = "1"
860+ompNumThreads = "1"
861+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
862+mklNumThreads = "2"
863+ompNumThreads = "2"
864+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
865+mklNumThreads = "4"
866+ompNumThreads = "2"
867+tester.doesTestMpi(mklNumThreads,ompNumThreads)
868+
869+prefix = "c2h6_pm3pddg_directCIS_singlet"
870+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
871+---------------------------------------------------
872+---------- Test of PM3/PDDG/CIS-singlet ---------
873+---------- Without Davidson for the CIS ---------
874+---------------------------------------------------
875+SECTION
876+\t\t\t>>> C2H6 <<<
877+TITLE
878+mklNumThreads = "1"
879+ompNumThreads = "1"
880+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
881+mklNumThreads = "2"
882+ompNumThreads = "2"
883+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
884+mklNumThreads = "4"
885+ompNumThreads = "2"
886+tester.doesTestMpi(mklNumThreads,ompNumThreads)
887+
888+prefix = "c2h6_pm3pddg_davidsonCIS_singlet"
889+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
890+---------------------------------------------------
891+---------- Test of PM3/PDDG/CIS-singlet ---------
892+---------- With Davidson for the CIS ---------
893+---------------------------------------------------
894+SECTION
895+\t\t\t>>> C2H6 <<<
896+TITLE
897+mklNumThreads = "1"
898+ompNumThreads = "1"
899+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
900+mklNumThreads = "2"
901+ompNumThreads = "2"
902+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
903+mklNumThreads = "4"
904+ompNumThreads = "2"
905+tester.doesTestMpi(mklNumThreads,ompNumThreads)
906+
907+prefix = "c2h6_pm3pddg_force"
908+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
909+------------------------------------------------
910+---------- Test of PM3/PDDG/HF-Force ---------
911+------------------------------------------------
912+SECTION
913+\t\t\t>>> C2H6 <<<
914+TITLE
915+mklNumThreads = "1"
916+ompNumThreads = "1"
917+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
918+mklNumThreads = "2"
919+ompNumThreads = "2"
920+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
921+mklNumThreads = "4"
922+ompNumThreads = "2"
923+tester.doesTestMpi(mklNumThreads,ompNumThreads)
924+
925+prefix = "c2h6_pm3pddg_directCIS_singlet_force"
926+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
927+---------------------------------------------------
928+--------- Test of PM3/PDDG/CIS-singlet-force ----
929+--------- Without Davidson for the CIS --------
930+---------------------------------------------------
931+SECTION
932+\t\t\t>>> C2H6 <<<
933+TITLE
934+mklNumThreads = "1"
935+ompNumThreads = "1"
936+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
937+mklNumThreads = "2"
938+ompNumThreads = "2"
939+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
940+mklNumThreads = "4"
941+ompNumThreads = "2"
942+tester.doesTestMpi(mklNumThreads,ompNumThreads)
943+
944+prefix = "c2h6_pm3pddg_davidsonCIS_singlet_force"
945+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
946+---------------------------------------------------
947+--------- Test of PM3/PDDG/CIS-singlet-force ----
948+--------- With Davidson for the CIS --------
949+---------------------------------------------------
950+SECTION
951+\t\t\t>>> C2H6 <<<
952+TITLE
953+mklNumThreads = "1"
954+ompNumThreads = "1"
955+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
956+mklNumThreads = "2"
957+ompNumThreads = "2"
958+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
959+mklNumThreads = "4"
960+ompNumThreads = "2"
961+tester.doesTestMpi(mklNumThreads,ompNumThreads)
962+
963+prefix = "c2h6_pm3pddg_opt_steepest"
964+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
965+------------------------------------------------
966+------ Test of PM3/PDDG/Steepest Descent ------
967+------------------------------------------------
968+SECTION
969+\t\t\t>>> C2H6 <<<\n
970+TITLE
971+mklNumThreads = "1"
972+ompNumThreads = "1"
973+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
974+mklNumThreads = "2"
975+ompNumThreads = "2"
976+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
977+mklNumThreads = "4"
978+ompNumThreads = "2"
979+tester.doesTestMpi(mklNumThreads,ompNumThreads)
980+
981+prefix = "c2h6_pm3pddg_opt_conjugate"
982+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
983+------------------------------------------------
984+---- Test of PM3/PDDG/Conjugate gradient ------
985+------------------------------------------------
986+SECTION
987+\t\t\t>>> C2H6 <<<
988+TITLE
989+mklNumThreads = "1"
990+ompNumThreads = "1"
991+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
992+mklNumThreads = "2"
993+ompNumThreads = "2"
994+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
995+mklNumThreads = "4"
996+ompNumThreads = "2"
997+tester.doesTestMpi(mklNumThreads,ompNumThreads)
998+
999+prefix = "c2h6_pm3pddg_opt_bfgs"
1000+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1001+------------------------------------------------
1002+------ Test of PM3/PDDG/BFGS ------------------
1003+------------------------------------------------
1004+SECTION
1005+\t\t\t>>> C2H6 <<<
1006+TITLE
1007+mklNumThreads = "1"
1008+ompNumThreads = "1"
1009+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1010+mklNumThreads = "2"
1011+ompNumThreads = "2"
1012+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1013+mklNumThreads = "4"
1014+ompNumThreads = "2"
1015+tester.doesTestMpi(mklNumThreads,ompNumThreads)
1016+
1017+prefix = "c2h6_pm3pddg_opt_gediis"
1018+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1019+------------------------------------------------
1020+------ Test of PM3/PDDG/GEDIIS ----------------
1021+------------------------------------------------
1022+SECTION
1023+\t\t\t>>> C2H6 <<<
1024+TITLE
1025+mklNumThreads = "1"
1026+ompNumThreads = "1"
1027+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1028+mklNumThreads = "2"
1029+ompNumThreads = "2"
1030+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1031+
1032+prefix = "c2h6_pm3_MC"
1033+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1034+---------------------------------------------------
1035+--------- Test of PM3/HF-MC ---------------------
1036+---------------------------------------------------
1037+SECTION
1038+\t\t\t>>> C2H6 <<<
1039+TITLE
1040+mklNumThreads = "1"
1041+ompNumThreads = "1"
1042+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1043+mklNumThreads = "2"
1044+ompNumThreads = "2"
1045+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1046+mklNumThreads = "4"
1047+ompNumThreads = "2"
1048+tester.doesTestMpi(mklNumThreads,ompNumThreads)
1049+
1050+prefix = "c2h6_pm3_directCIS_singlet_MC"
1051+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1052+---------------------------------------------------
1053+--------- Test of PM3/CIS-singlet-MC ----------
1054+--------- Without Davidson for the CIS ----------
1055+---------------------------------------------------
1056+SECTION
1057+\t\t\t>>> C2H6 <<<
1058+TITLE
1059+mklNumThreads = "1"
1060+ompNumThreads = "1"
1061+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1062+mklNumThreads = "2"
1063+ompNumThreads = "2"
1064+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1065+mklNumThreads = "4"
1066+ompNumThreads = "2"
1067+tester.doesTestMpi(mklNumThreads,ompNumThreads)
1068+
1069+prefix = "c2h6_pm3pddg_rpmd"
1070+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1071+------------------------------------------------
1072+---------- Test of PM3/PDDG/RPMD -------------
1073+------------------------------------------------
1074+SECTION
1075+\t\t\t>>> C2H6 <<<
1076+TITLE
1077+mklNumThreads = "1"
1078+ompNumThreads = "1"
1079+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1080+mklNumThreads = "2"
1081+ompNumThreads = "2"
1082+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1083+mklNumThreads = "4"
1084+ompNumThreads = "2"
1085+tester.doesTestMpi(mklNumThreads,ompNumThreads)
1086+
1087+prefix = "c2h6_pm3pddg_davidsonCIS_singlet_rpmd"
1088+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1089+---------------------------------------------------
1090+--------- Test of PM3/PDDG/CIS/RPMD ---------
1091+--------- With Davidson for the CIS ---------
1092+---------------------------------------------------
1093+SECTION
1094+\t\t\t>>> C2H6 <<<
1095+TITLE
1096+mklNumThreads = "1"
1097+ompNumThreads = "1"
1098+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1099+mklNumThreads = "2"
1100+ompNumThreads = "2"
1101+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1102+mklNumThreads = "4"
1103+ompNumThreads = "2"
1104+tester.doesTestMpi(mklNumThreads,ompNumThreads)
1105+
1106+prefix = "c2h6_pm3d"
1107+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1108+-------------------------------------------
1109+------------ Test of PM3-D/HF -------------
1110+-------------------------------------------
1111+SECTION
1112+\t\t\t>>> C2H6 <<<
1113+TITLE
1114+
1115+mklNumThreads = "1"
1116+ompNumThreads = "1"
1117+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1118+mklNumThreads = "2"
1119+ompNumThreads = "2"
1120+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1121+mklNumThreads = "4"
1122+ompNumThreads = "2"
1123+tester.doesTestMpi(mklNumThreads,ompNumThreads)
1124+
1125+prefix = "c2h6_pm3_vdw"
1126+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1127+---------------------------------------------------
1128+------ Test of vdw correction in PM3/HF ---------
1129+---------------------------------------------------
1130+SECTION
1131+\t\t\t>>> C2H6 <<<
1132+TITLE
1133+mklNumThreads = "1"
1134+ompNumThreads = "1"
1135+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1136+mklNumThreads = "2"
1137+ompNumThreads = "2"
1138+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1139+mklNumThreads = "4"
1140+ompNumThreads = "2"
1141+tester.doesTestMpi(mklNumThreads,ompNumThreads)
1142+
1143+prefix = "c2h6_pm3_vdw_force"
1144+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1145+---------------------------------------------------
1146+---- Test of vdw correction in PM3/HF-Force -----
1147+---------------------------------------------------
1148+SECTION
1149+\t\t\t>>> C2H6 <<<
1150+TITLE
1151+mklNumThreads = "1"
1152+ompNumThreads = "1"
1153+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1154+mklNumThreads = "2"
1155+ompNumThreads = "2"
1156+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1157+mklNumThreads = "4"
1158+ompNumThreads = "2"
1159+tester.doesTestMpi(mklNumThreads,ompNumThreads)
1160+
1161+prefix = "c2h6_pm3_vdw_MC"
1162+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1163+---------------------------------------------------
1164+------ Test of vdw correction in PM3/HF-MC ------
1165+---------------------------------------------------
1166+SECTION
1167+\t\t\t>>> C2H6 <<<
1168+TITLE
1169+mklNumThreads = "1"
1170+ompNumThreads = "1"
1171+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1172+mklNumThreads = "2"
1173+ompNumThreads = "2"
1174+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1175+mklNumThreads = "4"
1176+ompNumThreads = "2"
1177+tester.doesTestMpi(mklNumThreads,ompNumThreads)
1178+
1179+prefix = "c2h6-h2o-cluster_pm3pddg_freq"
1180+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1181+-------------------------------------------
1182+---- Test of PM3/PDDG/HF/FREQUENCIES ---
1183+-------------------------------------------
1184+SECTION
1185+\t\t\t>>> C2H6 H2O cluster <<<
1186+TITLE
1187+mklNumThreads = "1"
1188+ompNumThreads = "1"
1189+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1190+mklNumThreads = "2"
1191+ompNumThreads = "2"
1192+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1193+mklNumThreads = "4"
1194+ompNumThreads = "2"
1195+tester.doesTestMpi(mklNumThreads,ompNumThreads)
1196+
1197+prefix = "c2h6-nh3-cluster_pm3d_freq"
1198+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1199+-------------------------------------------
1200+----- Test of PM3-D/HF/FREQUENCIES ----
1201+-------------------------------------------
1202+SECTION
1203+\t\t\t>>> C2H6 NH3 cluster <<<
1204+TITLE
1205+mklNumThreads = "1"
1206+ompNumThreads = "1"
1207+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1208+mklNumThreads = "2"
1209+ompNumThreads = "2"
1210+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1211+mklNumThreads = "4"
1212+ompNumThreads = "2"
1213+tester.doesTestMpi(mklNumThreads,ompNumThreads)
1214+
1215+prefix = "c2h6_mndo_directCIS_singlet_force_heap_limit"
1216+tester = Tester.new(prefix, <<"SECTION", <<"TITLE")
1217+---------------------------------------------------
1218+----------- Test of limitation of Heap ----------
1219+---------------------------------------------------
1220+SECTION
1221+\t\t\t>>> C2H6 <<<
1222+TITLE
1223+mklNumThreads = "1"
1224+ompNumThreads = "1"
1225+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1226+mklNumThreads = "2"
1227+ompNumThreads = "2"
1228+#tester.doesTestOmp(mklNumThreads,ompNumThreads)
1229+
1230+
1231+
1232+
1233+system("rm -rf temp.dat")