MODULE types
TYPE, PUBLIC :: ieee_class_type
INTEGER :: ieee_particular_features
END TYPE
END MODULE types
MODULE foo
USE types
PUBLIC :: ieee_class_type
TYPE(ieee_class_type), PARAMETER, PUBLIC :: &
IEEE_SIGNALING_NAN=ieee_class_type(0)
CONTAINS
ELEMENTAL FUNCTION bar (x) RESULT(class)
USE types
REAL, INTENT(IN) :: x
TYPE(ieee_class_type) :: class
class=IEEE_SIGNALING_NAN
END FUNCTION bar
END MODULE
LOGICAL ELEMENTAL FUNCTION foobar (x)
USE foo
REAL, INTENT(IN) :: x
TYPE(ieee_class_type) :: class
foobar=.FALSE.
class=bar (x)
END FUNCTION foobar