pure subroutine mat_mat_rel_ABT_opt(A, B, C, option)
real(rk), intent(in), contiguous :: A(:,:), B(:,:)
real(rk), intent(inout), contiguous :: C(:,:)
character(*), intent(in) :: option
select case (option)
case ('m1')
call mm_ABT_1(A, B, C)
case ('m2')
call mm_ABT_2(A, B, C)
case ('m3')
call mm_ABT_3(A, B, C)
case ('m4')
call mm_ABT_4(A, B, C)
case ('m5')
call mm_ABT_5(A, B, C)
case ('m6')
call mm_ABT_6(A, B, C)
case ('m7')
call mm_ABT_7(A, B, C)
case ('m8')
call mm_ABT_8(A, B, C)
case ('m9')
call mm_ABT_9(A, B, C)
case ('m10')
call mm_ABT_10(A, B, C)
case ('m11')
call mm_ABT_11(A, B, C)
case ('m12')
call mm_ABT_12(A, B, C)
case ('m13')
call mm_ABT_13(A, B, C)
end select
end subroutine mat_mat_rel_ABT_opt