Error created when file parsing fails
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(error_t), | intent(out), | allocatable | :: | error | Instance of the error data | |
| character(len=*), | intent(in) | :: | file_name | Name of file | ||
| character(len=*), | intent(in) | :: | message | Parse error message | ||
| integer, | intent(in), | optional | :: | line_num | Line number of parse error | |
| character(len=*), | intent(in), | optional | :: | line_string | Line context string | |
| integer, | intent(in), | optional | :: | line_col | Line context column | 
subroutine file_parse_error(error, file_name, message, line_num, & line_string, line_col) !> Instance of the error data type(error_t), allocatable, intent(out) :: error !> Name of file character(len=*), intent(in) :: file_name !> Parse error message character(len=*), intent(in) :: message !> Line number of parse error integer, intent(in), optional :: line_num !> Line context string character(len=*), intent(in), optional :: line_string !> Line context column integer, intent(in), optional :: line_col character(50) :: temp_string allocate(error) error%message = 'Parse error: '//message//new_line('a') error%message = error%message//file_name if (present(line_num)) then write(temp_string,'(I0)') line_num error%message = error%message//':'//trim(temp_string) end if if (present(line_col)) then if (line_col > 0) then write(temp_string,'(I0)') line_col error%message = error%message//':'//trim(temp_string) end if end if if (present(line_string)) then error%message = error%message//new_line('a') error%message = error%message//' | '//line_string if (present(line_col)) then if (line_col > 0) then error%message = error%message//new_line('a') error%message = error%message//' | '//repeat(' ',line_col-1)//'^' end if end if end if end subroutine file_parse_error