working microcanonical
[unres4.git] / source / unres / CMakeLists.txt
1 #
2 # CMake project file for UNRES 
3
4
5 enable_language (Fortran)
6
7 #================================
8 # Set source file lists for different compilation flags
9 #================================
10 set(UNRES_MD_SRC0 
11          data/names.f90
12          data/io_units.f90
13          data/calc_data.f90
14          data/compare_data.f90
15          data/control_data.f90
16          data/CSA_data.f90
17          data/energy_data.f90
18          data/geometry_data.f90
19          data/map_data.f90
20          data/MCM_data.f90
21          data/MD_data.f90
22          data/MPI_data.f90
23          data/REMD_data.f90
24          data/comm_local.f90
25          prng_32.f90
26          math.f90
27          random.f90
28          geometry.f90
29          io_base.f90
30          energy.f90
31          check_bond.f90
32          control.F90
33          MPI.f90
34          regularize.f90
35          compare.F90
36          map.f90
37          muca_md.f90
38          MCM_MD.f90
39          io.f90
40          MREMD.f90
41          CSA.f90
42          unres.f90
43          MD.f90
44          REMD.f90
45 )
46
47 if(UNRES_NEWGRAD)
48  set(UNRES_MD_SRC0 ${UNRES_MD_SRC0} 
49        fdisy.f90 fdiag.f90 machpd.f90 
50        quindibisectok.F90
51        quindet2ok.F90)
52 endif()
53
54 set(UNRES_MD_SRC1
55         data/minim_data.f90 
56 )
57
58 set(UNRES_MD_SRC2
59         minim.f90
60         md_calc.f90 
61 )
62
63 set(UNRES_MD_SRC3 
64         io_config.f90
65 )
66
67
68 #================================================
69 # Set compiler flags for different sourcefiles  
70 #================================================
71 if (Fortran_COMPILER_NAME STREQUAL "ifort")
72   set (CMAKE_Fortran_FLAGS_RELEASE " ")
73   set (CMAKE_Fortran_FLAGS_DEBUG   "-O0 -g ")
74 #  set(FFLAGS0 "-fpp -c -O3 -ip " ) 
75   set(FFLAGS0 "-CB -g -ip -fpp" ) 
76   set(FFLAGS1 "-fpp -c -O " ) 
77   set(FFLAGS2 "-fpp -c -g -CA -CB ")
78   set(FFLAGS3 "-fpp -c -g -O0 " )
79 elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
80   set(FFLAGS0 "-std=legacy -I. " ) 
81   set(FFLAGS1 "-std=legacy -g -I. " ) 
82   set(FFLAGS2 "-std=legacy -I. ")
83   set(FFLAGS3 "-std=legacy -I. " )
84 endif (Fortran_COMPILER_NAME STREQUAL "ifort")
85
86
87 # Add MPI compiler flags
88 if(UNRES_WITH_MPI)
89   set(FFLAGS0 "${FFLAGS0} -I${MPI_Fortran_INCLUDE_PATH}")
90   set(FFLAGS1 "${FFLAGS1} -I${MPI_Fortran_INCLUDE_PATH}")
91   set(FFLAGS2 "${FFLAGS2} -I${MPI_Fortran_INCLUDE_PATH}")
92   set(FFLAGS3 "${FFLAGS3} -I${MPI_Fortran_INCLUDE_PATH}")
93 endif(UNRES_WITH_MPI)
94
95 set_property(SOURCE ${UNRES_MD_SRC0} PROPERTY COMPILE_FLAGS ${FFLAGS0} )
96 set_property(SOURCE ${UNRES_MD_SRC1} PROPERTY COMPILE_FLAGS ${FFLAGS1} )
97 set_property(SOURCE ${UNRES_MD_SRC2} PROPERTY COMPILE_FLAGS ${FFLAGS2} )
98 set_property(SOURCE ${UNRES_MD_SRC3} PROPERTY COMPILE_FLAGS ${FFLAGS3} )
99
100 #=========================================
101 # Settings for GAB force field 
102 #=========================================
103 if(UNRES_MD_FF STREQUAL "GAB" )
104   # set preprocesor flags   
105   set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC")
106
107 #=========================================
108 #  Settings for E0LL2Y force field
109 #=========================================
110 elseif(UNRES_MD_FF STREQUAL "E0LL2Y")
111   # set preprocesor flags   
112   set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0" )
113
114 #=========================================
115 #  Settings for 4P force field
116 #=========================================
117 elseif(UNRES_MD_FF STREQUAL "4P")
118   set(CPPFLAGS "UNRES -DISNAN -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC -DSCCORPDB" )
119 endif(UNRES_MD_FF STREQUAL "GAB")
120
121 if(UNRES_NEWGRAD)
122  set(CPPFLAGS "${CPPFLAGS} -DCARGRAD -DFIVEDIAG ")
123 endif()
124
125
126 #=========================================
127 # System specific flags
128 #=========================================
129 if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
130   set(CPPFLAGS "${CPPFLAGS} -DLINUX") 
131 endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
132
133 #=========================================
134 # Compiler specific flags
135 #=========================================
136
137 if (Fortran_COMPILER_NAME STREQUAL "ifort")
138   # Add ifort preprocessor flags
139   set(CPPFLAGS "${CPPFLAGS} -DPGI") 
140 elseif (Fortran_COMPILER_NAME STREQUAL "f95")
141   # Add new gfortran flags
142   set(CPPFLAGS "${CPPFLAGS} -DG77") 
143 elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
144   # Add old gfortran flags
145   set(CPPFLAGS "${CPPFLAGS} -DG77")
146 elseif (Fortran_COMPILER_NAME STREQUAL "pgf90")
147   set(CPPFLAGS "${CPPFLAGS} -DPGI")
148   FILE(COPY ${CMAKE_SOURCE_DIR}/source/isnan_pgi.f DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
149   list(APPEND UNRES_MD_SRC0 ${CMAKE_CURRENT_BINARY_DIR}/isnan_pgi.f)
150 endif (Fortran_COMPILER_NAME STREQUAL "ifort")
151
152 #=========================================
153 # Add MPI preprocessor flags
154 #=========================================
155 if (UNRES_WITH_MPI)
156   set(CPPFLAGS "${CPPFLAGS} -DMP -DMPI") 
157 endif(UNRES_WITH_MPI)
158
159 #=========================================
160 # Add 64-bit specific preprocessor flags
161 #=========================================
162 if (architektura STREQUAL "64")
163   set(CPPFLAGS "${CPPFLAGS} -DAMD64")
164 endif (architektura STREQUAL "64")
165
166
167 #========================================
168 #  Setting binary name
169 #========================================
170 if(UNRES_WITH_MPI) 
171   # binary with mpi
172   if(UNRES_NEWGRAD)
173    set(UNRES_BIN "unresMD_${Fortran_COMPILER_NAME}_MPI_${UNRES_MD_FF}_NEWGRAD.exe")
174   else()
175    set(UNRES_BIN "unresMD_${Fortran_COMPILER_NAME}_MPI_${UNRES_MD_FF}.exe")
176   endif()
177 else(UNRES_WITH_MPI)
178   # binary without mpi
179   if(UNRES_NEWGRAD)
180    set(UNRES_BIN "unresMD_${Fortran_COMPILER_NAME}_single_${UNRES_MD_FF}_NEWGRAD.exe")
181   else()
182    set(UNRES_BIN "unresMD_${Fortran_COMPILER_NAME}_single_${UNRES_MD_FF}.exe")
183   endif()
184 endif(UNRES_WITH_MPI)  
185
186 #=========================================
187 # cinfo.f90 workaround for cmake
188 #=========================================
189 # get the current date  
190 TODAY(DATE)
191 # generate cinfo.f90
192
193 set(CINFO "${CMAKE_CURRENT_BINARY_DIR}/cinfo.f90")
194 FILE(WRITE ${CINFO}
195 "! CMake generated file cinfo.f90
196        subroutine cinfo
197        use io_units
198        write(iout,*)'++++ Compile info ++++'
199        write(iout,*)'Version ${UNRES_MAJOR}.${UNRES_MINOR} build ${UNRES_PATCH}'
200 ")
201
202 CINFO_FORMAT(${CINFO} "Compiled" "${DATE}" )
203 CINFO_FORMAT(${CINFO} "Compiled by" "$ENV{USER}@$ENV{HOST}" )
204 CINFO_FORMAT(${CINFO} "OS name:" "${CMAKE_SYSTEM_NAME}" )
205 CINFO_FORMAT(${CINFO} "OS release:" "${CMAKE_SYSTEM}" )
206 CINFO_FORMAT(${CINFO} "Fortran Compiler:" "${CMAKE_Fortran_COMPILER}" )
207 CINFO_FORMAT(${CINFO} "MD Force field:" "${UNRES_MD_FF}" )
208 CINFO_FORMAT(${CINFO} "CPPFLAGS =" "${CPPFLAGS}")
209
210 FILE(APPEND ${CINFO} 
211 "       write(iout,*)'++++ End of compile info ++++'  
212        return 
213        end ")
214
215 # add include path
216 set_property(SOURCE ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f90 PROPERTY COMPILE_FLAGS "${FFLAGS} -I${CMAKE_CURRENT_SOURCE_DIR}")
217
218 #=========================================
219 # Set full unres MD sources
220 #=========================================
221 set(UNRES_MD_SRCS ${UNRES_MD_SRC0} ${UNRES_MD_SRC1} ${UNRES_MD_SRC2} ${UNRES_MD_SRC3} ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f90 )
222 set_property(SOURCE ${UNRES_MD_SRCS} PROPERTY COMPILE_DEFINITIONS ${CPPFLAGS} )
223
224 #=========================================
225 # Build the binary
226 #=========================================
227 add_executable(UNRES_BIN ${UNRES_MD_SRCS} )
228 set_target_properties(UNRES_BIN PROPERTIES OUTPUT_NAME ${UNRES_BIN})
229 set_property(TARGET UNRES_BIN PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
230
231
232 #=========================================
233 # Link libraries
234 #=========================================
235 # link MPI library (libmpich.a)  
236
237 if(UNRES_WITH_MPI)
238   target_link_libraries( UNRES_BIN ${MPI_Fortran_LIBRARIES} )
239 endif(UNRES_WITH_MPI)
240 # link libxdrf.a 
241 #message("UNRES_XDRFLIB=${UNRES_XDRFLIB}")
242 target_link_libraries( UNRES_BIN xdrf )
243
244 #=========================================
245 # Install Path
246 #=========================================
247 install(TARGETS UNRES_BIN DESTINATION ${CMAKE_INSTALL_PREFIX}) 
248
249 #=========================================
250 # TESTS 
251 #=========================================
252
253 #-- Copy all the data files from the test directory into the source directory
254 #SET(UNRES_TEST_FILES
255 #       ala10.inp
256 #    )
257
258 #FOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
259 #      SET (unres_test_dest "${CMAKE_CURRENT_BINARY_DIR}/${UNRES_TEST_FILE}")
260 #      MESSAGE (STATUS " Copying ${UNRES_TEST_FILE} from ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} to ${unres_test_dest}")
261 #      ADD_CUSTOM_COMMAND (
262 #          TARGET     ${UNRES_BIN}
263 #          POST_BUILD
264 #          COMMAND    ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} ${unres_test_dest}
265 #      )
266 #ENDFOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
267
268 #=========================================
269 # Generate data test files
270 #=========================================
271 #  test_single_ala.sh
272 #=========================================
273
274 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh
275 "#!/bin/sh
276 export POT=GB
277 export PREFIX=ala10
278 #-----------------------------------------------------------------------------
279 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
280 #-----------------------------------------------------------------------------
281 DD=${CMAKE_SOURCE_DIR}/PARAM
282 export BONDPAR=$DD/bond.parm
283 export THETPAR=$DD/thetaml.5parm
284 export ROTPAR=$DD/scgauss.parm
285 export TORPAR=$DD/torsion_631Gdp.parm
286 export TORDPAR=$DD/torsion_double_631Gdp.parm
287 export ELEPAR=$DD/electr_631Gdp.parm
288 export SIDEPAR=$DD/sc_GB_opt.1gab_3S_qclass5no310-shan2-sc-16-10-8k
289 export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
290 export SCPPAR=$DD/scp.parm
291 export SCCORPAR=$DD/sccor_pdb_shelly.dat
292 export PATTERN=$DD/patterns.cart
293 #-----------------------------------------------------------------------------
294 $UNRES_BIN
295 ")
296
297 #
298 # File permissions workaround
299 #
300 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh 
301         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
302         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
303 )
304
305
306
307 #=========================================
308 #  ala10.inp
309 #=========================================
310
311 file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10.inp
312 "ala10 unblocked
313 SEED=-1111333 MD ONE_LETTER rescale_mode=2 
314 nstep=15000 ntwe=100 ntwx=1000 dt=0.1 lang=0 tbf t_bath=300 damax=1.0          &
315 reset_moment=1000 reset_vel=1000
316 WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873            &
317 WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000        &
318 WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000    &
319 WVDWPP=0.11371 WHPB=1.00000                                                    &
320 CUTOFF=7.00000 WCORR4=0.00000
321 12
322 XAAAAAAAAAAX 
323  0
324  0
325    90.0000   90.0000   90.0000  90.000   90.000   90.000   90.000   90.000 
326    90.0000   90.0000
327   180.0000  180.0000  180.0000 180.000  180.000  180.000  180.000  180.000
328   180.0000
329   110.0000  110.0000  110.0000 100.000  110.000  100.000  110.000  110.000 
330   110.0000  110.0000
331  -120.0000 -120.0000 -120.000 -120.000 -120.000 -120.000 -120.000 -120.000
332  -120.0000 -120.0000
333 ")
334
335 if(UNRES_MD_FF STREQUAL "E0LL2Y")
336
337 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota.pdb
338         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
339
340 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_unres.pdb
341         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
342
343 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_ENE.inp
344         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
345
346 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_MIN_CART.inp
347         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
348
349 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_micro.inp
350         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
351
352 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_MIN_INT.inp
353         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
354
355 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_MIN_REGULAR_INT.inp
356         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
357
358 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_B.inp
359         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
360
361 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_L.inp
362         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
363
364 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_NH.inp
365         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
366
367
368 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y.pdb
369         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
370
371 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_remd.inp
372         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
373
374 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1ei0_min.inp
375         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
376
377 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1ei0.pdb
378         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
379
380 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_unres_energy_check.sh
381         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
382         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
383 )
384
385 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/matplotlib_fit_hist.py
386         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
387         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
388 )
389
390 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/matplotlib_hist.py
391         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
392         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
393 )
394
395
396
397 #=========================================
398 #  test_prota_E0LL2Y.sh
399 #=========================================
400
401 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_prota_E0LL2Y.sh
402 "#!/bin/sh
403 export POT=GB
404 export FGPROCS=$2
405 export PREFIX=$1
406 #-----------------------------------------------------------------------------
407 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
408 #-----------------------------------------------------------------------------
409 DD=${CMAKE_SOURCE_DIR}/PARAM
410 export BONDPAR=$DD/bond_AM1.parm
411 export THETPAR=$DD/theta_abinitio.parm
412 export ROTPAR=$DD/rotamers_AM1_aura.10022007.parm
413 export TORPAR=$DD/torsion_631Gdp.parm
414 export TORDPAR=$DD/torsion_double_631Gdp.parm
415 export ELEPAR=$DD/electr_631Gdp.parm
416 export SIDEPAR=$DD/scinter_$POT.parm
417 export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
418 export SCPPAR=$DD/scp.parm
419 export SCCORPAR=$DD/sccor_am1_pawel.dat
420 export THETPARPDB=$DD/thetaml.5parm
421 export ROTPARPDB=$DD/scgauss.parm
422 export PATTERN=$DD/patterns.cart
423 #-----------------------------------------------------------------------------
424 echo CTEST_FULL_OUTPUT
425 $UNRES_BIN
426 ./prota_unres_energy_check.sh $1 ${UNRES_BIN}
427 ")
428
429 #
430 # File permissions workaround
431 #
432 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_prota_E0LL2Y.sh 
433         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
434         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
435 )
436
437 #  MESSAGE (STATUS "${MPI_Fortran_LIBRARIES}")
438   if ("${MPI_Fortran_LIBRARIES}"  MATCHES "lam")
439      MESSAGE (STATUS "LAM MPI library detected")
440      set (boot_lam "-boot")
441   else()
442      set (boot_lam "")
443   endif()
444
445   if (UNRES_SRUN)
446    set (np "-n")
447    set (mpiexec "srun")
448   elseif(UNRES_MPIRUN)
449    set (np "-np")
450    set (mpiexec "mpirun")
451   else()
452    set (np "-np")
453    set (mpiexec "mpiexec")
454   endif()
455           
456
457 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_mpi_E0LL2Y.sh
458 "#!/bin/sh
459 export POT=GB
460 export FGPROCS=$2
461 export PREFIX=$1
462 #-----------------------------------------------------------------------------
463 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
464 #-----------------------------------------------------------------------------
465 DD=${CMAKE_SOURCE_DIR}/PARAM
466 export BONDPAR=$DD/bond_AM1.parm
467 export THETPAR=$DD/theta_abinitio.parm
468 export ROTPAR=$DD/rotamers_AM1_aura.10022007.parm
469 export TORPAR=$DD/torsion_631Gdp.parm
470 export TORDPAR=$DD/torsion_double_631Gdp.parm
471 export ELEPAR=$DD/electr_631Gdp.parm
472 export SIDEPAR=$DD/scinter_$POT.parm
473 export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
474 export SCPPAR=$DD/scp.parm
475 export SCCORPAR=$DD/sccor_am1_pawel.dat
476 export THETPARPDB=$DD/thetaml.5parm
477 export ROTPARPDB=$DD/scgauss.parm
478 export PATTERN=$DD/patterns.cart
479 #-----------------------------------------------------------------------------
480 echo CTEST_FULL_OUTPUT
481 ${mpiexec} ${boot_lam} ${np} $3 $UNRES_BIN | grep -v traj1file
482 ./prota_unres_energy_check.sh $1 ${UNRES_BIN}
483 ")
484
485 #
486 # File permissions workaround
487 #
488 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_mpi_E0LL2Y.sh 
489         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
490         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
491 )
492
493
494 endif(UNRES_MD_FF STREQUAL "E0LL2Y")
495
496
497
498 # Add tests
499
500 if(NOT UNRES_WITH_MPI)
501                   
502   if(UNRES_MD_FF STREQUAL "GAB")
503     add_test(NAME UNRES_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
504   endif(UNRES_MD_FF STREQUAL "GAB")
505  
506   if(UNRES_MD_FF STREQUAL "E0LL2Y")
507     add_test(NAME UNRES_ENE_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE 1 )
508     add_test(NAME UNRES_MIN_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_MIN_CART 1 )
509     add_test(NAME UNRES_MIN_INT COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_INT 1 )
510     add_test(NAME UNRES_REGULAR COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_REGULAR_INT 1 )
511     add_test(NAME UNRES_MD_microcanonical COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_micro 1 )
512     add_test(NAME UNRES_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_L 1 )
513     add_test(NAME UNRES_NoseHoover COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_NH 1 )
514     add_test(NAME UNRES_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_B 1 )
515     add_test(NAME UNRES_ss_static_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1ei0_min 1 )
516   endif(UNRES_MD_FF STREQUAL "E0LL2Y")
517
518 else(NOT UNRES_WITH_MPI)
519
520
521   if(UNRES_MD_FF STREQUAL "GAB")
522     add_test(NAME UNRES_MD_MPI_Ala10 COMMAND ${mpiexec} ${boot_lam} ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
523   endif(UNRES_MD_FF STREQUAL "GAB")
524
525   if(UNRES_MD_FF STREQUAL "E0LL2Y")
526     add_test(NAME UNRES_ENE_prota COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE 2 )
527     add_test(NAME UNRES_ENE1_prota COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE 1 )
528     add_test(NAME UNRES_MIN_prota COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_MIN_CART 2 )
529     add_test(NAME UNRES_MIN_INT COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_INT 1 )
530     add_test(NAME UNRES_REGULAR COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_REGULAR_INT 1 )
531     add_test(NAME UNRES_MD_microcanonical COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_micro 2 )
532     add_test(NAME UNRES_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_L 2 2 )
533     add_test(NAME UNRES_NoseHoover COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_NH 2 2 )
534     add_test(NAME UNRES_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_B 2 2 )
535     add_test(NAME UNRES_remd COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_remd 1 8 )
536     add_test(NAME UNRES_ss_static_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1ei0_min 1 2 )
537   endif(UNRES_MD_FF STREQUAL "E0LL2Y")
538
539 endif(NOT UNRES_WITH_MPI)
540