40 type(type_t),
parameter,
public :: TYPE_NONE =
type_t(0)
41 type(type_t),
parameter,
public :: TYPE_FLOAT =
type_t(1)
42 type(type_t),
parameter,
public :: TYPE_CMPLX =
type_t(2)
43 type(type_t),
parameter,
public :: TYPE_INTEGER =
type_t(3)
44 type(type_t),
parameter,
public :: TYPE_BYTE =
type_t(4)
45 type(type_t),
parameter,
public :: TYPE_INTEGER8 =
type_t(5)
46 type(type_t),
parameter,
public :: TYPE_FLOAT_SINGLE =
type_t(6)
47 type(type_t),
parameter,
public :: TYPE_CMPLX_SINGLE =
type_t(7)
49 interface operator(==)
51 end interface operator(==)
53 interface operator(/=)
55 end interface operator(/=)
57 integer,
parameter :: sizes(7) = (/8, 16, 4, 1, 8, 4, 8/)
61 integer pure function types_get_size(this) result(size)
62 type(type_t),
intent(in) :: this
64 size = sizes(this%itype)
69 logical pure function types_equal(ta, tb) result(equal)
70 type(type_t),
intent(in) :: ta
71 type(type_t),
intent(in) :: tb
73 equal = ta%itype == tb%itype
79 logical pure function types_not_equal(ta, tb) result(equal)
80 type(type_t),
intent(in) :: ta
81 type(type_t),
intent(in) :: tb
83 equal = ta%itype /= tb%itype
89 logical pure function type_is_complex(this) result(is_complex)
90 type(type_t),
intent(in) :: this
98 logical pure function type_is_single(this) result(is_single)
99 type(type_t),
intent(in) :: this
type(type_t), parameter, public type_cmplx_single
logical pure function types_equal(ta, tb)
logical pure function types_not_equal(ta, tb)
type(type_t), parameter, public type_float_single
type(type_t), parameter, public type_cmplx
logical pure function, public type_is_complex(this)
integer pure function, public types_get_size(this)
logical pure function, public type_is_single(this)