1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
module module_operator_overloading_12
implicit none
public :: operator(.and.)
interface operator(.and.)
elemental module function and(lhs, rhs) result(diagnosis)
implicit none
integer, intent(in) :: lhs, rhs
integer :: diagnosis
end function
end interface
contains
elemental module function and(lhs, rhs) result(diagnosis)
implicit none
integer, intent(in) :: lhs, rhs
integer :: diagnosis
diagnosis = lhs + rhs
end function and
end module module_operator_overloading_12
program operator_overloading_12
use module_operator_overloading_12, only: operator(.and.)
implicit none
integer :: a, b, c
a = 5
b = 5
c = a .and. b
print *, "The result of a .and. b is:", c
if ( c /= 10 ) error stop
end program operator_overloading_12
|