Reads "use_ws_distance", "ws_distance_tol", "ws_search_size"
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(settings_type), | intent(inout) | :: | settings | |||
| type(ws_region_type), | intent(inout) | :: | ws_region | |||
| type(w90_error_type), | intent(out), | allocatable | :: | error | ||
| type(w90_comm_type), | intent(in) | :: | comm |
subroutine w90_readwrite_read_ws_data(settings, ws_region, error, comm) !! Reads "use_ws_distance", "ws_distance_tol", "ws_search_size" use w90_error, only: w90_error_type, set_error_input implicit none type(ws_region_type), intent(inout) :: ws_region type(w90_error_type), allocatable, intent(out) :: error type(w90_comm_type), intent(in) :: comm type(settings_type), intent(inout) :: settings integer :: i logical :: found call w90_readwrite_get_keyword(settings, 'use_ws_distance', found, error, comm, & l_value=ws_region%use_ws_distance) if (allocated(error)) return call w90_readwrite_get_keyword(settings, 'ws_distance_tol', found, error, comm, & r_value=ws_region%ws_distance_tol) if (allocated(error)) return call w90_readwrite_get_vector_length(settings, 'ws_search_size', found, i, error, comm) if (allocated(error)) return if (found) then if (i .eq. 1) then call w90_readwrite_get_keyword_vector(settings, 'ws_search_size', found, 1, error, comm, & i_value=ws_region%ws_search_size) if (allocated(error)) return ws_region%ws_search_size(2) = ws_region%ws_search_size(1) ws_region%ws_search_size(3) = ws_region%ws_search_size(1) elseif (i .eq. 3) then call w90_readwrite_get_keyword_vector(settings, 'ws_search_size', found, 3, error, comm, & i_value=ws_region%ws_search_size) if (allocated(error)) return else call set_error_input(error, & 'Error: ws_search_size must be provided as either one integer or a vector of three integers', comm) return end if if (any(ws_region%ws_search_size <= 0)) then call set_error_input(error, 'Error: ws_search_size elements must be greater than zero', comm) return end if end if end subroutine w90_readwrite_read_ws_data