cmake default -mcmodel=medium
[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 -mcmodel=medium -shared-intel " ) 
166   set(FFLAGS1 "-w -g -d2 -CA -CB -mcmodel=medium -shared-intel " ) 
167   set(FFLAGS2 "-w -g -00 -mcmodel=medium -shared-intel ")
168   set(FFLAGS3 "-w -ipo -mcmodel=medium -shared-intel " )
169 elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
170   set(FFLAGS0 "-std=legacy -I. -mcmodel=medium " ) 
171   set(FFLAGS1 "-std=legacy -g -I. -mcmodel=medium " ) 
172   set(FFLAGS2 "-std=legacy -I. -mcmodel=medium ")
173   set(FFLAGS3 "-std=legacy -I. -mcmodel=medium " )
174 else ()
175   set(FFLAGS0 " -mcmodel=medium " )
176   set(FFLAGS3 " -mcmodel=medium " )
177 endif (Fortran_COMPILER_NAME STREQUAL "ifort")
178
179
180 # Add MPI compiler flags
181 if(UNRES_WITH_MPI)
182   set(FFLAGS0 "${FFLAGS0} -I${MPI_Fortran_INCLUDE_PATH}")
183   set(FFLAGS1 "${FFLAGS1} -I${MPI_Fortran_INCLUDE_PATH}")
184   set(FFLAGS2 "${FFLAGS2} -I${MPI_Fortran_INCLUDE_PATH}")
185   set(FFLAGS3 "${FFLAGS3} -I${MPI_Fortran_INCLUDE_PATH}")
186 endif(UNRES_WITH_MPI)
187
188 set_property(SOURCE ${UNRES_MDM_SRC0} APPEND PROPERTY COMPILE_FLAGS ${FFLAGS0} )
189 #set_property(SOURCE ${UNRES_MD_SRC1} PROPERTY COMPILE_FLAGS ${FFLAGS1} )
190 #set_property(SOURCE ${UNRES_MD_SRC2} PROPERTY COMPILE_FLAGS ${FFLAGS2} )
191 set_property(SOURCE ${UNRES_MDM_SRC3} PROPERTY COMPILE_FLAGS ${FFLAGS3} )
192
193 #=========================================
194 # Settings for GAB force field 
195 #=========================================
196 if(UNRES_MD_FF STREQUAL "GAB" )
197   # set preprocesor flags   
198   set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC" )
199
200 #=========================================
201 #  Settings for E0LL2Y force field
202 #=========================================
203 elseif(UNRES_MD_FF STREQUAL "E0LL2Y")
204   # set preprocesor flags   
205   set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0" )
206 elseif(UNRES_MD_FF STREQUAL "4P")
207   set(CPPFLAGS "UNRES -DISNAN -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC -DSCCORPDB" )
208 endif(UNRES_MD_FF STREQUAL "GAB")
209
210
211 #=========================================
212 # System specific flags
213 #=========================================
214 if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
215   set(CPPFLAGS "${CPPFLAGS} -DLINUX") 
216 endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
217
218
219 #=========================================
220 # Compiler specific flags
221 #=========================================
222
223 if (Fortran_COMPILER_NAME STREQUAL "ifort")
224   # Add ifort preprocessor flags
225   set(CPPFLAGS "${CPPFLAGS} -DPGI") 
226 elseif (Fortran_COMPILER_NAME STREQUAL "f95")
227   # Add new gfortran flags
228   set(CPPFLAGS "${CPPFLAGS} -DG77") 
229 elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
230   # Add old gfortran flags
231   set(CPPFLAGS "${CPPFLAGS} -DG77") 
232 elseif (Fortran_COMPILER_NAME STREQUAL "pgf90")
233   set(CPPFLAGS "${CPPFLAGS} -DPGI")
234   FILE(COPY ${CMAKE_SOURCE_DIR}/source/lib/isnan_pgi.f DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
235   list(APPEND UNRES_MDM_SRC0 ${CMAKE_CURRENT_BINARY_DIR}/isnan_pgi.f)
236 endif (Fortran_COMPILER_NAME STREQUAL "ifort")
237
238
239 #=========================================
240 # Add MPI preprocessor flags
241 #=========================================
242 if (UNRES_WITH_MPI)
243   set(CPPFLAGS "${CPPFLAGS} -DMP -DMPI") 
244 endif(UNRES_WITH_MPI)
245
246
247 #=========================================
248 # add 64-bit specific preprocessor flags
249 #=========================================
250 if (architektura STREQUAL "64")
251   set(CPPFLAGS "${CPPFLAGS} -DAMD64")
252 endif (architektura STREQUAL "64")
253
254
255
256 # Apply preprocesor flags to *.F files
257 set_property(SOURCE ${UNRES_MDM_PP_SRC} PROPERTY COMPILE_DEFINITIONS ${CPPFLAGS} )  
258
259 # Apply preprocesor flags to proc_proc.c
260 set_property(SOURCE proc_proc.c PROPERTY COMPILE_DEFINITIONS "SGI" )  
261
262
263 #========================================
264 #  Setting binary name
265 #========================================
266 if(UNRES_WITH_MPI) 
267   # binary with mpi
268   set(UNRES_BIN "unresMD-mult_${Fortran_COMPILER_NAME}_MPI_${UNRES_MD_FF}.exe")
269 else(UNRES_WITH_MPI)
270   # binary without mpi
271   set(UNRES_BIN "unresMD-mult_${Fortran_COMPILER_NAME}_single_${UNRES_MD_FF}.exe")
272 endif(UNRES_WITH_MPI)  
273
274 #=========================================
275 # cinfo.f workaround for cmake
276 #=========================================
277 # get the current date  
278 TODAY(DATE)
279 # generate cinfo.f
280 set(CINFO "${CMAKE_CURRENT_BINARY_DIR}/cinfo.f")
281 FILE(WRITE ${CINFO}
282 "C CMake generated file
283        subroutine cinfo
284        include 'COMMON.IOUNITS'
285        write(iout,*)'++++ Compile info ++++'
286        write(iout,*)'Version ${UNRES_MAJOR}.${UNRES_MINOR} build ${UNRES_PATCH}'
287 ")
288
289 CINFO_FORMAT(${CINFO} "Compiled" "${DATE}" )
290 CINFO_FORMAT(${CINFO} "Compiled by" "$ENV{USER}@$ENV{HOST}" )
291 CINFO_FORMAT(${CINFO} "OS name:" "${CMAKE_SYSTEM_NAME}" )
292 CINFO_FORMAT(${CINFO} "OS release:" "${CMAKE_SYSTEM}" )
293 CINFO_FORMAT(${CINFO} "Fortran Compiler:" "${CMAKE_Fortran_COMPILER}" )
294 CINFO_FORMAT(${CINFO} "MD Force field:" "${UNRES_MD_FF}" )
295 CINFO_FORMAT(${CINFO} "CPPFLAGS =" "${CPPFLAGS}")
296
297 FILE(APPEND ${CINFO} 
298 "       write(iout,*)'++++ End of compile info ++++'  
299        return 
300        end ")
301
302
303 # add include path
304 set_property(SOURCE ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f PROPERTY COMPILE_FLAGS "${FFLAGS0} -I${CMAKE_CURRENT_SOURCE_DIR}")
305
306 #=========================================
307 # Set full unres MD-M sources
308 #=========================================
309 set(UNRES_MDM_SRCS ${UNRES_MDM_SRC0} ${UNRES_MDM_SRC3} ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f proc_proc.c )
310
311 #=========================================
312 # Build the binary
313 #=========================================
314 add_executable(UNRES_BIN-MD-M ${UNRES_MDM_SRCS} )
315 set_target_properties(UNRES_BIN-MD-M PROPERTIES OUTPUT_NAME ${UNRES_BIN})
316 set_property(TARGET UNRES_BIN-MD-M PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
317 #add_dependencies (${UNRES_BIN} ${UNRES_XDRFLIB})
318
319 #=========================================
320 # Link libraries
321 #=========================================
322 # link MPI library (libmpich.a)  
323 if(UNRES_WITH_MPI)
324   target_link_libraries( UNRES_BIN-MD-M ${MPI_Fortran_LIBRARIES} )
325 endif(UNRES_WITH_MPI)
326 # link libxdrf.a 
327 #message("UNRES_XDRFLIB=${UNRES_XDRFLIB}")
328 target_link_libraries( UNRES_BIN-MD-M xdrf )
329 if (Fortran_COMPILER_NAME STREQUAL "ifort")
330 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mcmodel=medium -shared-intel")
331 else ()
332 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mcmodel=medium ")
333 endif ()
334 #=========================================
335 # Install Path
336 #=========================================
337 install(TARGETS UNRES_BIN-MD-M DESTINATION ${CMAKE_INSTALL_PREFIX}/unres/MD)
338
339 #=========================================
340 # TESTS 
341 #=========================================
342
343 #=========================================
344 # Generate data test files
345 #=========================================
346 #  test_single_ala.sh
347 #=========================================
348
349 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh
350 "#!/bin/sh
351 export POT=GB
352 export PREFIX=ala10
353 #-----------------------------------------------------------------------------
354 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
355 #-----------------------------------------------------------------------------
356 DD=${CMAKE_SOURCE_DIR}/PARAM
357 export BONDPAR=$DD/bond.parm
358 export THETPAR=$DD/thetaml.5parm
359 export ROTPAR=$DD/scgauss.parm
360 export TORPAR=$DD/torsion_631Gdp.parm
361 export TORDPAR=$DD/torsion_double_631Gdp.parm
362 export ELEPAR=$DD/electr_631Gdp.parm
363 export SIDEPAR=$DD/sc_GB_opt.1gab_3S_qclass5no310-shan2-sc-16-10-8k
364 export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
365 export SCPPAR=$DD/scp.parm
366 export SCCORPAR=$DD/sccor_pdb_shelly.dat
367 export PATTERN=$DD/patterns.cart
368 #-----------------------------------------------------------------------------
369 $UNRES_BIN
370 ")
371
372 #
373 # File permissions workaround
374 #
375 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh 
376         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
377         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
378 )
379
380
381
382 #=========================================
383 #  ala10.inp
384 #=========================================
385
386 file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10.inp
387 "ala10 unblocked
388 SEED=-1111333 MD ONE_LETTER rescale_mode=2 
389 nstep=15000 ntwe=100 ntwx=1000 dt=0.1 lang=0 tbf t_bath=300 damax=1.0          &
390 reset_moment=1000 reset_vel=1000
391 WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873            &
392 WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000        &
393 WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000    &
394 WVDWPP=0.11371 WHPB=1.00000                                                    &
395 CUTOFF=7.00000 WCORR4=0.00000
396 12
397 XAAAAAAAAAAX 
398  0
399  0
400    90.0000   90.0000   90.0000  90.000   90.000   90.000   90.000   90.000 
401    90.0000   90.0000
402   180.0000  180.0000  180.0000 180.000  180.000  180.000  180.000  180.000
403   180.0000
404   110.0000  110.0000  110.0000 100.000  110.000  100.000  110.000  110.000 
405   110.0000  110.0000
406  -120.0000 -120.0000 -120.000 -120.000 -120.000 -120.000 -120.000 -120.000
407  -120.0000 -120.0000
408 ")
409
410 if(UNRES_MD_FF STREQUAL "E0LL2Y")
411
412 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota.pdb
413         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
414
415 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_unres.pdb
416         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
417
418 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_ENE_m.inp
419         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
420
421 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_MIN_CART.inp
422         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
423
424 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_micro.inp
425         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
426
427 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_MIN_INT.inp
428         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
429
430 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_MIN_REGULAR_INT.inp
431         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
432
433 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_B.inp
434         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
435
436 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_L.inp
437         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
438
439 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_NH.inp
440         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
441
442
443 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y.pdb
444         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
445
446 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_remd.inp
447         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
448
449 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1ei0_min.inp
450         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
451
452 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1ei0.pdb
453         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
454
455 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1dkz_cut.pdb
456         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
457
458 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1dkz_cut_unres.pdb
459         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
460
461 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-ber.inp
462         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
463
464 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-ene.inp
465         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
466
467 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-lang.inp
468         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
469
470 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-micro.inp
471         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
472
473 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-min.inp
474         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
475
476 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_unres_energy_check_mult.sh
477         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
478         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
479 )
480
481 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/matplotlib_fit_hist.py
482         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
483         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
484 )
485
486 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/matplotlib_hist.py
487         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
488         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
489 )
490
491 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/checkgrad.awk
492         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
493
494 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_CHECKGRAD.inp
495         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
496
497 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-checkgrad.inp
498         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
499
500 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/homology_mult/
501       DESTINATION ${CMAKE_CURRENT_BINARY_DIR} FILES_MATCHING PATTERN "*" )
502
503
504 #=========================================
505 #  test_prota_E0LL2Y.sh
506 #=========================================
507
508 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_prota_E0LL2Y.sh
509 "#!/bin/sh
510 export POT=GB
511 export FGPROCS=$2
512 export PREFIX=$1
513 #-----------------------------------------------------------------------------
514 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
515 #-----------------------------------------------------------------------------
516 DD=${CMAKE_SOURCE_DIR}/PARAM
517 export BONDPAR=$DD/bond_AM1_ext_dum.parm
518 export THETPAR=$DD/theta_abinitio_old_ext.parm
519 export THETPARPDB=$DD/thetaml_ext.5parm
520 export ROTPARPDB=$DD/scgauss_ext.parm
521 export ROTPAR=$DD/rotamers_AM1_aura_ext.10022007.parm
522 export TORPAR=$DD/torsion_631Gdp_old_ext.parm
523 export TORDPAR=$DD/torsion_double_631Gdp_old_ext.parm
524 export ELEPAR=$DD/electr_631Gdp_ext.parm
525 export SIDEPAR=$DD//scinter_GB_ext_lip.parm
526 export FOURIER=$DD/fourier_opt_ext.parm.1igd_hc_iter3_3
527 export SCCORPAR=$DD/sccor_am1_pawel_ext.dat
528 export SCPPAR=$DD/scp_ext.parm
529 export PATTERN=$DD/patterns.cart
530 export LIPTRANPAR=$DD/Lip_tran_initial_ext.parm
531 #-----------------------------------------------------------------------------
532 echo CTEST_FULL_OUTPUT
533 $UNRES_BIN
534 ./prota_unres_energy_check_mult.sh $1 ${UNRES_BIN}
535 ")
536
537 #  MESSAGE (STATUS "${MPI_Fortran_LIBRARIES}")
538   if ("${MPI_Fortran_LIBRARIES}"  MATCHES "lam")
539      MESSAGE (STATUS "LAM MPI library detected")
540      set (boot_lam "-boot")
541   else()
542      set (boot_lam "")
543   endif()
544
545   if (UNRES_SRUN)
546    set (np "-n")
547    set (mpiexec "srun")
548   elseif(UNRES_MPIRUN)
549    set (np "-np")
550    set (mpiexec "mpirun")
551   else()
552    set (np "-np")
553    set (mpiexec "mpiexec")
554   endif()
555
556
557 #
558 # File permissions workaround
559 #
560 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_prota_E0LL2Y.sh 
561         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
562         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
563 )
564
565 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_mpi_E0LL2Y.sh
566 "#!/bin/sh
567 export POT=GB
568 export FGPROCS=$2
569 export PREFIX=$1
570 #-----------------------------------------------------------------------------
571 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
572 #-----------------------------------------------------------------------------
573 DD=${CMAKE_SOURCE_DIR}/PARAM
574 export BONDPAR=$DD/bond_AM1_ext_dum.parm
575 export THETPAR=$DD/theta_abinitio_old_ext.parm
576 export THETPARPDB=$DD/thetaml_ext.5parm
577 export ROTPARPDB=$DD/scgauss_ext.parm
578 export ROTPAR=$DD/rotamers_AM1_aura_ext.10022007.parm
579 export TORPAR=$DD/torsion_631Gdp_old_ext.parm
580 export TORDPAR=$DD/torsion_double_631Gdp_old_ext.parm
581 export ELEPAR=$DD/electr_631Gdp_ext.parm
582 export SIDEPAR=$DD//scinter_GB_ext_lip.parm
583 export FOURIER=$DD/fourier_opt_ext.parm.1igd_hc_iter3_3
584 export SCCORPAR=$DD/sccor_am1_pawel_ext.dat
585 export SCPPAR=$DD/scp_ext.parm
586 export PATTERN=$DD/patterns.cart
587 export LIPTRANPAR=$DD/Lip_tran_initial_ext.parm
588 #-----------------------------------------------------------------------------
589 echo CTEST_FULL_OUTPUT
590 ${mpiexec} ${boot_lam} ${np} $3 $UNRES_BIN | grep -v traj1file |grep -v NaN
591 ./prota_unres_energy_check_mult.sh $1 ${UNRES_BIN}
592 ")
593
594 #
595 # File permissions workaround
596 #
597 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_mpi_E0LL2Y.sh 
598         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
599         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
600 )
601
602
603 endif(UNRES_MD_FF STREQUAL "E0LL2Y")
604
605
606
607 # Add tests
608
609 if(NOT UNRES_WITH_MPI)
610                   
611   if(UNRES_MD_FF STREQUAL "GAB")
612     add_test(NAME UNRES_M_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
613   endif(UNRES_MD_FF STREQUAL "GAB")
614  
615   if(UNRES_MD_FF STREQUAL "E0LL2Y")
616     add_test(NAME UNRES_M_ENE_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE_m 1 )
617     add_test(NAME UNRES_M_CHECKGRAD_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_CHECKGRAD 1 )
618     add_test(NAME UNRES_M_MIN_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_MIN_CART 1 )
619     add_test(NAME UNRES_M_MIN_INT COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_INT 1 )
620     add_test(NAME UNRES_M_REGULAR COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_REGULAR_INT 1 )
621     add_test(NAME UNRES_M_MD_microcanonical COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_micro 1 )
622     add_test(NAME UNRES_M_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_L 1 )
623 #no NH in MD-M
624 #    add_test(NAME UNRES_M_NoseHoover COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_NH 1 )
625     add_test(NAME UNRES_M_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_B 1 )
626     add_test(NAME UNRES_M_multi_ene COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-ene 1 )
627     add_test(NAME UNRES_M_multi_checkgrad COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-checkgrad 1 )
628     add_test(NAME UNRES_M_multi_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-min 1 )
629     add_test(NAME UNRES_M_multi_microcanonical COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-micro 1 )
630     add_test(NAME UNRES_M_multi_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-ber 1 )
631     add_test(NAME UNRES_M_multi_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-lang 1 )
632   endif(UNRES_MD_FF STREQUAL "E0LL2Y")
633
634 else(NOT UNRES_WITH_MPI)
635
636
637   if(UNRES_MD_FF STREQUAL "GAB")
638     add_test(NAME UNRES_M_MD_MPI_Ala10 COMMAND ${mpiexec} ${boot_lam} ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
639   endif(UNRES_MD_FF STREQUAL "GAB")
640
641   if(UNRES_MD_FF STREQUAL "E0LL2Y")
642 # no NH in src_MD-M code
643     add_test(NAME UNRES_M_ENE_prota COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE_m 2 )
644     add_test(NAME UNRES_M_ENE1_prota COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE_m 1 )
645     add_test(NAME UNRES_M_CHECKGRAD_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh prota_CHECKGRAD 2 2 )   
646     add_test(NAME UNRES_M_CHECKGRAD1_prota COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_CHECKGRAD 1 )   
647     add_test(NAME UNRES_M_CHECKGRAD_homology COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh Ts866_checkgrad_full 2 2 )   
648     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 )   
649     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 )
650     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 )
651     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 )
652     add_test(NAME UNRES_M_MD_microcanonical COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_micro 2 )
653     add_test(NAME UNRES_M_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_L 2 2 )
654 # no NH in src_MD-M code
655 ##    add_test(NAME UNRES_M_NoseHoover COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_NH 2 2 )
656     add_test(NAME UNRES_M_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_B 2 2 )
657     add_test(NAME UNRES_M_remd COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_remd 1 8 )
658     add_test(NAME UNRES_M_ss_static_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1ei0_min 1 2 )
659 #mutlichain
660     add_test(NAME UNRES_M_multi_ene COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-ene 2 2 )
661     add_test(NAME UNRES_M_multi_ene1 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-ene 1 1 )
662     add_test(NAME UNRES_M_multi_checkgrad COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-checkgrad 2 2 )
663     add_test(NAME UNRES_M_multi_checkgrad1 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-checkgrad 1 1 )
664     add_test(NAME UNRES_M_multi_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-min 2 2 )
665 #    add_test(NAME UNRES_M_multi_microcanonical COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-micro 2 2 )
666 #    add_test(NAME UNRES_M_multi_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-ber 2 2 )
667 #    add_test(NAME UNRES_M_multi_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-lang 2 2 )
668   endif(UNRES_MD_FF STREQUAL "E0LL2Y")
669
670 endif(NOT UNRES_WITH_MPI)
671