
  PROCEDURE [INLINE] fdp$convert_to_fortran_name
    (    form_processor: fdt$form_processor;
     VAR name: ost$name);

    TYPE
      char_set = set of char;

    VAR
      bad_character: char_set,
      found_bad_character: boolean,
      string_index: 1 .. 31,
      scratch_name: ost$name;

    IF form_processor = fdc$extended_fortran_processor THEN
      #TRANSLATE (fdv$to_extended_fortran, name, scratch_name);
    ELSE
      #TRANSLATE (fdv$to_fortran, name, scratch_name);
    IFEND;

    found_bad_character := TRUE;
    name := scratch_name;
    bad_character := $char_set ['?'];
    WHILE found_bad_character DO
      #SCAN (bad_character, scratch_name, string_index, found_bad_character);
      IF found_bad_character THEN
        name (string_index, * ) := scratch_name (string_index + 1, * );
        scratch_name := name;
      IFEND;
    WHILEND;

    CASE form_processor OF
    = fdc$ansi_fortran_processor =
      name := scratch_name (1, 6);

    = fdc$cdc_fortran_processor =
      name := scratch_name (1, 7);

    ELSE {fdc$extended_fortran_processor}
    CASEND;

  PROCEND fdp$convert_to_fortran_name;

?? PUSH (LISTEXT := ON) ??
*copyc fdt$form_processor
*copyc fdv$to_extended_fortran
*copyc fdv$to_fortran
*copyc ost$name
?? POP ??
