hdiff output

r31551/CMakeLists.txt 2017-01-21 10:35:49.750250000 +0000 r31550/CMakeLists.txt 2017-01-21 10:35:50.290250000 +0000
103:                 ${DUMMY_CHARMM}103:                 ${DUMMY_CHARMM}
104:                 ${DUMMY_AMBER9}104:                 ${DUMMY_AMBER9}
105:                 ${DUMMY_AMBER12}105:                 ${DUMMY_AMBER12}
106:                 ${DUMMY_CUDA}106:                 ${DUMMY_CUDA}
107:                 ${DUMMY_DMACRYS}107:                 ${DUMMY_DMACRYS}
108:                 ${DUMMY_USERPOT}108:                 ${DUMMY_USERPOT}
109:                 ${DUMMY_TESTING} 109:                 ${DUMMY_TESTING} 
110:                 ${DUMMY_OPEP}110:                 ${DUMMY_OPEP}
111:                 ${DUMMY_OPTIM} 111:                 ${DUMMY_OPTIM} 
112:                 ${DUMMY_QUIP} )112:                 ${DUMMY_QUIP} )
113: set(DUMMY_CPP_FLAGS "DUMMY_AMBER12;DUMMY_CUDA") 
114: 113: 
115: # Glob all the sources114: # Glob all the sources
116: file(GLOB GMIN_LIB_SOURCES *.f115: file(GLOB GMIN_LIB_SOURCES *.f
117:                            *.f90116:                            *.f90
118:                            *.F117:                            *.F
119:                            *.F90 )118:                            *.F90 )
120: 119: 
121: file(GLOB NOT_GMIN_SOURCES myblas.f120: file(GLOB NOT_GMIN_SOURCES myblas.f
122:                            mylapack.f121:                            mylapack.f
123:                            # These files are generated later122:                            # These files are generated later
162: 161: 
163: # Find BLAS and LAPACK libraries162: # Find BLAS and LAPACK libraries
164: find_package(MYBLAS)163: find_package(MYBLAS)
165: find_package(MYLAPACK)164: find_package(MYLAPACK)
166: 165: 
167: # Make an extras library for dummies, this is necessary because some of the166: # Make an extras library for dummies, this is necessary because some of the
168: # files in gminlib use modules made by extralib167: # files in gminlib use modules made by extralib
169: add_library(extralib ${ALL_EXTRA_SOURCES})168: add_library(extralib ${ALL_EXTRA_SOURCES})
170: set_module_dir(extralib)169: set_module_dir(extralib)
171: set_target_properties(extralib PROPERTIES LINKER_LANGUAGE "Fortran") 170: set_target_properties(extralib PROPERTIES LINKER_LANGUAGE "Fortran") 
172: set_target_properties(extralib PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS};${DUMMY_CPP_FLAGS};__SPARSE")171: set_target_properties(extralib PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS};DUMMY_AMBER12;DUMMY_CUDA;__SPARSE;DUMMY_OPEP")
173: 172: 
174: # Link CHOLMOD, if we're using it173: # Link CHOLMOD, if we're using it
175: option(WITH_SPARSE "Compile with SuiteSparse for sparse hessian diagonalisation" OFF)174: option(WITH_SPARSE "Compile with SuiteSparse for sparse hessian diagonalisation" OFF)
176: if(WITH_SPARSE)175: if(WITH_SPARSE)
177:    add_subdirectory(${SVN_ROOT}/SuiteSparse SuiteSparse)176:    add_subdirectory(${SVN_ROOT}/SuiteSparse SuiteSparse)
178:    include_directories(${SVN_ROOT}/SuiteSparse/SuiteSparse/CHOLMOD/Include)177:    include_directories(${SVN_ROOT}/SuiteSparse/SuiteSparse/CHOLMOD/Include)
179:    include_directories(${SVN_ROOT}/SuiteSparse/SuiteSparse/SuiteSparse_config)178:    include_directories(${SVN_ROOT}/SuiteSparse/SuiteSparse/SuiteSparse_config)
180:    add_definitions(-D__SPARSE)179:    add_definitions(-D__SPARSE)
181:    file(GLOB SPARSE_INTERFACE sparse/*.f90180:    file(GLOB SPARSE_INTERFACE sparse/*.f90
182:                               sparse/*.c ) 181:                               sparse/*.c ) 
237: # At the moment, I just link in the dummy module instead.236: # At the moment, I just link in the dummy module instead.
238: #  list(REMOVE_ITEM EXTRA_SOURCES ${DUMMY_AMH})237: #  list(REMOVE_ITEM EXTRA_SOURCES ${DUMMY_AMH})
239:   add_subdirectory(${GMIN_SOURCE_DIR}/AMH)238:   add_subdirectory(${GMIN_SOURCE_DIR}/AMH)
240:   add_executable(AMHGMIN ${EXTRA_SOURCES})239:   add_executable(AMHGMIN ${EXTRA_SOURCES})
241:   set_module_dir(AMHGMIN)240:   set_module_dir(AMHGMIN)
242:   set_module_depends(AMHGMIN gminlib)241:   set_module_depends(AMHGMIN gminlib)
243:   set_module_dir(amh)242:   set_module_dir(amh)
244:   set_module_depends(amh gminlib243:   set_module_depends(amh gminlib
245:                          extralib )244:                          extralib )
246:   set_target_properties(AMHGMIN PROPERTIES LINKER_LANGUAGE "Fortran")245:   set_target_properties(AMHGMIN PROPERTIES LINKER_LANGUAGE "Fortran")
247:   set_target_properties(AMHGMIN PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS};${DUMMY_CPP_FLAGS}")246:   set_target_properties(AMHGMIN PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS};DUMMY_AMBER12;DUMMY_CUDA;DUMMY_OPEP")
248:   target_link_libraries(AMHGMIN gminlib 247:   target_link_libraries(AMHGMIN gminlib 
249:                                 amh248:                                 amh
250:                                 ${MYLAPACK_LIBS})249:                                 ${MYLAPACK_LIBS})
251: endif(WITH_AMH)250: endif(WITH_AMH)
252: 251: 
253: # A9GMIN  252: # A9GMIN  
254: option(WITH_AMBER9 "Enable Amber GMIN with AMBER9 compilation" OFF)253: option(WITH_AMBER9 "Enable Amber GMIN with AMBER9 compilation" OFF)
255: if(WITH_AMBER9)254: if(WITH_AMBER9)
256:   SET(EXTRA_SOURCES ${ALL_EXTRA_SOURCES})255:   SET(EXTRA_SOURCES ${ALL_EXTRA_SOURCES})
257:   list(REMOVE_ITEM EXTRA_SOURCES ${DUMMY_AMBER9})256:   list(REMOVE_ITEM EXTRA_SOURCES ${DUMMY_AMBER9})
258:   find_package(NAB)257:   find_package(NAB)
259:   add_subdirectory(AMBER) # temporary folder to copy files from sander;  258:   add_subdirectory(AMBER) # temporary folder to copy files from sander;  
260:   add_executable(A9GMIN main.F259:   add_executable(A9GMIN main.F
261:                         ${EXTRA_SOURCES} )260:                         ${EXTRA_SOURCES} )
262:   set_module_dir(A9GMIN)261:   set_module_dir(A9GMIN)
263:   set_module_depends(A9GMIN gminlib)262:   set_module_depends(A9GMIN gminlib)
264:   set_module_dir(AMBER_LIB)263:   set_module_dir(AMBER_LIB)
265:   set_module_depends(AMBER_LIB gminlib)264:   set_module_depends(AMBER_LIB gminlib)
266:   set_target_properties(A9GMIN PROPERTIES LINKER_LANGUAGE "Fortran")265:   set_target_properties(A9GMIN PROPERTIES LINKER_LANGUAGE "Fortran")
267:   set_target_properties(A9GMIN PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS};${DUMMY_CPP_FLAGS};__SPARSE")266:   set_target_properties(A9GMIN PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS};DUMMY_AMBER12;DUMMY_CUDA;__SPARSE;DUMMY_OPEP")
268:   target_link_libraries(A9GMIN gminlib267:   target_link_libraries(A9GMIN gminlib
269:                                AMBER_LIB268:                                AMBER_LIB
270:                                NAB_LIB269:                                NAB_LIB
271:                                ${MYLAPACK_LIBS} )270:                                ${MYLAPACK_LIBS} )
272: endif(WITH_AMBER9)271: endif(WITH_AMBER9)
273: 272: 
274: # For A12GMIN or CUDAGMIN, we need to build and add the AMBER 12 interface.273: # For A12GMIN or CUDAGMIN, we need to build and add the AMBER 12 interface.
275: # We also need to install networkx, for the chirality and cis/trans scripts.274: # We also need to install networkx, for the chirality and cis/trans scripts.
276: if(WITH_AMBER12 OR WITH_CUDA)275: if(WITH_AMBER12 OR WITH_CUDA)
277:   add_subdirectory(${SVN_ROOT}/AMBER12 AMBER12_interface)276:   add_subdirectory(${SVN_ROOT}/AMBER12 AMBER12_interface)
289: #    message(FATAL_ERROR "CMake cannot find Python.")288: #    message(FATAL_ERROR "CMake cannot find Python.")
290: #  endif(PYTHON)289: #  endif(PYTHON)
291: endif()290: endif()
292: 291: 
293: # A12GMIN  292: # A12GMIN  
294: option(WITH_AMBER12 "Enable Amber GMIN with AMBER12 compilation" OFF)293: option(WITH_AMBER12 "Enable Amber GMIN with AMBER12 compilation" OFF)
295: # A12GMIN and CUDAGMIN both use the same Amber interface. Thus, we can only build the CPU version or the294: # A12GMIN and CUDAGMIN both use the same Amber interface. Thus, we can only build the CPU version or the
296: # GPU version at any given time.295: # GPU version at any given time.
297: if(WITH_AMBER12 AND NOT WITH_CUDA)296: if(WITH_AMBER12 AND NOT WITH_CUDA)
298:   SET(EXTRA_SOURCES ${ALL_EXTRA_SOURCES})297:   SET(EXTRA_SOURCES ${ALL_EXTRA_SOURCES})
299:   list(REMOVE_ITEM EXTRA_SOURCES ${DUMMY_AMBER12})298:   add_executable(A12GMIN main.F
300:   add_library(amber12_extralib ${EXTRA_SOURCES})299:                          ${EXTRA_SOURCES})
301:   set_module_dir(amber12_extralib) 
302:   set_target_properties(amber12_extralib PROPERTIES LINKER_LANGUAGE "Fortran")  
303:   set_target_properties(amber12_extralib PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS};${DUMMY_CPP_FLAGS}") 
304:  
305:   add_executable(A12GMIN main.F ${DUMMY_AMBER12}) 
306:   set_module_dir(A12GMIN)300:   set_module_dir(A12GMIN)
307:   set_module_depends(A12GMIN gminlib301:   set_module_depends(A12GMIN gminlib
308:                              amber12_base 302:                              amber12_base )
309:                              amber12_extralib) 
310:   set_target_properties(A12GMIN PROPERTIES LINKER_LANGUAGE "Fortran") 303:   set_target_properties(A12GMIN PROPERTIES LINKER_LANGUAGE "Fortran") 
 304:   set_target_properties(A12GMIN PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS};DUMMY_CUDA;DUMMY_OPEP") 
311:   target_link_libraries(A12GMIN gminlib305:   target_link_libraries(A12GMIN gminlib
312:                                 amber12_base306:                                 amber12_base
313:                                 amber12_extralib 
314:                                 ${MYLAPACK_LIBS} )307:                                 ${MYLAPACK_LIBS} )
315: endif(WITH_AMBER12 AND NOT WITH_CUDA)308: endif(WITH_AMBER12 AND NOT WITH_CUDA)
316: 309: 
317: # CUDAGMIN310: # CUDAGMIN
318: option(WITH_CUDA "Enable CUDAGMIN compilation" OFF)311: option(WITH_CUDA "Enable CUDAGMIN compilation" OFF)
319: if(WITH_CUDA)312: if(WITH_CUDA)
320:   if(NOT ${COMPILER_SWITCH} STREQUAL "ifort" AND NOT ${COMPILER_SWITCH} STREQUAL "gfortran")313:   if(NOT ${COMPILER_SWITCH} STREQUAL "ifort" AND NOT ${COMPILER_SWITCH} STREQUAL "gfortran")
321:     message( FATAL_ERROR "The cuda version of AMBER can only be compiled with gnu or Intel compilers. " )314:     message( FATAL_ERROR "The cuda version of AMBER can only be compiled with gnu or Intel compilers. " )
322:   endif (NOT ${COMPILER_SWITCH} STREQUAL "ifort" AND NOT ${COMPILER_SWITCH} STREQUAL "gfortran")315:   endif (NOT ${COMPILER_SWITCH} STREQUAL "ifort" AND NOT ${COMPILER_SWITCH} STREQUAL "gfortran") 
323:  
324:   SET(EXTRA_SOURCES ${ALL_EXTRA_SOURCES})316:   SET(EXTRA_SOURCES ${ALL_EXTRA_SOURCES})
325:   list(REMOVE_ITEM EXTRA_SOURCES ${DUMMY_AMBER12} ${DUMMY_CUDA}) 
326:   add_library(cuda_extralib ${EXTRA_SOURCES}) 
327:   set_module_dir(cuda_extralib) 
328:   set_target_properties(cuda_extralib PROPERTIES LINKER_LANGUAGE "Fortran")  
329:   set_target_properties(cuda_extralib PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS};${DUMMY_CPP_FLAGS}") 
330:  
331:   add_subdirectory(${SVN_ROOT}/CUDA CUDAinterface)317:   add_subdirectory(${SVN_ROOT}/CUDA CUDAinterface)
332:   add_executable(CUDAGMIN main.F ${DUMMY_AMBER12} ${DUMMY_CUDA})318:   add_executable(CUDAGMIN main.F
 319:                           ${EXTRA_SOURCES})
333:   set_module_dir(CUDAGMIN)320:   set_module_dir(CUDAGMIN)
334:   set_module_depends(CUDAGMIN gminlib 321:   set_module_depends(CUDAGMIN gminlib 
335:                               amber12_base 322:                               amber12_base )
336:                               cuda_extralib ) 
337:   set_target_properties(CUDAGMIN PROPERTIES LINKER_LANGUAGE "Fortran")323:   set_target_properties(CUDAGMIN PROPERTIES LINKER_LANGUAGE "Fortran")
338:   set_target_properties(CUDAGMIN PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS};CUDA")324:   set_target_properties(CUDAGMIN PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS};CUDA;DUMMY_OPEP")
339:   target_link_libraries(CUDAGMIN gminlib 325:   target_link_libraries(CUDAGMIN gminlib 
340:                                  CUDAinterface326:                                  CUDAinterface
341:                                  amber12_base327:                                  amber12_base
342:                                  cuda_extralib 
343:                                  ${MYLAPACK_LIBS} )328:                                  ${MYLAPACK_LIBS} )
344: endif(WITH_CUDA)329: endif(WITH_CUDA)
345: 330: 
346: #DMACRYS331: #DMACRYS
347: option(WITH_DMACRYS "Enable DMAGMIN compilation (DMACRYS needs to be present!)" OFF)332: option(WITH_DMACRYS "Enable DMAGMIN compilation (DMACRYS needs to be present!)" OFF)
348: if(WITH_DMACRYS)333: if(WITH_DMACRYS)
349:   SET(EXTRA_SOURCES ${ALL_EXTRA_SOURCES})334:   SET(EXTRA_SOURCES ${ALL_EXTRA_SOURCES})
350:   list(REMOVE_ITEM EXTRA_SOURCES ${DUMMY_DMACRYS})335:   list(REMOVE_ITEM EXTRA_SOURCES ${DUMMY_DMACRYS})
351:   add_subdirectory(DMACRYSinterface)336:   add_subdirectory(DMACRYSinterface)
352:   add_executable(DMAGMIN main.F337:   add_executable(DMAGMIN main.F
353:                          ${EXTRA_SOURCES} )338:                          ${EXTRA_SOURCES} )
354:   set_module_dir(DMAGMIN)339:   set_module_dir(DMAGMIN)
355:   set_module_depends(DMAGMIN gminlib)340:   set_module_depends(DMAGMIN gminlib)
356:   set_module_dir(dmacrysinterface)341:   set_module_dir(dmacrysinterface)
357:   set_module_depends(dmacrysinterface gminlib)342:   set_module_depends(dmacrysinterface gminlib)
358:   set_target_properties(DMAGMIN PROPERTIES LINKER_LANGUAGE "Fortran")343:   set_target_properties(DMAGMIN PROPERTIES LINKER_LANGUAGE "Fortran")
359:   set_target_properties(DMAGMIN PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS};${DUMMY_CPP_FLAGS}")344:   set_target_properties(DMAGMIN PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS};DUMMY_AMBER12;DUMMY_CUDA;DUMMY_OPEP")
360:   target_link_libraries(DMAGMIN gminlib345:   target_link_libraries(DMAGMIN gminlib
361:                                 dmacrysinterface346:                                 dmacrysinterface
362:                                 ${MYLAPACK_LIBS})347:                                 ${MYLAPACK_LIBS})
363: endif(WITH_DMACRYS)348: endif(WITH_DMACRYS)
364: 349: 
365: #OXDNA350: #OXDNA
366: option(WITH_OXDNA "Enable OXDNAGMIN compilation" OFF)351: option(WITH_OXDNA "Enable OXDNAGMIN compilation" OFF)
367: if(WITH_OXDNA)352: if(WITH_OXDNA)
368:   SET(EXTRA_SOURCES ${ALL_EXTRA_SOURCES})353:   SET(EXTRA_SOURCES ${ALL_EXTRA_SOURCES})
369:   list(REMOVE_ITEM EXTRA_SOURCES ${DUMMY_USERPOT})354:   list(REMOVE_ITEM EXTRA_SOURCES ${DUMMY_USERPOT})
370:   add_subdirectory(OXDNAinterface)355:   add_subdirectory(OXDNAinterface)
371:   add_executable(OXDNAGMIN main.F356:   add_executable(OXDNAGMIN main.F
372:                            ${EXTRA_SOURCES})357:                            ${EXTRA_SOURCES})
373:   set_module_dir(OXDNAGMIN)358:   set_module_dir(OXDNAGMIN)
374:   set_module_depends(OXDNAGMIN gminlib)359:   set_module_depends(OXDNAGMIN gminlib)
375:   set_module_dir(OXDNA)360:   set_module_dir(OXDNA)
376:   set_module_depends(OXDNA gminlib)361:   set_module_depends(OXDNA gminlib)
377:   set_target_properties(OXDNAGMIN PROPERTIES LINKER_LANGUAGE "Fortran")362:   set_target_properties(OXDNAGMIN PROPERTIES LINKER_LANGUAGE "Fortran")
378:   set_target_properties(OXDNAGMIN PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS};${DUMMY_CPP_FLAGS}")363:   set_target_properties(OXDNAGMIN PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS};DUMMY_AMBER12;DUMMY_CUDA;DUMMY_OPEP")
379:   target_link_libraries(OXDNAGMIN gminlib364:   target_link_libraries(OXDNAGMIN gminlib
380:                                   OXDNA 365:                                   OXDNA 
381:                                   ${MYLAPACK_LIBS} )366:                                   ${MYLAPACK_LIBS} )
382: endif(WITH_OXDNA)367: endif(WITH_OXDNA)
383: 368: 
384: #SPIN interface369: #SPIN interface
385: option(WITH_SPIN "Enable SPINGMIN compilation" OFF)370: option(WITH_SPIN "Enable SPINGMIN compilation" OFF)
386: if(WITH_SPIN)371: if(WITH_SPIN)
387:   SET(EXTRA_SOURCES ${ALL_EXTRA_SOURCES})372:   SET(EXTRA_SOURCES ${ALL_EXTRA_SOURCES})
388:   list(REMOVE_ITEM EXTRA_SOURCES ${DUMMY_USERPOT})373:   list(REMOVE_ITEM EXTRA_SOURCES ${DUMMY_USERPOT})
389:   add_subdirectory(SPINinterface)374:   add_subdirectory(SPINinterface)
390:   add_executable(SPINGMIN main.F375:   add_executable(SPINGMIN main.F
391:                           ${EXTRA_SOURCES})376:                           ${EXTRA_SOURCES})
392:   set_module_dir(SPINGMIN)377:   set_module_dir(SPINGMIN)
393:   set_module_depends(SPINGMIN gminlib)378:   set_module_depends(SPINGMIN gminlib)
394:   set_module_dir(SPIN)379:   set_module_dir(SPIN)
395:   set_module_depends(SPIN gminlib)380:   set_module_depends(SPIN gminlib)
396:   set_target_properties(SPINGMIN PROPERTIES LINKER_LANGUAGE "Fortran")381:   set_target_properties(SPINGMIN PROPERTIES LINKER_LANGUAGE "Fortran")
397:   set_target_properties(SPINGMIN PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS};${DUMMY_CPP_FLAGS}")382:   set_target_properties(SPINGMIN PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS};DUMMY_AMBER12;DUMMY_CUDA;DUMMY_OPEP")
398:   target_link_libraries(SPINGMIN gminlib383:   target_link_libraries(SPINGMIN gminlib
399:                                  SPIN384:                                  SPIN
400:                                  ${MYLAPACK_LIBS} )385:                                  ${MYLAPACK_LIBS} )
401: endif(WITH_SPIN)386: endif(WITH_SPIN)
402: 387: 
403: #OPEP interface388: #OPEP interface
404: option(WITH_OPEP "Enable OPEPGMIN compilation" OFF)389: option(WITH_OPEP "Enable OPEPGMIN compilation" OFF)
405: if(WITH_OPEP)390: if(WITH_OPEP)
406:   SET(EXTRA_SOURCES ${ALL_EXTRA_SOURCES})391:   SET(EXTRA_SOURCES ${ALL_EXTRA_SOURCES})
 392: #  list(REMOVE_ITEM EXTRA_SOURCES ${DUMMY_OPEP})
407:   add_subdirectory(OPEPinterface)393:   add_subdirectory(OPEPinterface)
408:   add_executable(OPEPGMIN main.F ${EXTRA_SOURCES})394:   add_executable(OPEPGMIN main.F
 395:                           ${EXTRA_SOURCES} )
409:   set_module_dir(OPEPGMIN)396:   set_module_dir(OPEPGMIN)
410:   set_module_depends(OPEPGMIN gminlib)397:   set_module_depends(OPEPGMIN gminlib)
411:   set_module_dir(OPEP)398:   set_module_dir(OPEP)
412:   set_module_depends(OPEP gminlib)399:   set_module_depends(OPEP gminlib)
413:   set_target_properties(OPEPGMIN PROPERTIES LINKER_LANGUAGE "Fortran")400:   set_target_properties(OPEPGMIN PROPERTIES LINKER_LANGUAGE "Fortran")
414:   set_target_properties(OPEPGMIN PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS};${DUMMY_CPP_FLAGS};__OPEP")401:   set_target_properties(OPEPGMIN PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS};DUMMY_AMBER12;DUMMY_CUDA")
415:   target_link_libraries(OPEPGMIN gminlib402:   target_link_libraries(OPEPGMIN gminlib
416:                                  OPEP403:                                  OPEP
417:                                  ${MYLAPACK_LIBS})404:                                  ${MYLAPACK_LIBS})
418: endif(WITH_OPEP)405: endif(WITH_OPEP)
419: 406: 
420: # C35GMIN 407: # C35GMIN 
421: option(WITH_CHARMM35 "Enable C35GMIN compilation" OFF)408: option(WITH_CHARMM35 "Enable C35GMIN compilation" OFF)
422: if(WITH_CHARMM35)409: if(WITH_CHARMM35)
423:   if(WITH_CHARMM36)410:   if(WITH_CHARMM36)
424:     message( FATAL_ERROR "cannot build CHARMM35 and CHARMM36 at the same time" )411:     message( FATAL_ERROR "cannot build CHARMM35 and CHARMM36 at the same time" )
428:   add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/CHARMMboth)415:   add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/CHARMMboth)
429:   add_executable(C35GMIN main.F416:   add_executable(C35GMIN main.F
430:                          myblas.f417:                          myblas.f
431:                          mylapack.f418:                          mylapack.f
432:                          ${EXTRA_SOURCES})419:                          ${EXTRA_SOURCES})
433:   set_module_dir(C35GMIN)420:   set_module_dir(C35GMIN)
434:   set_module_depends(C35GMIN gminlib)421:   set_module_depends(C35GMIN gminlib)
435:   set_module_dir(charmm35_interface_lib)422:   set_module_dir(charmm35_interface_lib)
436:   set_module_depends(charmm35_interface_lib gminlib)423:   set_module_depends(charmm35_interface_lib gminlib)
437:   set_target_properties(C35GMIN PROPERTIES LINKER_LANGUAGE "Fortran")424:   set_target_properties(C35GMIN PROPERTIES LINKER_LANGUAGE "Fortran")
438:   set_target_properties(C35GMIN PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS};${DUMMY_CPP_FLAGS}")425:   set_target_properties(C35GMIN PROPERTIES COMPILE_DEFINITIONS "${COMPILE_DEFINITIONS};DUMMY_AMBER12;DUMMY_CUDA;DUMMY_OPEP")
439:   # add the CHARMM library as a dependency426:   # add the CHARMM library as a dependency
440:   add_dependencies(C35GMIN CHARMM_WAS_BUILT)427:   add_dependencies(C35GMIN CHARMM_WAS_BUILT)
441:   # Link in the CHARMM libraries and the CHARMM35 GMIN interface428:   # Link in the CHARMM libraries and the CHARMM35 GMIN interface
442:   target_link_libraries(C35GMIN gminlib429:   target_link_libraries(C35GMIN gminlib
443:                                 mylapack430:                                 mylapack
444:                                 myblascharmm431:                                 myblascharmm
445:                                 charmm35_interface_lib432:                                 charmm35_interface_lib
446:                                 ${CHARMM_LIBS} )433:                                 ${CHARMM_LIBS} )
447: endif(WITH_CHARMM35)434: endif(WITH_CHARMM35)
448: 435: 


r31551/opep_interface.F90 2017-01-21 10:35:49.994250000 +0000 r31550/opep_interface.F90 2017-01-21 10:35:50.518250000 +0000
  1: MODULE OPEP_INTERFACE_MOD  1: MODULE OPEP_INTERFACE_MOD
  2: #ifdef __OPEP  2: #ifndef DUMMY_OPEP
  3:   USE DEFS  3:   USE DEFS
  4:   USE MD_INITIALISE  4:   USE MD_INITIALISE
  5:   USE CALCFORCES  5:   USE CALCFORCES
  6: #endif  6: #endif
  7:   IMPLICIT NONE  7:   IMPLICIT NONE
  8:   8: 
  9: !******************************************************************************  9: !******************************************************************************
 10: ! Types and parameters for writing pdb ATOM coordinate records to pdb 10: ! Types and parameters for writing pdb ATOM coordinate records to pdb
 11: ! files. 11: ! files.
 12:   type pdb_atom_data 12:   type pdb_atom_data
 33:   type(pdb_atom_data), parameter       :: null_pdb_atom_data = & 33:   type(pdb_atom_data), parameter       :: null_pdb_atom_data = &
 34:     pdb_atom_data('ATOM  ',0,'    ',' ','   ',' ',0,'',0.d0,0.d0,0.d0,1.d0,& 34:     pdb_atom_data('ATOM  ',0,'    ',' ','   ',' ',0,'',0.d0,0.d0,0.d0,1.d0,&
 35:                  &0.d0,'  ','  ') 35:                  &0.d0,'  ','  ')
 36:   character (len=*), parameter         :: atom_string_format = & 36:   character (len=*), parameter         :: atom_string_format = &
 37:   &'(a6,i5,1x,a4,a1,a3,1x,a1,i4,a1,3x,f8.3,f8.3,f8.3,f6.2,f6.2,10x,a2,a2)' 37:   &'(a6,i5,1x,a4,a1,a3,1x,a1,i4,a1,3x,f8.3,f8.3,f8.3,f6.2,f6.2,10x,a2,a2)'
 38: !****************************************************************************** 38: !******************************************************************************
 39:  39: 
 40:   CHARACTER (LEN=4), ALLOCATABLE , SAVE :: RES_NAMES(:), ATOM_NAMES(:) 40:   CHARACTER (LEN=4), ALLOCATABLE , SAVE :: RES_NAMES(:), ATOM_NAMES(:)
 41:   INTEGER, ALLOCATABLE ,SAVE :: RES_NUMS(:) 41:   INTEGER, ALLOCATABLE ,SAVE :: RES_NUMS(:)
 42:  42: 
 43: #ifdef __OPEP 43: #ifndef DUMMY_OPEP
 44:   TYPE (t_conformations), SAVE :: CONF 44:   TYPE (t_conformations), SAVE :: CONF
 45: #endif 45: #endif
 46:  46: 
 47:   CONTAINS 47:   CONTAINS
 48:    48:   
 49:   SUBROUTINE OPEP_INIT(NATOM_,COORDS,RNAT) 49:   SUBROUTINE OPEP_INIT(NATOM_,COORDS,RNAT)
 50: #ifdef __OPEP 50: #ifndef DUMMY_OPEP
 51:     USE PORFUNCS 51:     USE PORFUNCS
 52:     USE COMMONS, ONLY: MYUNIT,DEBUG 52:     USE COMMONS, ONLY: MYUNIT,DEBUG
 53: #endif 53: #endif
 54:     INTEGER, INTENT(IN) :: NATOM_ 54:     INTEGER, INTENT(IN) :: NATOM_
 55:     LOGICAL, INTENT(IN) :: RNAT 55:     LOGICAL, INTENT(IN) :: RNAT
 56:     DOUBLE PRECISION, INTENT(OUT) :: COORDS(3*NATOM_) 56:     DOUBLE PRECISION, INTENT(OUT) :: COORDS(3*NATOM_)
 57: #ifdef __OPEP 57: #ifndef DUMMY_OPEP
 58:     !variables needed for creating everything for the output routine later on 58:     !variables needed for creating everything for the output routine later on
 59:     INTEGER :: PDB_FILE_UNIT, GETUNIT, L 59:     INTEGER :: PDB_FILE_UNIT, GETUNIT, L
 60:     CHARACTER (LEN=10) :: WORD 60:     CHARACTER (LEN=10) :: WORD
 61:     LOGICAL :: END_PDB 61:     LOGICAL :: END_PDB
 62:     NATOMS = NATOM_  !set the natoms variable for the OPEP interface - this is 62:     NATOMS = NATOM_  !set the natoms variable for the OPEP interface - this is
 63:                      !identical to GMIN, but has to be separated by name from 63:                      !identical to GMIN, but has to be separated by name from
 64:                      !GMIN as the OPEP internal definitions also use the name 64:                      !GMIN as the OPEP internal definitions also use the name
 65:                      !natoms 65:                      !natoms
 66:     !start initialising 66:     !start initialising
 67:     ALLOCATE(RES_NAMES(NATOMS)) 67:     ALLOCATE(RES_NAMES(NATOMS))
 93:     GOTO 30 93:     GOTO 30
 94:     !close the pdb file and return to main program 94:     !close the pdb file and return to main program
 95: 40  CLOSE(PDB_FILE_UNIT) 95: 40  CLOSE(PDB_FILE_UNIT)
 96:     IF (DEBUG) WRITE(MYUNIT,*) 'OPEP_init> finished potential initialisation' 96:     IF (DEBUG) WRITE(MYUNIT,*) 'OPEP_init> finished potential initialisation'
 97: #endif 97: #endif
 98:     RETURN 98:     RETURN
 99:   END SUBROUTINE OPEP_INIT 99:   END SUBROUTINE OPEP_INIT
100: 100: 
101: 101: 
102:   SUBROUTINE OPEP_ENERGY_AND_GRADIENT(NATOM_,COORD,GRAD,EREAL,GRADT)102:   SUBROUTINE OPEP_ENERGY_AND_GRADIENT(NATOM_,COORD,GRAD,EREAL,GRADT)
103: #ifdef __OPEP103: #ifndef DUMMY_OPEP
104:     USE md_defs104:     USE md_defs
105: #endif105: #endif
106:     INTEGER, INTENT(IN) :: NATOM_106:     INTEGER, INTENT(IN) :: NATOM_
107:     DOUBLE PRECISION, INTENT(IN) :: COORD(3*NATOM_)107:     DOUBLE PRECISION, INTENT(IN) :: COORD(3*NATOM_)
108:     DOUBLE PRECISION, INTENT(OUT) :: GRAD(3*NATOM_), EREAL108:     DOUBLE PRECISION, INTENT(OUT) :: GRAD(3*NATOM_), EREAL
109:     LOGICAL, INTENT(IN) :: GRADT109:     LOGICAL, INTENT(IN) :: GRADT
110: #ifdef __OPEP110: #ifndef DUMMY_OPEP
111:     !call calcforce where we either go for RNA or protein calculation111:     !call calcforce where we either go for RNA or protein calculation
112:     !scale factor is set in calcforce as well, use dummy here112:     !scale factor is set in calcforce as well, use dummy here
113:     CALL CALCFORCE(1.0D0,COORD,GRAD,EREAL)113:     CALL CALCFORCE(1.0D0,COORD,GRAD,EREAL)
114:     GRAD=-GRAD114:     GRAD=-GRAD
115: #endif115: #endif
116:     RETURN116:     RETURN
117:   END SUBROUTINE OPEP_ENERGY_AND_GRADIENT117:   END SUBROUTINE OPEP_ENERGY_AND_GRADIENT
118: 118: 
119:   SUBROUTINE OPEP_NUM_HESS(NATOM_,COORDS,DELTA,HESSIAN)119:   SUBROUTINE OPEP_NUM_HESS(NATOM_,COORDS,DELTA,HESSIAN)
120:     !input and output variable120:     !input and output variable
121:     INTEGER, INTENT(IN) :: NATOM_121:     INTEGER, INTENT(IN) :: NATOM_
122:     DOUBLE PRECISION, INTENT(IN) :: COORDS(3*NATOM_), DELTA122:     DOUBLE PRECISION, INTENT(IN) :: COORDS(3*NATOM_), DELTA
123:     DOUBLE PRECISION, INTENT(OUT) :: HESSIAN(3*NATOM_,3*NATOM_)123:     DOUBLE PRECISION, INTENT(OUT) :: HESSIAN(3*NATOM_,3*NATOM_)
124: #ifdef __OPEP124: #ifndef DUMMY_OPEP
125:     !variables used internally125:     !variables used internally
126:     DOUBLE PRECISION, DIMENSION(3*NATOMS) :: COORDS_PLUS,COORDS_PLUS2,COORDS_MINUS,COORDS_MINUS2126:     DOUBLE PRECISION, DIMENSION(3*NATOMS) :: COORDS_PLUS,COORDS_PLUS2,COORDS_MINUS,COORDS_MINUS2
127:     DOUBLE PRECISION, DIMENSION(3*NATOMS) :: GRAD_PLUS,GRAD_PLUS2,GRAD_MINUS,GRAD_MINUS2127:     DOUBLE PRECISION, DIMENSION(3*NATOMS) :: GRAD_PLUS,GRAD_PLUS2,GRAD_MINUS,GRAD_MINUS2
128:     INTEGER :: I128:     INTEGER :: I
129:     DOUBLE PRECISION :: DUMMY_ENERGY129:     DOUBLE PRECISION :: DUMMY_ENERGY
130:   130:   
131:     !use central finite difference with 4 terms (Richardson interpolation)131:     !use central finite difference with 4 terms (Richardson interpolation)
132:     DO I = 1,3*NATOMS132:     DO I = 1,3*NATOMS
133:       COORDS_PLUS(:) = COORDS(:)133:       COORDS_PLUS(:) = COORDS(:)
134:       COORDS_PLUS(I) = COORDS(I) + DELTA134:       COORDS_PLUS(I) = COORDS(I) + DELTA
142:       COORDS_MINUS2(:) = COORDS(:)142:       COORDS_MINUS2(:) = COORDS(:)
143:       COORDS_MINUS2(I) = COORDS(I) - 2.0D0 * DELTA143:       COORDS_MINUS2(I) = COORDS(I) - 2.0D0 * DELTA
144:       CALL OPEP_ENERGY_AND_GRADIENT(NATOMS,COORDS_MINUS2,GRAD_MINUS2,DUMMY_ENERGY,.TRUE.)144:       CALL OPEP_ENERGY_AND_GRADIENT(NATOMS,COORDS_MINUS2,GRAD_MINUS2,DUMMY_ENERGY,.TRUE.)
145:       HESSIAN(I,:) = (GRAD_MINUS2(:) - 8.0D0 * GRAD_MINUS(:) + 8.0D0 *GRAD_PLUS(:) - GRAD_PLUS2(:))/(12.0D0*DELTA)145:       HESSIAN(I,:) = (GRAD_MINUS2(:) - 8.0D0 * GRAD_MINUS(:) + 8.0D0 *GRAD_PLUS(:) - GRAD_PLUS2(:))/(12.0D0*DELTA)
146:     END DO146:     END DO
147: #endif147: #endif
148:     RETURN148:     RETURN
149:   END SUBROUTINE OPEP_NUM_HESS149:   END SUBROUTINE OPEP_NUM_HESS
150: 150: 
151:   SUBROUTINE OPEP_WRITE_PDB(NATOM_,COORDS,PDB_NAME)151:   SUBROUTINE OPEP_WRITE_PDB(NATOM_,COORDS,PDB_NAME)
152: #ifdef __OPEP152: #ifndef DUMMY_OPEP
153:     USE PORFUNCS153:     USE PORFUNCS
154: #endif154: #endif
155:     INTEGER, INTENT(IN) :: NATOM_155:     INTEGER, INTENT(IN) :: NATOM_
156:     DOUBLE PRECISION, INTENT(IN) :: COORDS(3*NATOM_)156:     DOUBLE PRECISION, INTENT(IN) :: COORDS(3*NATOM_)
157:     CHARACTER (LEN=*), INTENT(IN) :: PDB_NAME157:     CHARACTER (LEN=*), INTENT(IN) :: PDB_NAME
158: #ifdef __OPEP158: #ifndef DUMMY_OPEP
159:     INTEGER :: PDB_UNIT, GETUNIT159:     INTEGER :: PDB_UNIT, GETUNIT
160:     INTEGER :: CURR_ATOM160:     INTEGER :: CURR_ATOM
161:     TYPE(pdb_atom_data) :: CURRENT_ATOM_DATA161:     TYPE(pdb_atom_data) :: CURRENT_ATOM_DATA
162: 162: 
163:     !get unit for pdb file163:     !get unit for pdb file
164:     PDB_UNIT = GETUNIT()164:     PDB_UNIT = GETUNIT()
165:     OPEN(UNIT=PDB_UNIT, FILE=TRIM(ADJUSTL(PDB_NAME)),ACTION="WRITE")165:     OPEN(UNIT=PDB_UNIT, FILE=TRIM(ADJUSTL(PDB_NAME)),ACTION="WRITE")
166:     WRITE(PDB_UNIT,'(A)') "TITLE"166:     WRITE(PDB_UNIT,'(A)') "TITLE"
167:     DO CURR_ATOM = 1,NATOMS167:     DO CURR_ATOM = 1,NATOMS
168:       CURRENT_ATOM_DATA = null_pdb_atom_data !reset atom data for new atom168:       CURRENT_ATOM_DATA = null_pdb_atom_data !reset atom data for new atom
175:       CURRENT_ATOM_DATA % z_coord = COORDS(3 * CURR_ATOM) !z175:       CURRENT_ATOM_DATA % z_coord = COORDS(3 * CURR_ATOM) !z
176:       WRITE(PDB_UNIT, FMT = atom_string_format) CURRENT_ATOM_DATA176:       WRITE(PDB_UNIT, FMT = atom_string_format) CURRENT_ATOM_DATA
177:     ENDDO177:     ENDDO
178:     WRITE(PDB_UNIT,'(A)') "END"178:     WRITE(PDB_UNIT,'(A)') "END"
179:     CLOSE(PDB_UNIT)179:     CLOSE(PDB_UNIT)
180: #endif180: #endif
181:     RETURN181:     RETURN
182:   END SUBROUTINE OPEP_WRITE_PDB182:   END SUBROUTINE OPEP_WRITE_PDB
183: 183: 
184:   SUBROUTINE OPEP_FINISH()184:   SUBROUTINE OPEP_FINISH()
185: #ifdef __OPEP185: #ifndef DUMMY_OPEP
186:     CALL END_DEFINITIONS()186:     CALL END_DEFINITIONS()
187:     DEALLOCATE(RES_NAMES)187:     DEALLOCATE(RES_NAMES)
188:     DEALLOCATE(RES_NUMS)188:     DEALLOCATE(RES_NUMS)
189:     DEALLOCATE(ATOM_NAMES)189:     DEALLOCATE(ATOM_NAMES)
190: #endif 190: #endif 
191:     RETURN191:     RETURN
192:   END SUBROUTINE OPEP_FINISH192:   END SUBROUTINE OPEP_FINISH
193: END MODULE OPEP_INTERFACE_MOD 193: END MODULE OPEP_INTERFACE_MOD 


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0