The code below, when compiled with PGI 6.1 gives two internal compiler errors:
pgf95 -c -g -I…/objs/finclude m_common_format.f90
Lowering Error: unknown intrinsic function [ast=65,asttype=14,datatype=60]
Lowering Error: unexpected data type at assignment [ast=120,asttype=17,datatype=0]
PGF90-F-0000-Internal compiler error. Errors in Lowering 2 (m_common_format.f90: 40)
PGF90/any Linux/x86 6.1-1: compilation aborted
module m_common_format
implicit none
private
contains
pure function str_string(st) result(s)
character(len=*), intent(in) :: st
character(len=len(st)) :: s
s = ''
end function str_string
pure function str_string_array_len(st) result(n)
character(len=*), dimension(:), intent(in) :: st
integer :: n
n = 0
end function str_string_array_len
pure function str_string_array(st) result(s)
character(len=*), dimension(:), intent(in) :: st
character(len=str_string_array_len(st)) :: s
s = ''
end function str_string_array
pure function str_string_matrix(st) result(s)
character(len=*), dimension(:, :), intent(in) :: st
character(len=str_string_array_len(reshape(st,(/size(st)/)))) :: s
s = str_string_array(reshape(st,(/size(st)/)))
end function str_string_matrix
end module