X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=source%2Funres%2Fsrc_MD%2FCMakeLists.txt;h=7f31f0eb92f8d0942e5da3419f9412151f9332c9;hb=0159dffb0c6ab8021f45dc01794d77b091499a4d;hp=86c61feb7b64147d36a385df052f3cd4a0abbcb0;hpb=4d504b8cda89a20406a6780c89c37b4ebcc6fa13;p=unres.git diff --git a/source/unres/src_MD/CMakeLists.txt b/source/unres/src_MD/CMakeLists.txt index 86c61fe..7f31f0e 100644 --- a/source/unres/src_MD/CMakeLists.txt +++ b/source/unres/src_MD/CMakeLists.txt @@ -59,7 +59,6 @@ set(UNRES_MD_SRC0 parmread.F pinorm.f printmat.f - prng_32.F q_measure.F randgens.f rattle.F @@ -81,10 +80,12 @@ set(UNRES_MD_SRC0 unres.F ) -if (Fortran_COMPILER_NAME STREQUAL "ifort") - set(UNRES_MD_SRC0 "${UNRES_MDM_SRC0} prng.f") -else - set(UNRES_MD_SRC0 "${UNRES_MDM_SRC0} prng_32.F") +if(Fortran_COMPILER_NAME STREQUAL "ifort") + set(UNRES_MD_SRC0 ${UNRES_MD_SRC0} prng.f ) +elseif(Fortran_COMPILER_NAME STREQUAL "mpif90") + set(UNRES_MD_SRC0 ${UNRES_MD_SRC0} prng.f ) +else() + set(UNRES_MD_SRC0 ${UNRES_MD_SRC0} prng_32.F ) endif (Fortran_COMPILER_NAME STREQUAL "ifort") @@ -118,7 +119,6 @@ set(UNRES_MD_PP_SRC MP.F MREMD.F parmread.F - prng_32.F q_measure1.F q_measure3.F q_measure.F @@ -138,7 +138,7 @@ set(UNRES_MD_PP_SRC if(NOT Fortran_COMPILER_NAME STREQUAL "ifort") - set(UNRES_MD_PP_SRC "${UNRES_MDM_PP_SRC} prng_32.F") + set(UNRES_MD_PP_SRC ${UNRES_MD_PP_SRC} prng_32.F) endif(NOT Fortran_COMPILER_NAME STREQUAL "ifort") #================================================ @@ -216,7 +216,9 @@ if (UNRES_WITH_MPI) set(CPPFLAGS "${CPPFLAGS} -DMP -DMPI") endif(UNRES_WITH_MPI) +#========================================= # Apply preprocesor flags to *.F files +#========================================= set_property(SOURCE ${UNRES_MD_PP_SRC} PROPERTY COMPILE_DEFINITIONS ${CPPFLAGS} ) @@ -225,32 +227,51 @@ set_property(SOURCE ${UNRES_MD_PP_SRC} PROPERTY COMPILE_DEFINITIONS ${CPPFLAGS} #======================================== if(UNRES_WITH_MPI) # binary with mpi - set(UNRES_BIN "unres_${Fortran_COMPILER_NAME}_MPICH_${UNRES_FF}.exe") + set(UNRES_BIN "unres_${Fortran_COMPILER_NAME}_MPICH_${UNRES_MD_FF}.exe") else(UNRES_WITH_MPI) # binary without mpi - set(UNRES_BIN "unres_${Fortran_COMPILER_NAME}_single_${UNRES_FF}.exe") + set(UNRES_BIN "unres_${Fortran_COMPILER_NAME}_single_${UNRES_MD_FF}.exe") endif(UNRES_WITH_MPI) #========================================= -# cinfo.f stupid workaround for cmake -# - shame on me ]:) +# cinfo.f workaround for cmake #========================================= -set_property(SOURCE compinfo.c PROPERTY CMAKE_C_FLAGS "-c" ) -add_executable(compinfo-md compinfo.c) -set_target_properties(compinfo-md PROPERTIES OUTPUT_NAME compinfo) - -set(UNRES_CINFO_DIR "${CMAKE_CURRENT_BINARY_DIR}" ) -add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cinfo.f ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/COMMON.IOUNITS ${CMAKE_CURRENT_BINARY_DIR}/COMMON.IOUNITS - COMMAND ${CMAKE_CURRENT_BINARY_DIR}/compinfo | true - DEPENDS compinfo-md ) -set_property(SOURCE ${UNRES_CINFO_DIR}/cinfo.f PROPERTY COMPILE_FLAGS ${FFLAGS0} ) +# get the current date +TODAY(DATE) +# generate cinfo.f + +set(CINFO "${CMAKE_CURRENT_BINARY_DIR}/cinfo.f") +FILE(WRITE ${CINFO} +"C CMake generated file + subroutine cinfo + include 'COMMON.IOUNITS' + write(iout,*)'++++ Compile info ++++' + write(iout,*)'Version ${UNRES_MAJOR}.${UNRES_MINOR} build ${UNRES_PATCH}' +") + +CINFO_FORMAT(${CINFO} "Compiled" "${DATE}" ) +CINFO_FORMAT(${CINFO} "Compiled by" "$ENV{USER}@$ENV{HOST}" ) +CINFO_FORMAT(${CINFO} "OS name:" "${CMAKE_SYSTEM_NAME}" ) +CINFO_FORMAT(${CINFO} "OS release:" "${CMAKE_SYSTEM}" ) +CINFO_FORMAT(${CINFO} "Fortran Compiler:" "${CMAKE_Fortran_COMPILER}" ) +CINFO_FORMAT(${CINFO} "MD Force field:" "${UNRES_MD_FF}" ) +CINFO_FORMAT(${CINFO} "CPPFLAGS =" "${CPPFLAGS}") + +FILE(APPEND ${CINFO} +" write(iout,*)'++++ End of compile info ++++' + return + end ") + +#FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f +# CINFO_FORMAT(CPPFLAGS) +#) +# add include path +set_property(SOURCE ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f PROPERTY COMPILE_FLAGS "${FFLAGS0} -I${CMAKE_CURRENT_SOURCE_DIR}") #========================================= # Set full unres MD sources #========================================= -set(UNRES_MD_SRCS ${UNRES_MD_SRC0} ${UNRES_MD_SRC3} ${UNRES_CINFO_DIR}/cinfo.f ) +set(UNRES_MD_SRCS ${UNRES_MD_SRC0} ${UNRES_MD_SRC3} ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f ) #========================================= @@ -298,7 +319,7 @@ target_link_libraries( UNRES_BIN-MD xdrf ) # test_single_ala.sh #========================================= -FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh +FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh "#!/bin/sh export POT=GB export PREFIX=ala10 @@ -321,15 +342,25 @@ export PATTERN=$DD/patterns.cart $UNRES_BIN ") +# +# File permissions workaround +# +FILE( COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh + DESTINATION ${CMAKE_CURRENT_BINARY_DIR} + FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE +) + + + #========================================= # ala10.inp #========================================= file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10.inp "ala10 unblocked -SEED=-1111333 MD ONE_LETTER rescale_mode=2 PDBOUT +SEED=-1111333 MD ONE_LETTER rescale_mode=2 nstep=15000 ntwe=100 ntwx=1000 dt=0.1 lang=0 tbf t_bath=300 damax=1.0 & -reset_moment=1000 reset_vel=1000 MDPDB +reset_moment=1000 reset_vel=1000 WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873 & WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000 & WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000 & @@ -353,9 +384,13 @@ XAAAAAAAAAAX # Add tests if(NOT UNRES_WITH_MPI) - + add_test(NAME UNRES_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh ) +else(NOT UNRES_WITH_MPI) + + + add_test(NAME UNRES_MD_MPI_Ala10 COMMAND mpiexec -boot ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh ) endif(NOT UNRES_WITH_MPI)