ctest checkgrad added
[unres.git] / source / unres / src_MD / CMakeLists.txt
1 #
2 # CMake project file for UNRES with MD for single chains
3
4
5 enable_language (Fortran)
6
7
8 #================================
9 # Set source file lists
10 #================================
11 if(UNRES_DFA)
12  set(UNRES_MD_SRC0 
13         add.f 
14         arcos.f
15         banach.f 
16         blas.f 
17         bond_move.f 
18         cartder.F 
19         cartprint.f 
20         check_sc_distr.f
21         check_bond.f 
22         chainbuild.F 
23         checkder_p.F 
24         compare_s1.F 
25         contact.f 
26         convert.f 
27         cored.f 
28         dihed_cons.F 
29         djacob.f 
30         econstr_local.F
31         eigen.f 
32         elecont.f 
33         energy_split-sep.F 
34         entmcm.F
35         fitsq.f 
36         gauss.f 
37         gen_rand_conf.F
38         geomout.F 
39         gnmr1.f 
40         intcartderiv.F 
41         initialize_p.F 
42         int_to_cart.f 
43         intcor.f 
44         intlocal.f 
45         kinetic_lesyng.f 
46         lagrangian_lesyng.F 
47         local_move.f 
48         map.f 
49         matmult.f 
50         mc.F 
51         mcm.F 
52         MD_A-MTS.F 
53         minimize_p.F 
54         minim_mcmf.F 
55         misc.f 
56         moments.f
57         MP.F 
58         MREMD.F 
59         muca_md.f 
60         parmread.F 
61         pinorm.f 
62         printmat.f 
63         prng_32.F
64         q_measure.F 
65         randgens.f 
66         rattle.F 
67         readpdb.F 
68         readrtns.F 
69         refsys.f 
70         regularize.F
71         rescode.f 
72         rmdd.f 
73         rmsd.F 
74         sc_move.F 
75         sort.f 
76         stochfric.F 
77         sumsld.f 
78         surfatom.f 
79         test.F
80         timing.F
81         thread.F 
82         unres.F
83         ssMD.F
84         dfa.F
85 )
86 else(UNRES_DFA)
87  set(UNRES_MD_SRC0 
88         add.f 
89         arcos.f
90         banach.f 
91         blas.f 
92         bond_move.f 
93         cartder.F 
94         cartprint.f 
95         check_sc_distr.f
96         check_bond.f 
97         chainbuild.F 
98         checkder_p.F 
99         compare_s1.F 
100         contact.f 
101         convert.f 
102         cored.f 
103         dihed_cons.F 
104         djacob.f 
105         econstr_local.F
106         eigen.f 
107         elecont.f 
108         energy_split-sep.F 
109         entmcm.F
110         fitsq.f 
111         gauss.f 
112         gen_rand_conf.F
113         geomout.F 
114         gnmr1.f 
115         intcartderiv.F 
116         initialize_p.F 
117         int_to_cart.f 
118         intcor.f 
119         intlocal.f 
120         kinetic_lesyng.f 
121         lagrangian_lesyng.F 
122         local_move.f 
123         map.f 
124         matmult.f 
125         mc.F 
126         mcm.F 
127         MD_A-MTS.F 
128         minimize_p.F 
129         minim_mcmf.F 
130         misc.f 
131         moments.f
132         MP.F 
133         MREMD.F 
134         muca_md.f 
135         parmread.F 
136         pinorm.f 
137         printmat.f 
138         prng_32.F
139         q_measure.F 
140         randgens.f 
141         rattle.F 
142         readpdb.F 
143         readrtns.F 
144         refsys.f 
145         regularize.F
146         rescode.f 
147         rmdd.f 
148         rmsd.F 
149         sc_move.F 
150         sort.f 
151         stochfric.F 
152         sumsld.f 
153         surfatom.f 
154         test.F
155         timing.F
156         thread.F 
157         unres.F
158         ssMD.F
159 )
160 endif(UNRES_DFA)
161
162 set(UNRES_MD_SRC3 
163         energy_p_new_barrier.F 
164         energy_p_new-sep_barrier.F 
165         gradient_p.F )
166
167 set(UNRES_MD_PP_SRC
168         cartder.F
169         chainbuild.F 
170         checkder_p.F 
171         compare_s1.F 
172         dihed_cons.F 
173         econstr_local.F 
174         energy_p_new_barrier.F 
175         energy_p_new-sep_barrier.F 
176         energy_split-sep.F 
177         entmcm.F 
178         gen_rand_conf.F
179         geomout.F 
180         gradient_p.F 
181         initialize_p.F 
182         intcartderiv.F 
183         lagrangian_lesyng.F 
184         mc.F 
185         mcm.F 
186         MD_A-MTS.F
187         minimize_p.F 
188         minim_mcmf.F 
189         MP.F 
190         MREMD.F 
191         parmread.F 
192         prng_32.F
193         q_measure1.F 
194         q_measure3.F 
195         q_measure.F
196         rattle.F 
197         readpdb.F 
198         readrtns.F 
199         regularize.F 
200         rmsd.F 
201         sc_move.F 
202         stochfric.F 
203         test.F 
204         thread.F 
205         timing.F
206         unres.F 
207         proc_proc.c 
208
209
210 #================================================
211 # Set comipiler flags for different sourcefiles  
212 #================================================
213 if (Fortran_COMPILER_NAME STREQUAL "ifort")
214   set(FFLAGS0 "-ip -w" ) 
215   set(FFLAGS1 "-w -g -d2 -CA -CB" ) 
216   set(FFLAGS2 "-w -g -00 ")
217   #set(FFLAGS3 "-c -w -O3 -ipo -ipo_obj -opt_report" )
218   set(FFLAGS3 "-w -ipo " )
219 elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
220   set(FFLAGS0 "-std=legacy -I. " ) 
221   set(FFLAGS1 "-std=legacy -g -I. " ) 
222   set(FFLAGS2 "-std=legacy -I. ")
223   #set(FFLAGS3 "-c -w -O3 -ipo -ipo_obj -opt_report" )
224   set(FFLAGS3 "-std=legacy -I. " )
225 endif (Fortran_COMPILER_NAME STREQUAL "ifort")
226
227
228 # Add MPI compiler flags
229 if(UNRES_WITH_MPI)
230   set(FFLAGS0 "${FFLAGS0} -I${MPI_Fortran_INCLUDE_PATH}")
231   set(FFLAGS1 "${FFLAGS1} -I${MPI_Fortran_INCLUDE_PATH}")
232   set(FFLAGS2 "${FFLAGS2} -I${MPI_Fortran_INCLUDE_PATH}")
233   set(FFLAGS3 "${FFLAGS3} -I${MPI_Fortran_INCLUDE_PATH}")
234 endif(UNRES_WITH_MPI)
235
236 set_property(SOURCE ${UNRES_MD_SRC0} APPEND PROPERTY COMPILE_FLAGS ${FFLAGS0} )
237 #set_property(SOURCE ${UNRES_MD_SRC1} PROPERTY COMPILE_FLAGS ${FFLAGS1} )
238 #set_property(SOURCE ${UNRES_MD_SRC2} PROPERTY COMPILE_FLAGS ${FFLAGS2} )
239 set_property(SOURCE ${UNRES_MD_SRC3} PROPERTY COMPILE_FLAGS ${FFLAGS3} )
240
241 #=========================================
242 # Settings for GAB force field 
243 #=========================================
244 if(UNRES_MD_FF STREQUAL "GAB" )
245   # set preprocesor flags   
246   set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC")
247
248 #=========================================
249 #  Settings for E0LL2Y force field
250 #=========================================
251 elseif(UNRES_MD_FF STREQUAL "E0LL2Y")
252   # set preprocesor flags   
253   set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0" )
254 elseif(UNRES_MD_FF STREQUAL "4P")
255   set(CPPFLAGS "UNRES -DISNAN -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC -DSCCORPDB" )
256 endif(UNRES_MD_FF STREQUAL "GAB")
257
258 if(UNRES_DFA)
259  set(CPPFLAGS "${CPPFLAGS} -DDFA")
260 endif(UNRES_DFA)
261
262 #=========================================
263 # System specific flags
264 #=========================================
265 if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
266   set(CPPFLAGS "${CPPFLAGS} -DLINUX") 
267 endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
268
269 #=========================================
270 # Compiler specific flags
271 #=========================================
272
273 if (Fortran_COMPILER_NAME STREQUAL "ifort")
274   # Add ifort preprocessor flags
275   set(CPPFLAGS "${CPPFLAGS} -DPGI") 
276 elseif (Fortran_COMPILER_NAME STREQUAL "f95")
277   # Add new gfortran flags
278   set(CPPFLAGS "${CPPFLAGS} -DG77") 
279 elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
280   # Add old gfortran flags
281   set(CPPFLAGS "${CPPFLAGS} -DG77") 
282 endif (Fortran_COMPILER_NAME STREQUAL "ifort")
283
284 #=========================================
285 # Add MPI preprocessor flags
286 #=========================================
287 if (UNRES_WITH_MPI)
288   set(CPPFLAGS "${CPPFLAGS} -DMP -DMPI") 
289 endif(UNRES_WITH_MPI)
290
291 #=========================================
292 # Add 64-bit specific preprocessor flags
293 #=========================================
294 if (architektura STREQUAL "64")
295   set(CPPFLAGS "${CPPFLAGS} -DAMD64")
296 endif (architektura STREQUAL "64")
297
298 #=========================================
299 # Apply preprocesor flags to *.F files
300 #=========================================
301 set_property(SOURCE ${UNRES_MD_PP_SRC} PROPERTY COMPILE_DEFINITIONS ${CPPFLAGS} )  
302
303
304 #========================================
305 #  Setting binary name
306 #========================================
307 if(UNRES_WITH_MPI) 
308   # binary with mpi
309   if(UNRES_DFA)
310    set(UNRES_BIN "unresMD_${Fortran_COMPILER_NAME}_MPI_${UNRES_MD_FF}_DFA.exe")
311   else(UNRES_DFA)
312    set(UNRES_BIN "unresMD_${Fortran_COMPILER_NAME}_MPI_${UNRES_MD_FF}.exe")
313   endif(UNRES_DFA)
314 else(UNRES_WITH_MPI)
315   # binary without mpi
316   if(UNRES_DFA)
317    set(UNRES_BIN "unresMD_${Fortran_COMPILER_NAME}_single_${UNRES_MD_FF}_DFA.exe")
318   else(UNRES_DFA)
319    set(UNRES_BIN "unresMD_${Fortran_COMPILER_NAME}_single_${UNRES_MD_FF}.exe")
320   endif(UNRES_DFA)
321 endif(UNRES_WITH_MPI)  
322
323 #=========================================
324 # cinfo.f workaround for cmake
325 #=========================================
326 # get the current date  
327 TODAY(DATE)
328 # generate cinfo.f
329
330 set(CINFO "${CMAKE_CURRENT_BINARY_DIR}/cinfo.f")
331 FILE(WRITE ${CINFO}
332 "C CMake generated file
333        subroutine cinfo
334        include 'COMMON.IOUNITS'
335        write(iout,*)'++++ Compile info ++++'
336        write(iout,*)'Version ${UNRES_MAJOR}.${UNRES_MINOR} build ${UNRES_PATCH}'
337 ")
338
339 CINFO_FORMAT(${CINFO} "Compiled" "${DATE}" )
340 CINFO_FORMAT(${CINFO} "Compiled by" "$ENV{USER}@$ENV{HOST}" )
341 CINFO_FORMAT(${CINFO} "OS name:" "${CMAKE_SYSTEM_NAME}" )
342 CINFO_FORMAT(${CINFO} "OS release:" "${CMAKE_SYSTEM}" )
343 CINFO_FORMAT(${CINFO} "Fortran Compiler:" "${CMAKE_Fortran_COMPILER}" )
344 CINFO_FORMAT(${CINFO} "MD Force field:" "${UNRES_MD_FF}" )
345 CINFO_FORMAT(${CINFO} "CPPFLAGS =" "${CPPFLAGS}")
346
347 FILE(APPEND ${CINFO} 
348 "       write(iout,*)'++++ End of compile info ++++'  
349        return 
350        end ")
351
352 # add include path
353 set_property(SOURCE ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f PROPERTY COMPILE_FLAGS "${FFLAGS0} -I${CMAKE_CURRENT_SOURCE_DIR}")
354
355 #=========================================
356 # Set full unres MD sources
357 #=========================================
358 set(UNRES_MD_SRCS ${UNRES_MD_SRC0} ${UNRES_MD_SRC3} ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f )
359
360
361 #=========================================
362 # Build the binary
363 #=========================================
364 add_executable(UNRES_BIN-MD ${UNRES_MD_SRCS} )
365 set_target_properties(UNRES_BIN-MD PROPERTIES OUTPUT_NAME ${UNRES_BIN})
366 set_property(TARGET UNRES_BIN-MD PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
367 #add_dependencies (${UNRES_BIN} ${UNRES_XDRFLIB})
368
369
370 #=========================================
371 # Link libraries
372 #=========================================
373 # link MPI library (libmpich.a)  
374 if(UNRES_WITH_MPI)
375   target_link_libraries( UNRES_BIN-MD ${MPI_Fortran_LIBRARIES} )
376 endif(UNRES_WITH_MPI)
377 # link libxdrf.a 
378 #message("UNRES_XDRFLIB=${UNRES_XDRFLIB}")
379 target_link_libraries( UNRES_BIN-MD xdrf )
380
381 #=========================================
382 # Install Path
383 #=========================================
384 install(TARGETS UNRES_BIN-MD DESTINATION ${CMAKE_INSTALL_PREFIX}/unres/MD) 
385
386 #=========================================
387 # TESTS 
388 #=========================================
389
390 #-- Copy all the data files from the test directory into the source directory
391 #SET(UNRES_TEST_FILES
392 #       ala10.inp
393 #    )
394
395 #FOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
396 #      SET (unres_test_dest "${CMAKE_CURRENT_BINARY_DIR}/${UNRES_TEST_FILE}")
397 #      MESSAGE (STATUS " Copying ${UNRES_TEST_FILE} from ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} to ${unres_test_dest}")
398 #      ADD_CUSTOM_COMMAND (
399 #          TARGET     ${UNRES_BIN}
400 #          POST_BUILD
401 #          COMMAND    ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} ${unres_test_dest}
402 #      )
403 #ENDFOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
404
405 #=========================================
406 # Generate data test files
407 #=========================================
408 #  test_single_ala.sh
409 #=========================================
410
411 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh
412 "#!/bin/sh
413 export POT=GB
414 export PREFIX=ala10
415 #-----------------------------------------------------------------------------
416 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
417 #-----------------------------------------------------------------------------
418 DD=${CMAKE_SOURCE_DIR}/PARAM
419 export BONDPAR=$DD/bond.parm
420 export THETPAR=$DD/thetaml.5parm
421 export ROTPAR=$DD/scgauss.parm
422 export TORPAR=$DD/torsion_631Gdp.parm
423 export TORDPAR=$DD/torsion_double_631Gdp.parm
424 export ELEPAR=$DD/electr_631Gdp.parm
425 export SIDEPAR=$DD/sc_GB_opt.1gab_3S_qclass5no310-shan2-sc-16-10-8k
426 export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
427 export SCPPAR=$DD/scp.parm
428 export SCCORPAR=$DD/sccor_pdb_shelly.dat
429 export PATTERN=$DD/patterns.cart
430 #-----------------------------------------------------------------------------
431 $UNRES_BIN
432 ")
433
434 #
435 # File permissions workaround
436 #
437 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh 
438         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
439         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
440 )
441
442
443
444 #=========================================
445 #  ala10.inp
446 #=========================================
447
448 file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10.inp
449 "ala10 unblocked
450 SEED=-1111333 MD ONE_LETTER rescale_mode=2 
451 nstep=15000 ntwe=100 ntwx=1000 dt=0.1 lang=0 tbf t_bath=300 damax=1.0          &
452 reset_moment=1000 reset_vel=1000
453 WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873            &
454 WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000        &
455 WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000    &
456 WVDWPP=0.11371 WHPB=1.00000                                                    &
457 CUTOFF=7.00000 WCORR4=0.00000
458 12
459 XAAAAAAAAAAX 
460  0
461  0
462    90.0000   90.0000   90.0000  90.000   90.000   90.000   90.000   90.000 
463    90.0000   90.0000
464   180.0000  180.0000  180.0000 180.000  180.000  180.000  180.000  180.000
465   180.0000
466   110.0000  110.0000  110.0000 100.000  110.000  100.000  110.000  110.000 
467   110.0000  110.0000
468  -120.0000 -120.0000 -120.000 -120.000 -120.000 -120.000 -120.000 -120.000
469  -120.0000 -120.0000
470 ")
471
472 if(UNRES_MD_FF STREQUAL "E0LL2Y")
473
474 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota.pdb
475         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
476
477 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_unres.pdb
478         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
479
480 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_ENE.inp
481         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
482
483 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_MIN_CART.inp
484         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
485
486 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_micro.inp
487         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
488
489 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_MIN_INT.inp
490         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
491
492 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_MIN_REGULAR_INT.inp
493         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
494
495 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_B.inp
496         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
497
498 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_L.inp
499         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
500
501 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_NH.inp
502         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
503
504
505 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y.pdb
506         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
507
508 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_remd.inp
509         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
510
511 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1ei0_min.inp
512         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
513
514 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1ei0.pdb
515         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
516
517 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_unres_energy_check.sh
518         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
519         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
520 )
521
522 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/matplotlib_fit_hist.py
523         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
524         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
525 )
526
527 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/matplotlib_hist.py
528         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
529         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
530 )
531
532 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/checkgrad.awk
533         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
534
535 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_CHECKGRAD.inp
536         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
537
538
539
540
541 #=========================================
542 #  test_prota_E0LL2Y.sh
543 #=========================================
544
545 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_prota_E0LL2Y.sh
546 "#!/bin/sh
547 export POT=GB
548 export FGPROCS=$2
549 export PREFIX=$1
550 #-----------------------------------------------------------------------------
551 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
552 #-----------------------------------------------------------------------------
553 DD=${CMAKE_SOURCE_DIR}/PARAM
554 export BONDPAR=$DD/bond_AM1.parm
555 export THETPAR=$DD/theta_abinitio.parm
556 export ROTPAR=$DD/rotamers_AM1_aura.10022007.parm
557 export TORPAR=$DD/torsion_631Gdp.parm
558 export TORDPAR=$DD/torsion_double_631Gdp.parm
559 export ELEPAR=$DD/electr_631Gdp.parm
560 export SIDEPAR=$DD/scinter_$POT.parm
561 export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
562 export SCPPAR=$DD/scp.parm
563 export SCCORPAR=$DD/sccor_am1_pawel.dat
564 export THETPARPDB=$DD/thetaml.5parm
565 export ROTPARPDB=$DD/scgauss.parm
566 export PATTERN=$DD/patterns.cart
567 #-----------------------------------------------------------------------------
568 echo CTEST_FULL_OUTPUT
569 $UNRES_BIN
570 ./prota_unres_energy_check.sh $1 ${UNRES_BIN}
571 ")
572
573 #
574 # File permissions workaround
575 #
576 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_prota_E0LL2Y.sh 
577         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
578         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
579 )
580
581 #  MESSAGE (STATUS "${MPI_Fortran_LIBRARIES}")
582   if ("${MPI_Fortran_LIBRARIES}"  MATCHES "lam")
583      MESSAGE (STATUS "LAM MPI library detected")
584      set (boot_lam "-boot")
585   else()
586      set (boot_lam "")
587   endif()
588
589   if (UNRES_SRUN)
590    set (np "-n")
591    set (mpiexec "srun")
592   elseif(UNRES_MPIRUN)
593    set (np "-np")
594    set (mpiexec "mpirun")
595   else()
596    set (np "-np")
597    set (mpiexec "mpiexec")
598   endif()
599           
600
601 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_mpi_E0LL2Y.sh
602 "#!/bin/sh
603 export POT=GB
604 export FGPROCS=$2
605 export PREFIX=$1
606 #-----------------------------------------------------------------------------
607 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
608 #-----------------------------------------------------------------------------
609 DD=${CMAKE_SOURCE_DIR}/PARAM
610 export BONDPAR=$DD/bond_AM1.parm
611 export THETPAR=$DD/theta_abinitio.parm
612 export ROTPAR=$DD/rotamers_AM1_aura.10022007.parm
613 export TORPAR=$DD/torsion_631Gdp.parm
614 export TORDPAR=$DD/torsion_double_631Gdp.parm
615 export ELEPAR=$DD/electr_631Gdp.parm
616 export SIDEPAR=$DD/scinter_$POT.parm
617 export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
618 export SCPPAR=$DD/scp.parm
619 export SCCORPAR=$DD/sccor_am1_pawel.dat
620 export THETPARPDB=$DD/thetaml.5parm
621 export ROTPARPDB=$DD/scgauss.parm
622 export PATTERN=$DD/patterns.cart
623 #-----------------------------------------------------------------------------
624 echo CTEST_FULL_OUTPUT
625 ${mpiexec} ${boot_lam} ${np} $3 $UNRES_BIN | grep -v traj1file
626 ./prota_unres_energy_check.sh $1 ${UNRES_BIN}
627 ")
628
629 #
630 # File permissions workaround
631 #
632 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_mpi_E0LL2Y.sh 
633         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
634         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
635 )
636
637
638 endif(UNRES_MD_FF STREQUAL "E0LL2Y")
639
640
641
642 # Add tests
643
644 if(NOT UNRES_WITH_MPI)
645                   
646   if(UNRES_MD_FF STREQUAL "GAB")
647     add_test(NAME UNRES_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
648   endif(UNRES_MD_FF STREQUAL "GAB")
649  
650   if(UNRES_MD_FF STREQUAL "E0LL2Y")
651     add_test(NAME UNRES_ENE_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE 1 )
652     add_test(NAME UNRES_CHECKGRAD_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_CHECKGRAD 1 )
653     add_test(NAME UNRES_MIN_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_MIN_CART 1 )
654     add_test(NAME UNRES_MIN_INT COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_INT 1 )
655     add_test(NAME UNRES_REGULAR COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_REGULAR_INT 1 )
656     add_test(NAME UNRES_MD_microcanonical COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_micro 1 )
657     add_test(NAME UNRES_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_L 1 )
658     add_test(NAME UNRES_NoseHoover COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_NH 1 )
659     add_test(NAME UNRES_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_B 1 )
660     add_test(NAME UNRES_ss_static_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1ei0_min 1 )
661   endif(UNRES_MD_FF STREQUAL "E0LL2Y")
662
663 else(NOT UNRES_WITH_MPI)
664
665
666   if(UNRES_MD_FF STREQUAL "GAB")
667     add_test(NAME UNRES_MD_MPI_Ala10 COMMAND ${mpiexec} ${boot_lam} ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
668   endif(UNRES_MD_FF STREQUAL "GAB")
669
670   if(UNRES_MD_FF STREQUAL "E0LL2Y")
671     add_test(NAME UNRES_ENE_prota COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE 2 )
672     add_test(NAME UNRES_ENE1_prota COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE 1 )
673     add_test(NAME UNRES_CHECKGRAD_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh prota_CHECKGRAD 2 2 )   
674     add_test(NAME UNRES_CHECKGRAD1_prota COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_CHECKGRAD 1 )   
675     add_test(NAME UNRES_MIN_prota COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_MIN_CART 2 )
676     add_test(NAME UNRES_MIN_INT COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_INT 1 )
677     add_test(NAME UNRES_REGULAR COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_REGULAR_INT 1 )
678     add_test(NAME UNRES_MD_microcanonical COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_micro 2 )
679     add_test(NAME UNRES_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_L 2 2 )
680     add_test(NAME UNRES_NoseHoover COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_NH 2 2 )
681     add_test(NAME UNRES_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_B 2 2 )
682     add_test(NAME UNRES_remd COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_remd 1 8 )
683     add_test(NAME UNRES_ss_static_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1ei0_min 1 2 )
684   endif(UNRES_MD_FF STREQUAL "E0LL2Y")
685
686 endif(NOT UNRES_WITH_MPI)
687