inout_project_path_initialize Subroutine

private subroutine inout_project_path_initialize()

Arguments

None

Calls

proc~~inout_project_path_initialize~~CallsGraph proc~inout_project_path_initialize inout_project_path_initialize proc~error_message error_message proc~inout_project_path_initialize->proc~error_message log_error log_error proc~error_message->log_error

Called by

proc~~inout_project_path_initialize~~CalledByGraph proc~inout_project_path_initialize inout_project_path_initialize proc~get_project_path get_project_path proc~get_project_path->proc~inout_project_path_initialize proc~initialize_type_input type_input%initialize_type_input proc~initialize_type_input->proc~get_project_path proc~initialize_type_output type_output%initialize_type_output proc~initialize_type_output->proc~get_project_path

Source Code

    subroutine inout_project_path_initialize()
        implicit none
        character(64), parameter :: dName = "ProjectPath.dir"
        integer(int32) :: access, status, len_path, unit_num
        integer(int32) :: i

        status = access(dName, "r")
        if (status /= 0) call error_message(901, c_opt=dName)

        open (newunit=unit_num, file=dName, iostat=status, status="old")
        if (status /= 0) call error_message(902, c_opt=dName)

        read (unit_num, '(a)') ProjectPath
        close (unit_num)
        len_path = len_trim(ProjectPath)
        ProjectPath = trim(adjustl(ProjectPath))

        ! For windows, replace "\\" with "/"
        i = index(ProjectPath, "\\")
        do while (i > 0)
            ProjectPath(i:i + 1) = "/"
            if (i + 2 <= len_path) then
                ProjectPath(i + 1:) = ProjectPath(i + 2:)//" "
            end if
            len_path = len_path - 1
            i = index(ProjectPath, "\\")
        end do

        ! For UNIX, replace "\" with "/"
        i = index(ProjectPath, "\")
        do while (i > 0)
            ProjectPath(i:i) = "/"
            len_path = len_trim(ProjectPath)
            i = index(ProjectPath, "\")
        end do

        ! Add "/" to end to path
        if (len_path > 0 .and. ProjectPath(len_path:len_path) /= "/") then
            ProjectPath = trim(adjustl(ProjectPath))//"/"
        end if

        is_initialize_project_path = .true.

    end subroutine inout_project_path_initialize