Subtract right time definition from left (provides the minus operator).
Entries set to huge (never) will be kept as this, all other entries are simply subtracted.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_time_type), | intent(in) | :: | left |
First operant in the addition of times. |
||
type(tem_time_type), | intent(in) | :: | right |
Second operant in the addition of times. |
Resulting sum of left and right.
elemental function tem_time_subtract_time(left, right) result(res) ! -------------------------------------------------------------------- ! !> First operant in the addition of times. type(tem_time_type), intent(in) :: left !> Second operant in the addition of times. type(tem_time_type), intent(in) :: right !> Resulting sum of left and right. type(tem_time_type) :: res ! -------------------------------------------------------------------- ! real(kind=rk) :: nvrReal integer :: nvrInt ! -------------------------------------------------------------------- ! nvrReal = huge(left%sim) nvrInt = huge(left%iter) if ( (left%sim < nvrReal) ) then if (right%sim < nvrReal) then res%sim = left%sim - right%sim else res%sim = left%sim end if else res%sim = nvrReal end if if ( (left%iter < nvrInt) ) then if (right%iter < nvrInt) then res%iter = left%iter - right%iter else res%iter = left%iter end if else res%iter = nvrInt end if if ( (left%clock < nvrReal) ) then if (right%clock < nvrReal) then res%clock = left%clock - right%clock else res%clock = left%clock end if else res%clock = nvrReal end if end function tem_time_subtract_time