1! { dg-do compile }
2module fox_m_fsys_format
3  interface len
4    module procedure str_real_dp_len, str_real_dp_fmt_len
5  end interface
6contains
7  pure function str_real_dp_fmt_len(x, fmt) result(n)
8    real, intent(in) :: x
9    character(len=*), intent(in) :: fmt
10    if (.not.checkFmt(fmt)) then
11    endif
12  end function str_real_dp_fmt_len
13  pure function str_real_dp_len(x) result(n)
14    real, intent(in) :: x
15  end function str_real_dp_len
16  pure function str_real_dp_array_len(xa) result(n)
17    real, dimension(:), intent(in) :: xa
18  end function str_real_dp_array_len
19  pure function str_real_dp_array_fmt_len(xa, fmt) result(n)
20    real, dimension(:), intent(in) :: xa
21    character(len=*), intent(in) :: fmt
22  end function str_real_dp_array_fmt_len
23  pure function str_real_dp_fmt(x, fmt) result(s)
24    real, intent(in) :: x
25    character(len=*), intent(in) :: fmt
26    character(len=len(x, fmt)) :: s
27  end function str_real_dp_fmt
28  pure function checkFmt(fmt) result(good)
29    character(len=*), intent(in) :: fmt
30    logical :: good
31  end function checkFmt
32end module fox_m_fsys_format
33