35 use,
intrinsic :: iso_c_binding
40 kim_language_name_type, &
41 kim_language_name_from_string, &
44 kim_language_name_string, &
50 type, bind(c) :: kim_language_name_type
51 integer(c_int) :: language_name_id
52 end type kim_language_name_type
54 type(kim_language_name_type),
protected, &
55 bind(c, name=
"KIM_LANGUAGE_NAME_cpp") &
57 type(kim_language_name_type),
protected, &
58 bind(c, name=
"KIM_LANGUAGE_NAME_c") &
60 type(kim_language_name_type),
protected, &
61 bind(c, name=
"KIM_LANGUAGE_NAME_fortran") &
64 interface operator (.eq.)
65 logical function kim_language_name_equal(left, right)
66 use,
intrinsic :: iso_c_binding
67 import kim_language_name_type
69 type(kim_language_name_type),
intent(in) :: left
70 type(kim_language_name_type),
intent(in) :: right
71 end function kim_language_name_equal
72 end interface operator (.eq.)
74 interface operator (.ne.)
75 logical function kim_language_name_not_equal(left, right)
76 use,
intrinsic :: iso_c_binding
77 import kim_language_name_type
79 type(kim_language_name_type),
intent(in) :: left
80 type(kim_language_name_type),
intent(in) :: right
81 end function kim_language_name_not_equal
82 end interface operator (.ne.)
85 subroutine kim_language_name_from_string(string, language_name)
86 import kim_language_name_type
88 character(len=*),
intent(in) :: string
89 type(kim_language_name_type),
intent(out) :: language_name
90 end subroutine kim_language_name_from_string
92 subroutine kim_language_name_string(language_name, string)
93 import kim_language_name_type
95 type(kim_language_name_type),
intent(in),
value :: language_name
96 character(len=*),
intent(out) :: string
97 end subroutine kim_language_name_string
type(kim_language_name_type), public, protected kim_language_name_fortran
type(kim_language_name_type), public, protected kim_language_name_cpp
type(kim_language_name_type), public, protected kim_language_name_c