iso_c_binding lets Fortran code describe names and types intended for C interop. A binding name is the stable external symbol.

Program

Play the program to choose the API version and build the exported symbol name.

c_binding_name.f90
program c_binding_name_demo
    use iso_c_binding, only: c_int
    implicit none
    integer(c_int) :: version
    character(len=24) :: symbol

    version = 
    write(symbol, '(A,I0)') 'run_step_v', version
    print '(A)', trim(symbol)
end program c_binding_name_demo
program c_binding_name_demo
    use iso_c_binding, only: c_int
    implicit none
    integer(c_int) :: version
    character(len=24) :: symbol

    version = 
    write(symbol, '(A,I0)') 'run_step_v', version
    print '(A)', trim(symbol)
end program c_binding_name_demo
program c_binding_name_demo
    use iso_c_binding, only: c_int
    implicit none
    integer(c_int) :: version
    character(len=24) :: symbol

    version = 
    write(symbol, '(A,I0)') 'run_step_v', version
    print '(A)', trim(symbol)
end program c_binding_name_demo
iso_c_binding `iso_c_binding` provides interoperable kind names such as `c_int`.
external symbol A stable binding name is the text another language would look up.
write to character `write(symbol, ...)` formats text into a fixed-length character variable.