Resolved merging conflicts in three files
This commit is contained in:
@ -14,6 +14,11 @@ if(CMAKE_Fortran_COMPILER)
|
||||
message(STATUS "Skipping Tests for the LAMMPS Fortran Module: cannot identify Fortran compiler")
|
||||
return()
|
||||
endif()
|
||||
# GNU Fortran 4.8.x on RHEL/CentOS 7.x is not sufficient to compile the Fortran module
|
||||
if((CMAKE_Fortran_COMPILER_ID STREQUAL "GNU") AND (CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 6.0))
|
||||
message(FATAL_ERROR "Need GNU Fortran compiler version 6.x or later for unit testing")
|
||||
endif()
|
||||
|
||||
get_filename_component(LAMMPS_FORTRAN_MODULE ${LAMMPS_SOURCE_DIR}/../fortran/lammps.f90 ABSOLUTE)
|
||||
if(BUILD_MPI)
|
||||
find_package(MPI REQUIRED)
|
||||
@ -32,10 +37,14 @@ if(CMAKE_Fortran_COMPILER)
|
||||
|
||||
add_library(flammps STATIC ${LAMMPS_FORTRAN_MODULE} keepstuff.f90)
|
||||
|
||||
add_executable(test_fortran_create wrap_create.cpp test_fortran_create.f90)
|
||||
target_link_libraries(test_fortran_create PRIVATE flammps lammps MPI::MPI_Fortran GTest::GTestMain)
|
||||
target_include_directories(test_fortran_create PRIVATE "${LAMMPS_SOURCE_DIR}/../fortran")
|
||||
add_test(NAME FortranOpen COMMAND test_fortran_create)
|
||||
if(MPI_Fortran_HAVE_F90_MODULE)
|
||||
add_executable(test_fortran_create wrap_create.cpp test_fortran_create.f90)
|
||||
target_link_libraries(test_fortran_create PRIVATE flammps lammps MPI::MPI_Fortran GTest::GTestMain)
|
||||
target_include_directories(test_fortran_create PRIVATE "${LAMMPS_SOURCE_DIR}/../fortran")
|
||||
add_test(NAME FortranOpen COMMAND test_fortran_create)
|
||||
else()
|
||||
message(STATUS "Skipping FortranOpen test since no working F90 MPI module was found")
|
||||
endif()
|
||||
|
||||
add_executable(test_fortran_commands wrap_commands.cpp test_fortran_commands.f90)
|
||||
target_link_libraries(test_fortran_commands PRIVATE flammps lammps MPI::MPI_Fortran GTest::GTestMain)
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
MODULE keepstuff
|
||||
USE LIBLAMMPS
|
||||
IMPLICIT NONE
|
||||
TYPE(LAMMPS) :: lmp
|
||||
INTEGER :: mycomm
|
||||
TYPE(LAMMPS), SAVE :: lmp
|
||||
INTEGER, SAVE :: mycomm
|
||||
CHARACTER(LEN=40), DIMENSION(3), PARAMETER :: demo_input = &
|
||||
[ CHARACTER(LEN=40) :: &
|
||||
'region box block 0 $x 0 2 0 2', &
|
||||
|
||||
@ -71,13 +71,13 @@ FUNCTION f_lammps_gather_atoms_concat_mask(i) BIND(C)
|
||||
|
||||
CALL lmp%gather_atoms_concat('mask', 1_c_int, mask)
|
||||
CALL lmp%gather_atoms_concat('id', 1_c_int, tag)
|
||||
f_lammps_gather_atoms_concat_mask = -1
|
||||
DO j = 1, SIZE(tag)
|
||||
IF (tag(j) == i) THEN
|
||||
f_lammps_gather_atoms_concat_mask = mask(j)
|
||||
RETURN
|
||||
EXIT
|
||||
END IF
|
||||
END DO
|
||||
f_lammps_gather_atoms_concat_mask = -1
|
||||
END FUNCTION f_lammps_gather_atoms_concat_mask
|
||||
|
||||
FUNCTION f_lammps_gather_atoms_concat_position(xyz, id) BIND(C)
|
||||
@ -93,6 +93,7 @@ FUNCTION f_lammps_gather_atoms_concat_position(xyz, id) BIND(C)
|
||||
|
||||
CALL lmp%gather_atoms_concat('x', 3_c_int, positions)
|
||||
CALL lmp%gather_atoms_concat('id', 1_c_int, tag)
|
||||
f_lammps_gather_atoms_concat_position = -1.0_c_double
|
||||
DO j = 1, SIZE(tag)
|
||||
IF (tag(j) == id) THEN
|
||||
f_lammps_gather_atoms_concat_position = positions((j-1)*3 + xyz)
|
||||
@ -109,16 +110,16 @@ FUNCTION f_lammps_gather_atoms_subset_mask(i) BIND(C)
|
||||
INTEGER(c_int) :: f_lammps_gather_atoms_subset_mask
|
||||
INTEGER(c_int), DIMENSION(:), ALLOCATABLE :: mask
|
||||
INTEGER :: j
|
||||
INTEGER(c_int), DIMENSION(*), PARAMETER :: tag = [3,2]
|
||||
INTEGER(c_int), DIMENSION(2), PARAMETER :: tag = [3,2]
|
||||
|
||||
CALL lmp%gather_atoms_subset('mask', 1_c_int, tag, mask)
|
||||
f_lammps_gather_atoms_subset_mask = -1
|
||||
DO j = 1, SIZE(tag)
|
||||
IF (tag(j) == i) THEN
|
||||
f_lammps_gather_atoms_subset_mask = mask(j)
|
||||
RETURN
|
||||
EXIT
|
||||
END IF
|
||||
END DO
|
||||
f_lammps_gather_atoms_subset_mask = -1
|
||||
END FUNCTION f_lammps_gather_atoms_subset_mask
|
||||
|
||||
FUNCTION f_lammps_gather_atoms_subset_position(xyz,id) BIND(C)
|
||||
@ -129,17 +130,17 @@ FUNCTION f_lammps_gather_atoms_subset_position(xyz,id) BIND(C)
|
||||
INTEGER(c_int), INTENT(IN), VALUE :: id, xyz
|
||||
REAL(c_double) :: f_lammps_gather_atoms_subset_position
|
||||
REAL(c_double), DIMENSION(:), ALLOCATABLE :: positions
|
||||
INTEGER(c_int), DIMENSION(*), PARAMETER :: tag = [3,2]
|
||||
INTEGER(c_int), DIMENSION(2), PARAMETER :: tag = [3,2]
|
||||
INTEGER :: j
|
||||
|
||||
CALL lmp%gather_atoms_subset('x', 3_c_int, tag, positions)
|
||||
f_lammps_gather_atoms_subset_position = -1.0_c_double
|
||||
DO j = 1, SIZE(tag)
|
||||
IF (tag(j) == id) THEN
|
||||
f_lammps_gather_atoms_subset_position = positions((j-1)*3 + xyz)
|
||||
RETURN
|
||||
EXIT
|
||||
END IF
|
||||
END DO
|
||||
f_lammps_gather_atoms_subset_position = -1.0D0
|
||||
END FUNCTION f_lammps_gather_atoms_subset_position
|
||||
|
||||
SUBROUTINE f_lammps_scatter_atoms_masks() BIND(C)
|
||||
@ -188,7 +189,7 @@ SUBROUTINE f_lammps_scatter_atoms_subset_mask() BIND(C)
|
||||
USE keepstuff, ONLY : lmp
|
||||
IMPLICIT NONE
|
||||
INTEGER(c_int), DIMENSION(:), ALLOCATABLE :: all_masks
|
||||
INTEGER(c_int), DIMENSION(*), PARAMETER :: tags = [3,1]
|
||||
INTEGER(c_int), DIMENSION(2), PARAMETER :: tags = [3,1]
|
||||
INTEGER(c_int), DIMENSION(2) :: masks
|
||||
|
||||
CALL lmp%gather_atoms('mask', 1_c_int, all_masks)
|
||||
|
||||
Reference in New Issue
Block a user