KIM API V2
kim_length_unit_module.f90
Go to the documentation of this file.
1 !
2 ! CDDL HEADER START
3 !
4 ! The contents of this file are subject to the terms of the Common Development
5 ! and Distribution License Version 1.0 (the "License").
6 !
7 ! You can obtain a copy of the license at
8 ! http://www.opensource.org/licenses/CDDL-1.0. See the License for the
9 ! specific language governing permissions and limitations under the License.
10 !
11 ! When distributing Covered Code, include this CDDL HEADER in each file and
12 ! include the License file in a prominent location with the name LICENSE.CDDL.
13 ! If applicable, add the following below this CDDL HEADER, with the fields
14 ! enclosed by brackets "[]" replaced with your own identifying information:
15 !
16 ! Portions Copyright (c) [yyyy] [name of copyright owner]. All rights reserved.
17 !
18 ! CDDL HEADER END
19 !
20 
21 !
22 ! Copyright (c) 2016--2018, Regents of the University of Minnesota.
23 ! All rights reserved.
24 !
25 ! Contributors:
26 ! Ryan S. Elliott
27 !
28 
29 !
30 ! Release: This file is part of the kim-api-v2.0.0-alpha.0 package.
31 !
32 
33 
35  use, intrinsic :: iso_c_binding
36  implicit none
37  private
38 
39  public &
40  kim_length_unit_type, &
41  kim_length_unit_from_string, &
42  operator (.eq.), &
43  operator (.ne.), &
44  kim_length_unit_string, &
45 
52 
53  type, bind(c) :: kim_length_unit_type
54  integer(c_int) length_unit_id
55  end type kim_length_unit_type
56 
57  type(kim_length_unit_type), protected, &
58  bind(c, name="KIM_LENGTH_UNIT_unused") &
60  type(kim_length_unit_type), protected, &
61  bind(c, name="KIM_LENGTH_UNIT_A") &
63  type(kim_length_unit_type), protected, &
64  bind(c, name="KIM_LENGTH_UNIT_Bhor") &
66  type(kim_length_unit_type), protected, &
67  bind(c, name="KIM_LENGTH_UNIT_cm") &
69  type(kim_length_unit_type), protected, &
70  bind(c, name="KIM_LENGTH_UNIT_m") &
72  type(kim_length_unit_type), protected, &
73  bind(c, name="KIM_LENGTH_UNIT_nm") &
75 
76  interface operator (.eq.)
77  logical function kim_length_unit_equal(left, right)
78  use, intrinsic :: iso_c_binding
79  import kim_length_unit_type
80  implicit none
81  type(kim_length_unit_type), intent(in) :: left
82  type(kim_length_unit_type), intent(in) :: right
83  end function kim_length_unit_equal
84  end interface operator (.eq.)
85 
86  interface operator (.ne.)
87  logical function kim_length_unit_not_equal(left, right)
88  use, intrinsic :: iso_c_binding
89  import kim_length_unit_type
90  implicit none
91  type(kim_length_unit_type), intent(in) :: left
92  type(kim_length_unit_type), intent(in) :: right
93  end function kim_length_unit_not_equal
94  end interface operator (.ne.)
95 
96  interface
97  subroutine kim_length_unit_from_string(string, length_unit)
98  import kim_length_unit_type
99  implicit none
100  character(len=*), intent(in) :: string
101  type(kim_length_unit_type), intent(out) :: length_unit
102  end subroutine kim_length_unit_from_string
103 
104  subroutine kim_length_unit_string(length_unit, string)
105  import kim_length_unit_type
106  implicit none
107  type(kim_length_unit_type), intent(in), value :: length_unit
108  character(len=*), intent(out) :: string
109  end subroutine kim_length_unit_string
110  end interface
111 end module kim_length_unit_module
type(kim_length_unit_type), public, protected kim_length_unit_nm
type(kim_length_unit_type), public, protected kim_length_unit_cm
type(kim_length_unit_type), public, protected kim_length_unit_a
type(kim_length_unit_type), public, protected kim_length_unit_unused
type(kim_length_unit_type), public, protected kim_length_unit_bohr
type(kim_length_unit_type), public, protected kim_length_unit_m