diff --git a/src/InputParser/keywords/grid.jl b/src/InputParser/keywords/grid.jl index b29fece..2a47968 100644 --- a/src/InputParser/keywords/grid.jl +++ b/src/InputParser/keywords/grid.jl @@ -196,11 +196,20 @@ function unit_type(::Union{Val{:PORO}, Val{:NTG}}) return :id end +function unit_type(::Val{:PORV}) + return :volume +end + function parse_keyword!(data, outer_data, units, cfg, f, v::Union{Val{:DX}, Val{:DY}, Val{:DZ}}) k = unpack_val(v) data["$k"] = parse_grid_vector(f, get_cartdims(outer_data), Float64) end +function unit_type(::Union{Val{:DX}, Val{:DY}, Val{:DZ}}) + return :length +end + + function parse_keyword!(data, outer_data, units, cfg, f, ::Val{:TOPS}) tops = parse_deck_vector(f, Float64) data["TOPS"] = swap_unit_system!(tops, units, Val(:length)) diff --git a/src/InputParser/keywords/props.jl b/src/InputParser/keywords/props.jl index 242582e..c0f0822 100644 --- a/src/InputParser/keywords/props.jl +++ b/src/InputParser/keywords/props.jl @@ -231,6 +231,18 @@ function parse_keyword!(data, outer_data, units, cfg, f, ::Val{:VISCREF}) data["VISCREF"] = viscref end +function parse_keyword!(data, outer_data, units, cfg, f, v::Val{:ROCKTAB}) + nrock = outer_data["RUNSPEC"]["ROCKCOMP"][2] + tables = parse_region_matrix_table(f, nrock) + for tab in tables + for i in axes(tab, 1) + tab[i, 1] = swap_unit_system(tab[i, 1], units, :pressure) + end + end + parser_message(cfg, outer_data, "ROCKTAB", PARSER_JUTULDARCY_MISSING_SUPPORT) + data["ROCKTAB"] = tables +end + function parse_keyword!(data, outer_data, units, cfg, f, ::Val{:SPECHEAT}) nreg = number_of_tables(outer_data, :pvtnum) speacheat = parse_region_matrix_table(f, nreg) diff --git a/src/InputParser/keywords/runspec.jl b/src/InputParser/keywords/runspec.jl index 1cf9180..c9e574e 100644 --- a/src/InputParser/keywords/runspec.jl +++ b/src/InputParser/keywords/runspec.jl @@ -165,9 +165,15 @@ function parse_keyword!(data, outer_data, units, cfg, f, ::Val{:GRIDOPTS}) data["GRIDOPTS"] = parse_defaulted_line(rec, tdims) end +function parse_keyword!(data, outer_data, units, cfg, f, ::Val{:ROCKCOMP}) + rec = read_record(f) + tdims = ["REVERS", 1, "NO", "CZ", 0.0]; + data["ROCKCOMP"] = parse_defaulted_line(rec, tdims) +end + function parse_keyword!(data, outer_data, units, cfg, f, ::Val{:ENDSCALE}) rec = read_record(f) - parser_message(cfg, outer_data, "ENDSCALE", PARSER_JUTULDARCY_MISSING_SUPPORT) + parser_message(cfg, outer_data, "ENDSCALE", PARSER_JUTULDARCY_PARTIAL_SUPPORT) tdims = ["NODIR", "REVERS", 1, 20, 0]; props = get_section(outer_data, :PROPS, set_current = false) if !haskey(props, "SCALECRS")