get_basename Function

public function get_basename() result(basename)

Get the base name without “output_” prefix and “.json” suffix Example: “output_w1.json” -> “w1”

Arguments

None

Return Value character(len=256)


Called by

proc~~get_basename~~CalledByGraph proc~get_basename get_basename proc~write_gmbe_pie_json_impl write_gmbe_pie_json_impl proc~write_gmbe_pie_json_impl->proc~get_basename proc~write_mbe_breakdown_json_impl write_mbe_breakdown_json_impl proc~write_mbe_breakdown_json_impl->proc~get_basename proc~write_unfragmented_json_impl write_unfragmented_json_impl proc~write_unfragmented_json_impl->proc~get_basename proc~write_vibrational_json_impl write_vibrational_json_impl proc~write_vibrational_json_impl->proc~get_basename proc~write_json_output write_json_output proc~write_json_output->proc~write_gmbe_pie_json_impl proc~write_json_output->proc~write_mbe_breakdown_json_impl proc~write_json_output->proc~write_unfragmented_json_impl proc~write_json_output->proc~write_vibrational_json_impl proc~run_calculation run_calculation proc~run_calculation->proc~write_json_output proc~compute_energy_and_forces compute_energy_and_forces proc~compute_energy_and_forces->proc~run_calculation proc~run_multi_molecule_calculations run_multi_molecule_calculations proc~run_multi_molecule_calculations->proc~run_calculation program~main main program~main->proc~run_calculation program~main->proc~run_multi_molecule_calculations

Variables

Type Visibility Attributes Name Initial
integer, private :: end_pos
integer, private :: start_pos

Source Code

   function get_basename() result(basename)
      !! Get the base name without "output_" prefix and ".json" suffix
      !! Example: "output_w1.json" -> "w1"
      character(len=256) :: basename
      integer :: start_pos, end_pos

      ! Remove "output_" prefix (7 characters)
      start_pos = 8

      ! Find ".json" suffix
      end_pos = index(output_json_filename, '.json', back=.true.) - 1

      if (end_pos > start_pos) then
         basename = output_json_filename(start_pos:end_pos)
      else
         basename = "unknown"
      end if
   end function get_basename