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