get_username Function

public function get_username() result(user_name)

Arguments

None

Return Value character(len=:), allocatable


Called by

proc~~get_username~~CalledByGraph proc~get_username get_username proc~output_system_log output_system_log proc~output_system_log->proc~get_username interface~output_system_log type_output%output_system_log interface~output_system_log->proc~output_system_log

Source Code

    function get_username() result(user_name)
        implicit none
        character(:), allocatable :: user_name

        character(64) :: tmp_user_name
        integer(int32) :: len, status
        integer(int32) :: i

        character(:), allocatable :: user_name_lists(:)
        integer(int32), parameter :: user_name_lists_length = 4

        allocate (character(len=16) :: user_name_lists(user_name_lists_length))

        user_name_lists(1) = "USER"
        user_name_lists(2) = "LOGNAME"
        user_name_lists(3) = "LNAME"
        user_name_lists(4) = "USERNAME"

        do i = 1, user_name_lists_length
            call get_environment_variable(user_name_lists(i), &
                                          tmp_user_name, &
                                          len, &
                                          status)
            if (status == 0 .and. len > 0) then
                user_name = trim(adjustl(tmp_user_name))
                deallocate (user_name_lists)
                return
            end if
        end do

        user_name = "Unknown"

        deallocate (user_name_lists)

    end function get_username