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