mirror of
https://github.com/TREX-CoE/irpjast.git
synced 2024-12-22 12:23:57 +01:00
Added CHAMP vmc CMakeLists.txt
This commit is contained in:
parent
5bb7336871
commit
5349158d84
237
CMakeLists.txt
Normal file
237
CMakeLists.txt
Normal file
@ -0,0 +1,237 @@
|
||||
if (MPI_Fortran_FOUND)
|
||||
|
||||
# Source files
|
||||
file(GLOB VMC_SOURCE *.f)
|
||||
file(GLOB VMC90_SOURCE optgeo_coords_int.f90 optgeo_hessian.f90 optgeo_convcartzmat.f90 regterg.f90 olbfgs.f90 davidson_wrap.f90)
|
||||
set(DAVIDSON_SOURCE array_utils.f90 numeric_kinds.f90 lapack_wrapper.f90 jacobi_davidson.f90)
|
||||
|
||||
set_source_files_properties(VMC90_SOURCE PROPERTIES COMPILE_FLAGS "-check bounds -g -traceback")
|
||||
if (NOT ENABLE_QMMM)
|
||||
message(STATUS "QMMM is NOT enabled!")
|
||||
endif()
|
||||
|
||||
if (NOT ENABLE_PERIODIC)
|
||||
message(STATUS "PERIODIC is NOT enabled!")
|
||||
list(REMOVE_ITEM VMC_SOURCE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/pw_find_image.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/pw_ewald.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/pw_orbitals.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/pw_orbitals_e.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/pw_read.f)
|
||||
endif()
|
||||
|
||||
include(${CMAKE_MODULE_PATH}/FortranFormat.cmake)
|
||||
formatFortran("${VMC_SOURCE}") # Set Fixed format property
|
||||
|
||||
# --------------------------------------------
|
||||
# creates object library shared for all binaries
|
||||
# --------------------------------------------
|
||||
|
||||
set(SHARED_SOURCE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/pot_local.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/pcm_3dgrid.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/strech.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/slm.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/jastrow.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/jassav.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/gammai.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/sites.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/deriv_nonloc.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/splfit.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/readps.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/nonloc.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/deriv_jastrow4.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/qmmm_placeholder.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/efield.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/nodes_distance.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/hpsie.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/verify_orbitals.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/properties.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/multideterminante.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/multideterminant.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/pcm.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/jastrowe.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/write_orb_loc.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cuspexact4.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/optwf_matrix_corsamp.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/optwf_lin_matrix.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/optwf_lib.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/matinv.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/scale_dist.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/orbitals.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/readps_gauss.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/determinante_psit.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/readps_tm.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/pot.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/cuspinit4.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/mmpol.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/p2prog.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/basis_fnse_vgl.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/determinant_psit.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/determinant.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/determinante.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/nonloc_pot.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/pw_placeholder.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/basis_fns_vgl.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/jastrow_num.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/bxmatrices.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/deriv_nonlpsi.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/force_analytic.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/nonlpsi.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/basis_norm.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/psi.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/rotqua.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/misc_grdnts.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/spline.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/spline2.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/read_bas_num.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/store_diag_hs.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/rannyu.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/3dgrid_orbitals.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/readps_champ.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/distances.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/multiply_slmi_mderiv.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/basis_fnse_vg.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/read_input.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/jastrow4.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/hpsi.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/jastrow4e.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/3dgrid.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/detsav.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/basis_fnse_v.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/optgeo_convcartzmat.f90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/optgeo_coords_int.f90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/optgeo_hessian.f90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/optgeo_lib.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/optjas.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/optorb.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/optci.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/optx_orb_ci.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/optx_jas_ci.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/optx_jas_orb.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/optwf_handle_wf.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/optwf_sr_more.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/optx_jas_ci_reduce.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/optx_jas_orb_reduce.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/optx_orb_ci_reduce.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/optci_reduce.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/optjas_reduce.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/optorb_reduce.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/finwrt_more.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/error.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/jastrow_transirp.f
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/irp_stack.irp.F90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/jastrow_jee.irp.module.F90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/jastrow.irp.module.F90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/jastrow_input.irp.module.F90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/jastrow_rescaledist.irp.module.F90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/jastrow_provider.irp.module.F90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/jastrow_jen.irp.module.F90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/jastrow_jen.irp.F90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/jastrow_jeen.irp.module.F90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/jastrow_jeen.irp.F90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/jastrow_jee.irp.F90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/jastrow_rescaledist.irp.F90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/jastrow.irp.F90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/jastrow_input.irp.F90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/jastrow_provider.irp.F90
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/irp_touches.irp.F90
|
||||
${INPUT_DIR}/p2_defaults.f
|
||||
${INPUT_DIR}/p2etc.f
|
||||
${INPUT_DIR}/p2nmcheck.f)
|
||||
|
||||
add_library(shared_objects OBJECT ${SHARED_SOURCE})
|
||||
|
||||
target_include_directories(shared_objects
|
||||
PUBLIC
|
||||
${CMAKE_SOURCE_DIR}/src/include
|
||||
${CMAKE_SOURCE_DIR}/src/input)
|
||||
|
||||
target_compile_options(shared_objects
|
||||
PRIVATE
|
||||
${Fortran_FLAGS}
|
||||
"$<$<CONFIG:Debug>:${Fortan_FLAGS_DEBUG}>")
|
||||
|
||||
add_dependencies(shared_objects generate-p2)
|
||||
|
||||
foreach(s ${SHARED_SOURCE})
|
||||
list(REMOVE_ITEM VMC_SOURCE ${s})
|
||||
endforeach(s)
|
||||
foreach(s ${SHARED_SOURCE})
|
||||
list(REMOVE_ITEM VMC90_SOURCE ${s})
|
||||
endforeach(s)
|
||||
|
||||
# --------------------------------------------
|
||||
# Fortran Modules
|
||||
# --------------------------------------------
|
||||
|
||||
add_library(vmc_modules optgeo_convcartzmat.f90 optgeo_coords_int.f90 optgeo_hessian.f90 olbfgs.f90)
|
||||
|
||||
# --------------------------------------------
|
||||
# Compile and link executable
|
||||
# --------------------------------------------
|
||||
|
||||
add_executable(vmc.mov1
|
||||
$<TARGET_OBJECTS:shared_objects>
|
||||
# source that is not already included in the objects
|
||||
${VMC_SOURCE}
|
||||
${DAVIDSON_SOURCE}
|
||||
${VMC90_SOURCE})
|
||||
|
||||
# Add headers
|
||||
target_include_directories(vmc.mov1
|
||||
PUBLIC
|
||||
${CMAKE_SOURCE_DIR}/src/include)
|
||||
|
||||
# compilation
|
||||
target_compile_options(vmc.mov1
|
||||
PRIVATE
|
||||
${Fortran_FLAGS}
|
||||
"$<$<CONFIG:Debug>:${Fortan_FLAGS_DEBUG}>"
|
||||
)
|
||||
|
||||
target_link_libraries(vmc.mov1
|
||||
vmc_modules
|
||||
cyrus pspline
|
||||
${LINEAR_ALGEBRA})
|
||||
|
||||
# --------------------------------------------
|
||||
# Everything related to miniparser p2
|
||||
# --------------------------------------------
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT
|
||||
${INPUT_DIR}/p2nmcheck.f
|
||||
OUTPUT
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/p2prog.f
|
||||
WORKING_DIRECTORY
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMAND
|
||||
${INPUT_DIR}/inpt.awk -v p2file=commands.p2 -v logf=${INPUT_DIR}/commands.log ${CMAKE_CURRENT_SOURCE_DIR}/read_input.f
|
||||
COMMAND
|
||||
cat commands.p2 ${INPUT_DIR}/end.p2 ${INPUT_DIR}/auto.p2 > all.p2
|
||||
COMMAND
|
||||
${INPUT_DIR}/genp2_defaults.awk -v ofile=${CMAKE_CURRENT_SOURCE_DIR}/p2prog.f all.p2 > genp2.log
|
||||
COMMAND
|
||||
${INPUT_DIR}/mkp2nmcheck.pl namelist.p2 > ${INPUT_DIR}/p2nmcheck.f
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_custom_target(
|
||||
generate-p2
|
||||
${CMAKE_COMMAND} -E echo "Generating p2 files."
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/p2prog.f
|
||||
DEPENDS ${INPUT_DIR}/p2nmcheck.f
|
||||
)
|
||||
|
||||
set_source_files_properties(
|
||||
${INPUT_DIR}/p2nmcheck.f
|
||||
PROPERTIES GENERATED TRUE
|
||||
)
|
||||
|
||||
set_source_files_properties(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/p2prog.f
|
||||
PROPERTIES GENERATED TRUE
|
||||
)
|
||||
|
||||
endif()
|
Loading…
Reference in New Issue
Block a user