diff --git a/fortran/lammps.f90 b/fortran/lammps.f90 index 371e4073bc..506a560613 100644 --- a/fortran/lammps.f90 +++ b/fortran/lammps.f90 @@ -100,6 +100,7 @@ MODULE LIBLAMMPS ! PROCEDURE :: version => lmp_version PROCEDURE :: is_running => lmp_is_running + PROCEDURE :: has_error => lmp_has_error END TYPE lammps INTERFACE lammps diff --git a/unittest/fortran/test_fortran_properties.f90 b/unittest/fortran/test_fortran_properties.f90 index 00e083b301..9719e5c136 100644 --- a/unittest/fortran/test_fortran_properties.f90 +++ b/unittest/fortran/test_fortran_properties.f90 @@ -50,3 +50,17 @@ FUNCTION f_lammps_extract_setting (Cstr) BIND(C) f_lammps_extract_setting = lmp%extract_setting(Fstr) deallocate (Fstr) END FUNCTION f_lammps_extract_setting + +FUNCTION f_lammps_has_error () BIND(C) + USE, INTRINSIC :: ISO_C_BINDING, ONLY : C_int + USE keepcmds, ONLY : lmp + USE LIBLAMMPS + IMPLICIT NONE + INTEGER(C_int) :: f_lammps_has_error + + IF ( lmp%has_error() ) THEN + f_lammps_has_error = 1_C_int + ELSE + f_lammps_has_error = 0_C_int + END IF +END FUNCTION f_lammps_has_error diff --git a/unittest/fortran/wrap_properties.cpp b/unittest/fortran/wrap_properties.cpp index 8ecd9346dc..b4dffeed3a 100644 --- a/unittest/fortran/wrap_properties.cpp +++ b/unittest/fortran/wrap_properties.cpp @@ -16,6 +16,7 @@ int f_lammps_version(); void f_lammps_memory_usage(double*); int f_lammps_get_mpi_comm(); int f_lammps_extract_setting(const char*); +int f_lammps_has_error(); } class LAMMPS_properties : public ::testing::Test { @@ -107,3 +108,8 @@ TEST_F(LAMMPS_properties, extract_setting) EXPECT_EQ(f_lammps_extract_setting("UNKNOWN"), -1); }; + +TEST_F(LAMMPS_properties, has_error) +{ + EXPECT_EQ(f_lammps_has_error(), 0); +};