cmake -mcmodel=medium -shared-intel
[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 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 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mcmodel=medium -shared-intel")
327
328 #=========================================
329 # Install Path
330 #=========================================
331 install(TARGETS UNRES_BIN-MD-M DESTINATION ${CMAKE_INSTALL_PREFIX}/unres/MD)
332
333 #=========================================
334 # TESTS 
335 #=========================================
336
337 #=========================================
338 # Generate data test files
339 #=========================================
340 #  test_single_ala.sh
341 #=========================================
342
343 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh
344 "#!/bin/sh
345 export POT=GB
346 export PREFIX=ala10
347 #-----------------------------------------------------------------------------
348 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
349 #-----------------------------------------------------------------------------
350 DD=${CMAKE_SOURCE_DIR}/PARAM
351 export BONDPAR=$DD/bond.parm
352 export THETPAR=$DD/thetaml.5parm
353 export ROTPAR=$DD/scgauss.parm
354 export TORPAR=$DD/torsion_631Gdp.parm
355 export TORDPAR=$DD/torsion_double_631Gdp.parm
356 export ELEPAR=$DD/electr_631Gdp.parm
357 export SIDEPAR=$DD/sc_GB_opt.1gab_3S_qclass5no310-shan2-sc-16-10-8k
358 export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
359 export SCPPAR=$DD/scp.parm
360 export SCCORPAR=$DD/sccor_pdb_shelly.dat
361 export PATTERN=$DD/patterns.cart
362 #-----------------------------------------------------------------------------
363 $UNRES_BIN
364 ")
365
366 #
367 # File permissions workaround
368 #
369 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh 
370         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
371         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
372 )
373
374
375
376 #=========================================
377 #  ala10.inp
378 #=========================================
379
380 file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10.inp
381 "ala10 unblocked
382 SEED=-1111333 MD ONE_LETTER rescale_mode=2 
383 nstep=15000 ntwe=100 ntwx=1000 dt=0.1 lang=0 tbf t_bath=300 damax=1.0          &
384 reset_moment=1000 reset_vel=1000
385 WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873            &
386 WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000        &
387 WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000    &
388 WVDWPP=0.11371 WHPB=1.00000                                                    &
389 CUTOFF=7.00000 WCORR4=0.00000
390 12
391 XAAAAAAAAAAX 
392  0
393  0
394    90.0000   90.0000   90.0000  90.000   90.000   90.000   90.000   90.000 
395    90.0000   90.0000
396   180.0000  180.0000  180.0000 180.000  180.000  180.000  180.000  180.000
397   180.0000
398   110.0000  110.0000  110.0000 100.000  110.000  100.000  110.000  110.000 
399   110.0000  110.0000
400  -120.0000 -120.0000 -120.000 -120.000 -120.000 -120.000 -120.000 -120.000
401  -120.0000 -120.0000
402 ")
403
404 if(UNRES_MD_FF STREQUAL "E0LL2Y")
405
406 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota.pdb
407         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
408
409 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_unres.pdb
410         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
411
412 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_ENE_m.inp
413         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
414
415 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_MIN_CART.inp
416         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
417
418 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_micro.inp
419         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
420
421 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_MIN_INT.inp
422         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
423
424 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1l2y_MIN_REGULAR_INT.inp
425         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
426
427 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_B.inp
428         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
429
430 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_L.inp
431         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
432
433 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_NH.inp
434         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
435
436
437 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y.pdb
438         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
439
440 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1L2Y_remd.inp
441         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
442
443 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1ei0_min.inp
444         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
445
446 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1ei0.pdb
447         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
448
449 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1dkz_cut.pdb
450         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
451
452 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1dkz_cut_unres.pdb
453         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
454
455 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-ber.inp
456         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
457
458 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-ene.inp
459         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
460
461 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-lang.inp
462         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
463
464 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-micro.inp
465         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
466
467 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-min.inp
468         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
469
470 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_unres_energy_check_mult.sh
471         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
472         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
473 )
474
475 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/matplotlib_fit_hist.py
476         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
477         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
478 )
479
480 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/matplotlib_hist.py
481         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} 
482         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
483 )
484
485 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/checkgrad.awk
486         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
487
488 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/prota_CHECKGRAD.inp
489         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
490
491 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/1DKZcut-checkgrad.inp
492         DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
493
494 FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/homology_mult/
495       DESTINATION ${CMAKE_CURRENT_BINARY_DIR} FILES_MATCHING PATTERN "*" )
496
497
498 #=========================================
499 #  test_prota_E0LL2Y.sh
500 #=========================================
501
502 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_prota_E0LL2Y.sh
503 "#!/bin/sh
504 export POT=GB
505 export FGPROCS=$2
506 export PREFIX=$1
507 #-----------------------------------------------------------------------------
508 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
509 #-----------------------------------------------------------------------------
510 DD=${CMAKE_SOURCE_DIR}/PARAM
511 export BONDPAR=$DD/bond_AM1_ext_dum.parm
512 export THETPAR=$DD/theta_abinitio_old_ext.parm
513 export THETPARPDB=$DD/thetaml_ext.5parm
514 export ROTPARPDB=$DD/scgauss_ext.parm
515 export ROTPAR=$DD/rotamers_AM1_aura_ext.10022007.parm
516 export TORPAR=$DD/torsion_631Gdp_old_ext.parm
517 export TORDPAR=$DD/torsion_double_631Gdp_old_ext.parm
518 export ELEPAR=$DD/electr_631Gdp_ext.parm
519 export SIDEPAR=$DD//scinter_GB_ext_lip.parm
520 export FOURIER=$DD/fourier_opt_ext.parm.1igd_hc_iter3_3
521 export SCCORPAR=$DD/sccor_am1_pawel_ext.dat
522 export SCPPAR=$DD/scp_ext.parm
523 export PATTERN=$DD/patterns.cart
524 export LIPTRANPAR=$DD/Lip_tran_initial_ext.parm
525 #-----------------------------------------------------------------------------
526 echo CTEST_FULL_OUTPUT
527 $UNRES_BIN
528 ./prota_unres_energy_check_mult.sh $1 ${UNRES_BIN}
529 ")
530
531 #  MESSAGE (STATUS "${MPI_Fortran_LIBRARIES}")
532   if ("${MPI_Fortran_LIBRARIES}"  MATCHES "lam")
533      MESSAGE (STATUS "LAM MPI library detected")
534      set (boot_lam "-boot")
535   else()
536      set (boot_lam "")
537   endif()
538
539   if (UNRES_SRUN)
540    set (np "-n")
541    set (mpiexec "srun")
542   elseif(UNRES_MPIRUN)
543    set (np "-np")
544    set (mpiexec "mpirun")
545   else()
546    set (np "-np")
547    set (mpiexec "mpiexec")
548   endif()
549
550
551 #
552 # File permissions workaround
553 #
554 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_prota_E0LL2Y.sh 
555         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
556         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
557 )
558
559 FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_mpi_E0LL2Y.sh
560 "#!/bin/sh
561 export POT=GB
562 export FGPROCS=$2
563 export PREFIX=$1
564 #-----------------------------------------------------------------------------
565 UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
566 #-----------------------------------------------------------------------------
567 DD=${CMAKE_SOURCE_DIR}/PARAM
568 export BONDPAR=$DD/bond_AM1_ext_dum.parm
569 export THETPAR=$DD/theta_abinitio_old_ext.parm
570 export THETPARPDB=$DD/thetaml_ext.5parm
571 export ROTPARPDB=$DD/scgauss_ext.parm
572 export ROTPAR=$DD/rotamers_AM1_aura_ext.10022007.parm
573 export TORPAR=$DD/torsion_631Gdp_old_ext.parm
574 export TORDPAR=$DD/torsion_double_631Gdp_old_ext.parm
575 export ELEPAR=$DD/electr_631Gdp_ext.parm
576 export SIDEPAR=$DD//scinter_GB_ext_lip.parm
577 export FOURIER=$DD/fourier_opt_ext.parm.1igd_hc_iter3_3
578 export SCCORPAR=$DD/sccor_am1_pawel_ext.dat
579 export SCPPAR=$DD/scp_ext.parm
580 export PATTERN=$DD/patterns.cart
581 export LIPTRANPAR=$DD/Lip_tran_initial_ext.parm
582 #-----------------------------------------------------------------------------
583 echo CTEST_FULL_OUTPUT
584 ${mpiexec} ${boot_lam} ${np} $3 $UNRES_BIN | grep -v traj1file |grep -v NaN
585 ./prota_unres_energy_check_mult.sh $1 ${UNRES_BIN}
586 ")
587
588 #
589 # File permissions workaround
590 #
591 FILE(   COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_mpi_E0LL2Y.sh 
592         DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
593         FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
594 )
595
596
597 endif(UNRES_MD_FF STREQUAL "E0LL2Y")
598
599
600
601 # Add tests
602
603 if(NOT UNRES_WITH_MPI)
604                   
605   if(UNRES_MD_FF STREQUAL "GAB")
606     add_test(NAME UNRES_M_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
607   endif(UNRES_MD_FF STREQUAL "GAB")
608  
609   if(UNRES_MD_FF STREQUAL "E0LL2Y")
610     add_test(NAME UNRES_M_ENE_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_ENE_m 1 )
611     add_test(NAME UNRES_M_CHECKGRAD_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_CHECKGRAD 1 )
612     add_test(NAME UNRES_M_MIN_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_MIN_CART 1 )
613     add_test(NAME UNRES_M_MIN_INT COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_INT 1 )
614     add_test(NAME UNRES_M_REGULAR COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_MIN_REGULAR_INT 1 )
615     add_test(NAME UNRES_M_MD_microcanonical COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_micro 1 )
616     add_test(NAME UNRES_M_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_L 1 )
617 #no NH in MD-M
618 #    add_test(NAME UNRES_M_NoseHoover COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_NH 1 )
619     add_test(NAME UNRES_M_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1L2Y_B 1 )
620     add_test(NAME UNRES_M_multi_ene COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-ene 1 )
621     add_test(NAME UNRES_M_multi_checkgrad COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-checkgrad 1 )
622     add_test(NAME UNRES_M_multi_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-min 1 )
623     add_test(NAME UNRES_M_multi_microcanonical COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-micro 1 )
624     add_test(NAME UNRES_M_multi_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-ber 1 )
625     add_test(NAME UNRES_M_multi_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1DKZcut-lang 1 )
626   endif(UNRES_MD_FF STREQUAL "E0LL2Y")
627
628 else(NOT UNRES_WITH_MPI)
629
630
631   if(UNRES_MD_FF STREQUAL "GAB")
632     add_test(NAME UNRES_M_MD_MPI_Ala10 COMMAND ${mpiexec} ${boot_lam} ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
633   endif(UNRES_MD_FF STREQUAL "GAB")
634
635   if(UNRES_MD_FF STREQUAL "E0LL2Y")
636 # no NH in src_MD-M code
637     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 )
638     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 )
639     add_test(NAME UNRES_M_CHECKGRAD_prota COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh prota_CHECKGRAD 2 2 )   
640     add_test(NAME UNRES_M_CHECKGRAD1_prota COMMAND ${mpiexec} ${boot_lam} ${np} 1 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh prota_CHECKGRAD 1 )   
641     add_test(NAME UNRES_M_CHECKGRAD_homology COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh Ts866_checkgrad_full 2 2 )   
642     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 )   
643     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 )
644     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 )
645     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 )
646     add_test(NAME UNRES_M_MD_microcanonical COMMAND ${mpiexec} ${boot_lam} ${np} 2 ${CMAKE_CURRENT_BINARY_DIR}/test_prota_E0LL2Y.sh 1l2y_micro 2 )
647     add_test(NAME UNRES_M_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_L 2 2 )
648 # no NH in src_MD-M code
649 ##    add_test(NAME UNRES_M_NoseHoover COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_NH 2 2 )
650     add_test(NAME UNRES_M_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_B 2 2 )
651     add_test(NAME UNRES_M_remd COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1L2Y_remd 1 8 )
652     add_test(NAME UNRES_M_ss_static_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1ei0_min 1 2 )
653 #mutlichain
654     add_test(NAME UNRES_M_multi_ene COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-ene 2 2 )
655     add_test(NAME UNRES_M_multi_ene1 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-ene 1 1 )
656     add_test(NAME UNRES_M_multi_checkgrad COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-checkgrad 2 2 )
657     add_test(NAME UNRES_M_multi_checkgrad1 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-checkgrad 1 1 )
658     add_test(NAME UNRES_M_multi_min COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-min 2 2 )
659 #    add_test(NAME UNRES_M_multi_microcanonical COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-micro 2 2 )
660 #    add_test(NAME UNRES_M_multi_Berendsen COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-ber 2 2 )
661 #    add_test(NAME UNRES_M_multi_Langevin COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 1DKZcut-lang 2 2 )
662   endif(UNRES_MD_FF STREQUAL "E0LL2Y")
663
664 endif(NOT UNRES_WITH_MPI)
665