csv_get_value Subroutine

private subroutine csv_get_value(me, row, col, val, status_ok)

Get an individual value from the csv_data structure in the CSV class.

The output val can be an integer(ip), real(wp), logical, or character(len=*) variable.

Type Bound

csv_file

Arguments

Type IntentOptional Attributes Name
class(csv_file), intent(inout) :: me
integer, intent(in) :: row

row number

integer, intent(in) :: col

column number

class(*), intent(out) :: val

the returned value

logical, intent(out) :: status_ok

status flag


Calls

proc~~csv_get_value~~CallsGraph proc~csv_get_value csv_file%csv_get_value proc~to_integer to_integer proc~csv_get_value->proc~to_integer proc~to_logical to_logical proc~csv_get_value->proc~to_logical proc~to_real_sp to_real_sp proc~csv_get_value->proc~to_real_sp proc~to_real_wp to_real_wp proc~csv_get_value->proc~to_real_wp proc~lowercase_string lowercase_string proc~to_logical->proc~lowercase_string

Called by

proc~~csv_get_value~~CalledByGraph proc~csv_get_value csv_file%csv_get_value proc~get_column csv_file%get_column proc~get_column->proc~csv_get_value proc~get_character_column csv_file%get_character_column proc~get_character_column->proc~get_column proc~get_csv_string_column csv_file%get_csv_string_column proc~get_csv_string_column->proc~get_column proc~get_integer_column csv_file%get_integer_column proc~get_integer_column->proc~get_column proc~get_logical_column csv_file%get_logical_column proc~get_logical_column->proc~get_column proc~get_real_sp_column csv_file%get_real_sp_column proc~get_real_sp_column->proc~get_column proc~get_real_wp_column csv_file%get_real_wp_column proc~get_real_wp_column->proc~get_column

Source Code

    subroutine csv_get_value(me,row,col,val,status_ok)

    implicit none

    class(csv_file),intent(inout) :: me
    integer,intent(in)   :: row !! row number
    integer,intent(in)   :: col !! column number
    class(*),intent(out) :: val !! the returned value
    logical,intent(out)  :: status_ok !! status flag

    select type (val)
    type is (integer(ip))
        call to_integer(me%csv_data(row,col)%str,val,status_ok)
    type is (real(sp))
        call to_real_sp(me%csv_data(row,col)%str,val,status_ok)
    type is (real(wp))
        call to_real_wp(me%csv_data(row,col)%str,val,status_ok)
    type is (logical)
        call to_logical(me%csv_data(row,col)%str,val,status_ok)
    type is (character(len=*))
        status_ok = .true.
        if (allocated(me%csv_data(row,col)%str)) then
            val = me%csv_data(row,col)%str
        else
            val = ''
        end if
    type is (csv_string)
        status_ok = .true.
        val = me%csv_data(row,col)
    class default
        status_ok = .false.
    end select

    end subroutine csv_get_value