read_conditions_initial_conditions_porosity Subroutine

subroutine read_conditions_initial_conditions_porosity(initial_condition, json, key_base, num_boundaries)

Arguments

Type IntentOptional Attributes Name
type(type_initial_local), intent(inout) :: initial_condition
type(json_file), intent(inout) :: json

JSON parser

character(len=*), intent(in) :: key_base

Base key for the initial condition

integer(kind=int32), intent(in), optional :: num_boundaries

Number of boundaries for the initial condition


Calls

proc~~read_conditions_initial_conditions_porosity~~CallsGraph proc~read_conditions_initial_conditions_porosity read_conditions_initial_conditions_porosity destroy destroy proc~read_conditions_initial_conditions_porosity->destroy get get proc~read_conditions_initial_conditions_porosity->get proc~error_message error_message proc~read_conditions_initial_conditions_porosity->proc~error_message proc~join join proc~read_conditions_initial_conditions_porosity->proc~join log_error log_error proc~error_message->log_error

Called by

proc~~read_conditions_initial_conditions_porosity~~CalledByGraph proc~read_conditions_initial_conditions_porosity read_conditions_initial_conditions_porosity proc~read_conditions_initial_conditions read_conditions_initial_conditions proc~read_conditions_initial_conditions->proc~read_conditions_initial_conditions_porosity proc~inout_read_conditions inout_read_conditions proc~inout_read_conditions->proc~read_conditions_initial_conditions interface~inout_read_conditions type_input%inout_read_conditions interface~inout_read_conditions->proc~inout_read_conditions proc~initialize_type_input type_input%initialize_type_input proc~initialize_type_input->interface~inout_read_conditions

Source Code

    subroutine read_conditions_initial_conditions_porosity(initial_condition, json, key_base, num_boundaries)
        implicit none
        type(type_initial_local), intent(inout) :: initial_condition
        type(json_file), intent(inout) :: json !! JSON parser
        character(*), intent(in) :: key_base !! Base key for the initial condition
        integer(int32), intent(in), optional :: num_boundaries !! Number of boundaries for the initial condition

        character(:), allocatable :: key
        logical :: found
        integer(int32) :: i

        key = join([key_base, type])
        call json%get(key, initial_condition%type, found=found)
        if (.not. found) then
            call json%destroy()
            call error_message(904, c_opt=key)
        end if

        if (.not. any(valid_initial_condition_types(:) == initial_condition%type)) then
            call json%destroy()
            call error_message(905, c_opt=key)
        end if

        select case (initial_condition%type)
        case (valid_initial_condition_types(1)) ! uniform
            key = join([key_base, value])
            call json%get(key, initial_condition%value, found=found)
            if (.not. found) then
                call json%destroy()
                call error_message(904, c_opt=key)
            end if
        case (valid_initial_condition_types(2)) ! laplace

        case (valid_initial_condition_types(3)) ! file
            key = join([key_base, field_name])
            call json%get(key, initial_condition%field_name, found=found)
            if (.not. found) then
                call json%destroy()
                call error_message(904, c_opt=key)
            end if
        end select

    end subroutine read_conditions_initial_conditions_porosity