diff --git a/.docs/Notebooks/mf6_netcdf01_tutorial.py b/.docs/Notebooks/mf6_netcdf01_tutorial.py new file mode 100644 index 000000000..523397af6 --- /dev/null +++ b/.docs/Notebooks/mf6_netcdf01_tutorial.py @@ -0,0 +1,520 @@ +# --- +# jupyter: +# jupytext: +# cell_metadata_filter: -all +# formats: ipynb,py:light +# text_representation: +# extension: .py +# format_name: light +# format_version: '1.5' +# jupytext_version: 1.17.2 +# kernelspec: +# display_name: Python 3 (ipykernel) +# language: python +# name: python3 +# --- + +# # MODFLOW 6: MODFLOW 6 NetCDF inputs from FloPy simulation +# +# ## Write MODFLOW 6 NetCDF simulation +# +# This tutorial demonstrates how to generate a MODFLOW 6 NetCDF file +# from an existing FloPy simulation. Three variations will be shown. +# In the first, FloPy will generate the file with a modified +# `write_simulation()` call. The second method is more interactive, +# providing an opputinity to modify the dataset before it is written +# to NetCDF. The third example will show how to update the simulation +# and dataset for a few specific parameters. +# +# Support for generating a MODFLOW 6 NetCDF input without a defined +# FloPy mf6 model or package instances is briefly discussed at the +# end of the tutorial. +# +# For more information on supported MODFLOW 6 NetCDF formats see: +# [MODFLOW NetCDF Format](https://github.com/MODFLOW-ORG/modflow6/wiki/MODFLOW-NetCDF-Format). +# +# Note that NetCDF is only supported by the Extended version of MODFLOW 6. +# A nightly windows build of Extended MODFLOW 6 is available from +# [nightly build](https://github.com/MODFLOW-ORG/modflow6-nightly-build). + +# package import +import sys +from pathlib import Path +from pprint import pformat, pprint +from tempfile import TemporaryDirectory + +import git +import numpy as np +import pooch +import xarray as xr + +import flopy + +print(sys.version) +print(f"flopy version: {flopy.__version__}") + +sim_name = "uzf01" + +# ### Check if we are in the repository and define the data path. + +try: + root = Path(git.Repo(".", search_parent_directories=True).working_dir) +except: + root = None + +data_path = root / "examples" / "data" / "mf6" / "netcdf" if root else Path.cwd() + +file_names = { + "mfsim.nam": None, + "uzf01.dis": None, + "uzf01.ghb.obs": None, + "uzf01.ghbg": None, + "uzf01.ic": None, + "uzf01.ims": None, + "uzf01.nam": None, + "uzf01.npf": None, + "uzf01.obs": None, + "uzf01.oc": None, + "uzf01.sto": None, + "uzf01.tdis": None, + "uzf01.uzf": None, + "uzf01.uzf.obs": None, +} + +for fname, fhash in file_names.items(): + pooch.retrieve( + url=f"https://github.com/modflowpy/flopy/raw/develop/examples/data/{sim_name}/{fname}", + fname=fname, + path=data_path / sim_name, + known_hash=fhash, + ) + +# ### Create simulation workspace + +# create temporary directories +temp_dir = TemporaryDirectory() +workspace = Path(temp_dir.name) + +# ### Load and run baseline simulation +# +# For the purposes of this tutorial, the specifics of the simulation +# other than it is a candidate for NetCDF input are not a focus. It +# is a NetCDF input candidate because it defines a supported model type +# (`GWF6`) with a structured discretization and packages that support +# NetCDF input parameters. +# +# More information about package NetCDF support in MODFLOW 6 can be +# found in the `MODFLOW 6 - Description of Input and Output` (`mf6io.pdf`), +# also available at the nightly build repository linked above. + +# load and run the ASCII based simulation +sim = flopy.mf6.MFSimulation.load(sim_ws=data_path / sim_name) +sim.set_sim_path(workspace) +sim.write_simulation() +success, buff = sim.run_simulation(silent=True, report=True) +assert success, pformat(buff) + +# ## Create NetCDF based simulation method 1 (non-interactive) +# +# The most straightforward way to create a NetCDF simulation +# from the loaded simulation is to provide a `netcdf` argument +# to `write_simulation()` and define it to be either `structured` +# or `layered`, depending on the desired format of the generated +# NetCDF file. +# +# The name of the created file can be specified by first setting the +# model `name_file.nc_filerecord` attribute to the desired name. If +# this step is not taken, the default name of `{model_name}.input.nc` +# is used. + +# create directory for the NetCDF sim +sim.set_sim_path(workspace / "netcdf1") +# set model name file nc_filerecord attribute to export name +gwf = sim.get_model("uzf01") +gwf.name_file.nc_filerecord = "uzf01.structured.nc" +# write simulation with structured NetCDF file +sim.write_simulation(netcdf="structured") + +# ### Run MODFLOW 6 simulation with NetCDF input +# +# The simulation generated by this tutorial should run with the +# Extended MODFLOW 6 executable, available from the nightly-build +# repository (linked above). + +# success, buff = sim.run_simulation(silent=True, report=True) +# assert success, pformat(buff) + +# ### Repeat method 1 with layered mesh NetCDF format + +# create directory for the NetCDF sim +sim.set_sim_path(workspace / "netcdf2") +# set model name file nc_filerecord attribute to export name +gwf = sim.get_model("uzf01") +gwf.name_file.nc_filerecord = "uzf01.layered.nc" +# write simulation with with layered mesh NetCDF file +sim.write_simulation(netcdf="layered") + +# ### Run MODFLOW 6 simulation with NetCDF input +# +# The simulation generated by this tutorial should run with the +# Extended MODFLOW 6 executable, available from the nightly-build +# repository (linked above). + +# success, buff = sim.run_simulation(silent=True, report=True) +# assert success, pformat(buff) + +# ## Create NetCDF based simulation method 2 (interactive) +# +# In this method we will set the FloPy `netcdf` argument to `` (empty +# string) when `write_simulation()` is called. As such, FloPy will +# not generate the NetCDF file automatically. We will manage the NetCDF +# file generation ourselves in method 2. +# +# Reset the simulation path and set the `GWF` name file `nc_filerecord` +# attribute to the name of the intended input NetCDF file. Display +# the resultant name file changes. +# +# When we write the updated simulation, all packages that support NetCDF +# input parameters will be written such that NetCDF parameters expect the +# data source to be a NetCDF file. We will therefore need to create a +# NetCDF input file containing arrays for the `DIS`, `NPF`, `IC`, `STO`, +# and `GHBG` packages. We will still use FloPy package objects to set the +# parameter data in the dataset; however an `update_data=False` argument +# could be passed to the `update_dataset()` call if this was not desired. + +# create directory for the NetCDF sim +sim.set_sim_path(workspace / "netcdf3") +# set model name file nc_filerecord attribute to export name +gwf = sim.get_model("uzf01") +gwf.name_file.nc_filerecord = "uzf01.structured.nc" +# write simulation with ASCII inputs tagged for NetCDF +# but do not create NetCDF file +sim.write_simulation(netcdf="") + +# ### Show name file with NetCDF input configured + +# show name file with NetCDF input configured +with open(workspace / "netcdf3" / "uzf01.nam", "r") as fh: + print(fh.read()) + +# ### Show example package file with NetCDF keywords + +# show example package file with NetCDF input configured +with open(workspace / "netcdf3" / "uzf01.ic", "r") as fh: + print(fh.read()) + +# ### Create dataset +# +# Create the base xarray dataset from the modelgrid object. This +# will add required dimensions and coordinate variables to the +# dataset according to the grid specification. Modeltime is needed +# for timeseries support. + +# create the dataset +ds = gwf.modelgrid.dataset(modeltime=gwf.modeltime) + +# ### Access model NetCDF attributes +# +# Internally, FloPy generates and uses NetCDF metadata dictionaries +# to update datasets. Both model and package objects can generate +# the dictionaries and they contain related but distinct NetCDF +# details. Model object dictionaries contain file scoped attribute +# information while package dictionaries are organized by NetCDF +# variable and contain variable scoped attribute information and +# details related to creating the variable, including dimensions, +# shape and data type. +# +# The dictionaries are available via the `netcdf_meta()` call. Their +# content also varies depending on the desired type of dataset (i.e. +# `structured` or `layered`). In this step we will access the model +# NetCDF metadata and use it to update dataset scoped attributes. +# +# First, retrieve and store the NetCDF metadata dictionary and display +# its contents. Then, in the following step, update the dataset with +# the model scoped attributes defined in the dictionary. +# +# These operations can also both be accomplished by calling +# `update_dataset()` on the model object, albeit without the +# opportunity to modify the intermediate metadata dictionary. +# Examples of this approach (with package objects) are shown below. + +# retrieve the model NetCDF meta dictionary +nc_meta = gwf.netcdf_meta() +pprint(nc_meta) + +# update dataset directly with required attributes +for a in nc_meta["attrs"]: + ds.attrs[a] = nc_meta["attrs"][a] + +# ### Update the dataset with supported `DIS` arrays +# +# First, we will show how package NetCDF parameters can be added to the +# dataset without using the NetCDF metadata dictionary. We will use the +# metadata dictionary when updating the dataset with NPF parameter data. +# +# Add NetCDF supported data arrays in package to dataset. + +# update dataset with `DIS` arrays +dis = gwf.get_package("dis") +ds = dis.update_dataset(ds) + +# ### Access `NPF` package NetCDF attributes +# +# Access package scoped NetCDF details by storing the dictionary returned +# from `netcdf_meta()`. +# +# The contents of the info dictionary are shown and then, in the following +# step, the dictionary and the dataset are passed to a helper routine that +# create the intended array variables. + +# get npf package netcdf info +npf = gwf.get_package("npf") +nc_meta = npf.netcdf_meta() +pprint(nc_meta) + +# ### Update package NetCDF metadata dictionary and dataset +# +# Here we update the metadata dictionary and then pass it directly to the +# `update_dataset()` function which uses it when adding variables to the +# dataset. +# +# We replace the default name for the `NPF K` input parameter and add +# the `standard_name` attribute to it's attribute dictionary. The +# dictionary is then passed to the `update_dataset()` function. Note the +# updated name is used in the subsequent block when updating the array +# values. + +# update dataset with `NPF` arrays +nc_meta["k"]["varname"] = "npf_k_updated" +nc_meta["k"]["attrs"]["standard_name"] = "soil_hydraulic_conductivity_at_saturation" +ds = npf.update_dataset(ds, netcdf_meta=nc_meta) + +# ### Show dataset `NPF K` parameter with updates + +# print dataset npf k variable +print(ds["npf_k_updated"]) + +# ### Update the dataset with supported `IC` arrays + +# ic +ic = gwf.get_package("ic") +ds = ic.update_dataset(ds) + +# ### Update the dataset with supported `STO` arrays + +# storage +sto = gwf.get_package("sto") +ds = sto.update_dataset(ds) + +# ### Update the dataset with supported `GHBG` arrays + +# update dataset with 'GHBG' arrays +ghbg = gwf.get_package("ghbg_0") +ds = ghbg.update_dataset(ds) + +# ### Display generated dataset + +# show the dataset +print(ds) + +# ### Export generated dataset to NetCDF + +# write dataset to NetCDF +ds.to_netcdf( + workspace / "netcdf3" / "uzf01.structured.nc", format="NETCDF4", engine="netcdf4" +) + +# ### Run MODFLOW 6 simulation with NetCDF input +# +# The simulation generated by this tutorial should run with the +# Extended MODFLOW 6 executable, available from the nightly-build +# repository (linked above). + +# success, buff = sim.run_simulation(silent=True, report=True) +# assert success, pformat(buff) + +# ## Support for independently creating and managing the dataset +# +# The NetCDF meta dictionaries are intended in part to support various +# workflows that might be used to generate a MODFLOW 6 input NetCDF file. +# A few more examples are shown here to demonstrate flexibility with +# respect to approach. First, we will use FloPy objects to retrieve +# instance NetCDF meta dictionaries but not to update the dataset. Finally, +# we will show how to retrieve NetCDF meta dictionaries when no FloPy +# objects are at hand. +# +# In particular, the next example shows how to add only select input +# parameters to the dataset. At this time, this sort of approach requires +# manual updating of the MODFLOW 6 ASCII input files, which is also +# shown here. + +# ### Reload and write the simulation so that ASCII files can be edited + +sim = flopy.mf6.MFSimulation.load(sim_ws=data_path / sim_name) +gwf = sim.get_model("uzf01") +gwf.name_file.nc_filerecord = "uzf01.structured.nc" +sim.set_sim_path(workspace / "netcdf4") +sim.write_simulation() + +# ### Show name file with NetCDF input configured + +# As the nc_filerecord attribute was configured, name file is already +# updated for NetCDF input +with open(workspace / "netcdf4" / "uzf01.nam", "r") as fh: + print(fh.read()) + +# ### Create the dataset +# +# Although we are accessing the modelgrid through the FloPy model +# object, this does not need to be case. Creating the modelgrid object +# independent of the model provides the same functionality. + +modelgrid = gwf.modelgrid +modeltime = gwf.modeltime +ds = modelgrid.dataset(modeltime=gwf.modeltime) + +# ### Retrieve model NetCDF meta dictionary + +nc_meta = gwf.netcdf_meta() +pprint(nc_meta) + +# ### Update dataset with required dataset scoped attributes + +for a in nc_meta["attrs"]: + ds.attrs[a] = nc_meta["attrs"][a] + +# ### Retrieve NPF NetCDF meta dictionary + +npf_nc_meta = gwf.get_package("npf").netcdf_meta() +pprint(npf_nc_meta) + +# ### Set actual dimensions in order of npf_nc_meta["k"]["netcdf_shape"] + +shape = (modelgrid.nlay, modelgrid.ncol, modelgrid.nrow) + +# ### Set varname and default data using NPF NetCDF meta dictionary + +varname = npf_nc_meta["k"]["varname"] +data = np.full( + shape, + npf_nc_meta["k"]["attrs"]["_FillValue"], + dtype=npf_nc_meta["k"]["xarray_type"], +) + +# ### Add parameter with fill values to dataset + +var_d = {varname: (npf_nc_meta["k"]["netcdf_shape"], data)} +ds = ds.assign(var_d) + +# ### Update parameter attributes from NetCDF meta dictionary + +for a in npf_nc_meta["k"]["attrs"]: + ds[varname].attrs[a] = npf_nc_meta["k"]["attrs"][a] + +# ### Update parameter data (set identical to ASCII sim) + +k = np.ones(shape, dtype=float) +ds[varname].values = k + +# ### Edit the NPF package ASCII file to specify K is in dataset + +with open(workspace / "netcdf4" / "uzf01.npf", "w") as f: + f.write("BEGIN options\n") + f.write("END options\n\n") + f.write("BEGIN griddata\n") + f.write(" icelltype\n") + f.write(" CONSTANT 1\n") + f.write(" k netcdf\n") + f.write("END griddata\n") + +# ### Retrieve GHBG NetCDF meta dictionary + +ghbg_nc_meta = gwf.get_package("ghbg").netcdf_meta() +pprint(ghbg_nc_meta) + +# ### Set actual dimensions in order of ghbg_nc_meta["bhead"]["netcdf_shape"] + +shape = (sum(modeltime.nstp), modelgrid.nlay, modelgrid.ncol, modelgrid.nrow) + +# ### Set varnames and data with help of GHBG NetCDF meta dictionary + +varnames = ["bhead", "cond"] +idata = [1.5, 1.0] +for i, v in enumerate(varnames): + varname = ghbg_nc_meta[v]["varname"] + data = np.full( + shape, + ghbg_nc_meta[v]["attrs"]["_FillValue"], + dtype=ghbg_nc_meta[v]["xarray_type"], + ) + + # add parameters to dataset + var_d = {varname: (ghbg_nc_meta[v]["netcdf_shape"], data)} + ds = ds.assign(var_d) + + # apply parameter attributes + for a in ghbg_nc_meta[v]["attrs"]: + ds[varname].attrs[a] = ghbg_nc_meta[v]["attrs"][a] + + # update data to be consistent with ASCII simulation + ds[varname].values[0, 99, 0, 0] = idata[i] + +# ### Edit the GHBG package ASCII file to specify BHEAD and COND are in the dataset + +with open(workspace / "netcdf4" / "uzf01.ghbg", "w") as f: + f.write("BEGIN options\n") + f.write(" READARRAYGRID\n") + f.write(" PRINT_INPUT\n") + f.write(" PRINT_FLOWS\n") + f.write(" OBS6 FILEIN uzf01.ghb.obs\n") + f.write("END options\n\n") + f.write("BEGIN period 1\n") + f.write(" bhead netcdf\n") + f.write(" cond netcdf\n") + f.write("END period 1\n") + +# ### Display the dataset + +print(ds) + +# ### Write the dataset + +ds.to_netcdf( + workspace / "netcdf4" / "uzf01.structured.nc", format="NETCDF4", engine="netcdf4" +) + +# ### Run MODFLOW 6 simulation with NetCDF input +# +# The simulation generated by this tutorial should run with the +# Extended MODFLOW 6 executable, available from the nightly-build +# repository (linked above). + +# success, buff = sim.run_simulation(silent=True, report=True) +# assert success, pformat(buff) + +# ## NetCDF meta dictionary without FloPy objects +# +# The above method still uses FloPy objects to update the dataset arrays +# to values consistent with the state of the objects. The `netcdf_meta` +# dictionary is intended to supported creation of the dataset without +# an existing simulation defined. The base dataset can be defined with +# `modelgrid` and `modeltime` objects, while the full package NetCDF meta +# dictionary can retrieved with a static call to a model or package mf6 +# type. The auxiliary input is optional but does show the variables that +# would be required if auxiliary variables were defined in the package. + +# ### Demonstrate static call on MFPackage (structured dataset): + +netcdf_meta = flopy.mf6.mfpackage.MFPackage.netcdf_package( + mtype="GWF", + ptype="NPF", + auxiliary=["CONCENTRATION"], +) +pprint(netcdf_meta) + +# ### Demonstrate static call on MFPackage (layered dataset): + +netcdf_meta = flopy.mf6.mfpackage.MFPackage.netcdf_package( + mtype="GWF", ptype="NPF", mesh="LAYERED", auxiliary=["CONCENTRATION"], nlay=2 +) +pprint(netcdf_meta) diff --git a/.github/workflows/rtd.yml b/.github/workflows/rtd.yml index a68d43e5f..bd19b39e0 100644 --- a/.github/workflows/rtd.yml +++ b/.github/workflows/rtd.yml @@ -147,6 +147,10 @@ jobs: meson test --verbose --no-rebuild -C builddir echo "$(pwd)/bin" >> $GITHUB_PATH + - name: Update FloPy packages + working-directory: modflow6 + run: python -m flopy.mf6.utils.generate_classes --dfnpath doc/mf6io/mf6ivar/dfn + - name: Run tutorial and example notebooks working-directory: flopy/autotest run: pytest -v -n auto test_example_notebooks.py diff --git a/DEVELOPER.md b/DEVELOPER.md index 0f0943a75..93aad9d02 100644 --- a/DEVELOPER.md +++ b/DEVELOPER.md @@ -223,8 +223,8 @@ All tutorials and examples should include a header with the following format: Contents above the `metadata` attribute can be auto-generated with `jupytext` by first-converting an example script to a notebook, and then back to a script (i.e. a round-trip conversion). For instance: ```sh -jupytext --from py --to ipynb .docs/Notebooks/your_example.py -jupytext --from ipynb --to py .docs/Notebooks/your_example.ipynb +jupytext --from py --to ipynb --set-formats ipynb,py:light .docs/Notebooks/your_example.py +jupytext --from ipynb --to py --set-formats ipynb,py:light .docs/Notebooks/your_example.ipynb ``` The `metadata` attribute should be filled by the example developer, and should contain at minimum: diff --git a/autotest/regression/test_model_netcdf.py b/autotest/regression/test_model_netcdf.py new file mode 100644 index 000000000..0f906f7fc --- /dev/null +++ b/autotest/regression/test_model_netcdf.py @@ -0,0 +1,444 @@ +import os +import shutil +from pprint import pformat, pprint + +import numpy as np +import pytest +import xarray as xr +from modflow_devtools.markers import requires_exe, requires_pkg +from pyproj import CRS + +import flopy +from flopy.discretization.structuredgrid import StructuredGrid +from flopy.discretization.vertexgrid import VertexGrid +from flopy.utils.gridutil import get_disv_kwargs + + +def check_netcdf(path, mobj, mesh=None): + """Check for functional equivalence""" + ds = xr.open_dataset(path, engine="netcdf4") + packages = [ + "dis", + "npf", + "ic", + "sto", + "ghbg_0", + ] + + # global attributes + assert "modflow_grid" in ds.attrs + assert "modflow_model" in ds.attrs + if mesh is None: + assert "mesh" not in ds.attrs + else: + assert "mesh" in ds.attrs + for a in ds.attrs: + pass + + # coordinates + for coordname, da in ds.coords.items(): + pass + + # variables + for varname, da in ds.data_vars.items(): + if mesh is None: + p = varname.rsplit("_", 1)[0] + else: + p = varname.rsplit("_", 2)[0] + + if p in packages: + l = -1 + assert "modflow_input" in da.attrs + assert "longname" in da.attrs + assert da.attrs["longname"] != "" + if mesh is None: + assert "layer" not in da.attrs + else: + lstr = varname.rsplit("_", 1)[1] + if lstr[0] == "l": + assert "layer" in da.attrs + l = da.attrs["layer"] - 1 + + tag = da.attrs["modflow_input"].rsplit("/", 1)[1].lower() + pobj = getattr(mobj, p) + d = getattr(pobj, tag) + if p == "ghbg_0": + spd = d.get_data() + for per in spd: + if spd[per] is not None: + istp = sum(mobj.modeltime.nstp[0:per]) + if l >= 0: + assert np.allclose( + ds.data_vars[varname][istp].fillna(3.00000000e30).data, + spd[per][l], + ) + else: + assert np.allclose( + ds.data_vars[varname][istp].fillna(3.00000000e30).data, + spd[per], + ) + else: + if l >= 0: + assert np.allclose(ds.data_vars[varname].values, d.get_data()[l]) + else: + assert np.allclose(ds.data_vars[varname].values, d.get_data()) + + +@pytest.mark.regression +def test_uzf01_model_scope_nofile(function_tmpdir, example_data_path): + sim_name = "uzf01" + netcdf = "" + fname = f"{sim_name}.structured.nc" + data_path_base = example_data_path / "mf6" / "netcdf" + ws = function_tmpdir / sim_name + base_path = data_path_base / sim_name + + # load example + sim = flopy.mf6.MFSimulation.load(sim_ws=base_path) + + # set simulation path and write simulation + sim.set_sim_path(ws) + gwf = sim.get_model(sim_name) + gwf.name_file.nc_filerecord = fname + sim.write_simulation(netcdf=netcdf) + + assert not (ws / fname).exists() + + +@pytest.mark.regression +def test_uzf02_model_scope_nofile(function_tmpdir, example_data_path): + sim_name = "uzf02" + netcdf = "" + fname = f"{sim_name}.input.nc" # default + data_path_base = example_data_path / "mf6" / "netcdf" + ws = function_tmpdir / sim_name + base_path = data_path_base / sim_name + + # load example + sim = flopy.mf6.MFSimulation.load(sim_ws=base_path) + + # set simulation path and write simulation + sim.set_sim_path(ws) + sim.write_simulation(netcdf=netcdf) + + assert not (ws / fname).exists() + + +@pytest.mark.regression +def test_uzf01_sim_scope_nomesh(function_tmpdir, example_data_path): + sim_name = "uzf01" + netcdf = "structured" + fname = f"{sim_name}.input.nc" + data_path_base = example_data_path / "mf6" / "netcdf" + ws = function_tmpdir / sim_name + base_path = data_path_base / sim_name + + # load example + sim = flopy.mf6.MFSimulation.load(sim_ws=base_path) + + # set simulation path and write simulation + sim.set_sim_path(ws) + sim.write_simulation(netcdf=netcdf) + + check_netcdf(ws / fname, sim.get_model(sim_name)) + + +@pytest.mark.regression +def test_uzf01_sim_scope_mesh(function_tmpdir, example_data_path): + sim_name = "uzf01" + netcdf = "layered" + fname = f"{sim_name}.input.nc" # default + data_path_base = example_data_path / "mf6" / "netcdf" + ws = function_tmpdir / sim_name + base_path = data_path_base / sim_name + + # load example + sim = flopy.mf6.MFSimulation.load(sim_ws=base_path) + + # set simulation path and write simulation + sim.set_sim_path(ws) + sim.write_simulation(netcdf=netcdf) + + check_netcdf(ws / fname, sim.get_model(sim_name), mesh=netcdf) + + +@pytest.mark.regression +def test_uzf01_sim_scope_fname(function_tmpdir, example_data_path): + sim_name = "uzf01" + netcdf = "structured" + fname = f"{sim_name}.layered.nc" + data_path_base = example_data_path / "mf6" / "netcdf" + ws = function_tmpdir / sim_name + base_path = data_path_base / sim_name + + # load example + sim = flopy.mf6.MFSimulation.load(sim_ws=base_path) + + # update write fname + gwf = sim.get_model(sim_name) + gwf.name_file.nc_filerecord = fname + + # set simulation path and write simulation + sim.set_sim_path(ws) + sim.write_simulation(netcdf=netcdf) + + check_netcdf(ws / fname, sim.get_model(sim_name)) + + +@pytest.mark.regression +def test_uzf02_sim_scope(function_tmpdir, example_data_path): + sim_name = "uzf02" + netcdf = "layered" + fname = f"{sim_name}.input.nc" # default + data_path_base = example_data_path / "mf6" / "netcdf" + ws = function_tmpdir / sim_name + base_path = data_path_base / sim_name + + # load example + sim = flopy.mf6.MFSimulation.load(sim_ws=base_path) + + # set simulation path and write simulation + sim.set_sim_path(ws) + sim.write_simulation(netcdf=netcdf) + + check_netcdf(ws / fname, sim.get_model(sim_name), mesh=netcdf) + + +@pytest.mark.regression +def test_uzf02_sim_scope_fname(function_tmpdir, example_data_path): + sim_name = "uzf02" + netcdf = "layered" + fname = f"{sim_name}.layered.nc" + data_path_base = example_data_path / "mf6" / "netcdf" + ws = function_tmpdir / sim_name + base_path = data_path_base / sim_name + + # load example + sim = flopy.mf6.MFSimulation.load(sim_ws=base_path) + + # update write fname + gwf = sim.get_model(sim_name) + gwf.name_file.nc_filerecord = fname + + # set simulation path and write simulation + sim.set_sim_path(ws) + sim.write_simulation(netcdf=netcdf) + + check_netcdf(ws / fname, sim.get_model(sim_name), mesh=netcdf) + + +@pytest.mark.regression +def test_uzf01_model_scope_nomesh(function_tmpdir, example_data_path): + sim_name = "uzf01" + netcdf = "" + fname = f"{sim_name}.structured.nc" + data_path_base = example_data_path / "mf6" / "netcdf" + ws = function_tmpdir / sim_name + base_path = data_path_base / sim_name + + # load example + sim = flopy.mf6.MFSimulation.load(sim_ws=base_path) + + # set simulation path and write simulation + sim.set_sim_path(ws) + gwf = sim.get_model(sim_name) + gwf.name_file.nc_filerecord = fname + sim.write_simulation(netcdf=netcdf) + + # create dataset + ds = gwf.modelgrid.dataset(modeltime=gwf.modeltime) + ds = gwf.update_dataset(ds) + + # write dataset to netcdf + ds.to_netcdf(ws / fname, format="NETCDF4", engine="netcdf4") + + check_netcdf(ws / fname, sim.get_model(sim_name)) + + +@pytest.mark.regression +def test_uzf01_model_scope_mesh(function_tmpdir, example_data_path): + sim_name = "uzf01" + netcdf = "" + mesh = "layered" + fname = f"{sim_name}.layered.nc" + data_path_base = example_data_path / "mf6" / "netcdf" + ws = function_tmpdir / sim_name + base_path = data_path_base / sim_name + + # load example + sim = flopy.mf6.MFSimulation.load(sim_ws=base_path) + + # set simulation path and write simulation + sim.set_sim_path(ws) + gwf = sim.get_model(sim_name) + gwf.name_file.nc_filerecord = fname + sim.write_simulation(netcdf=netcdf) + + # create dataset + ds = gwf.modelgrid.dataset(modeltime=gwf.modeltime, mesh=mesh) + ds = gwf.update_dataset(ds, mesh=mesh) + + # write dataset to netcdf + ds.to_netcdf(ws / fname, format="NETCDF4", engine="netcdf4") + + check_netcdf(ws / fname, sim.get_model(sim_name), mesh=mesh) + + +@pytest.mark.regression +def test_uzf02_model_scope(function_tmpdir, example_data_path): + sim_name = "uzf02" + netcdf = "" + mesh = "layered" + fname = f"{sim_name}.layered.nc" + data_path_base = example_data_path / "mf6" / "netcdf" + ws = function_tmpdir / sim_name + base_path = data_path_base / sim_name + + # load example + sim = flopy.mf6.MFSimulation.load(sim_ws=base_path) + + # set simulation path and write simulation + sim.set_sim_path(ws) + gwf = sim.get_model(sim_name) + gwf.name_file.nc_filerecord = fname + sim.write_simulation(netcdf=netcdf) + + # create dataset + ds = gwf.modelgrid.dataset(modeltime=gwf.modeltime, mesh=mesh) + ds = gwf.update_dataset(ds, mesh=mesh) + + # write dataset to netcdf + ds.to_netcdf(ws / fname, format="NETCDF4", engine="netcdf4") + + check_netcdf(ws / fname, sim.get_model(sim_name), mesh=mesh) + + +@pytest.mark.regression +def test_uzf01_pkg_scope(function_tmpdir, example_data_path): + sim_name = "uzf01" + fname = f"{sim_name}.structured.nc" + netcdf = "structured" + data_path_base = example_data_path / "mf6" / "netcdf" + ws = function_tmpdir / sim_name + base_path = data_path_base / sim_name + + # load example + sim = flopy.mf6.MFSimulation.load(sim_ws=base_path) + + # set simulation path and write simulation + sim.set_sim_path(ws) + gwf = sim.get_model(sim_name) + gwf.name_file.nc_filerecord = fname + sim.write_simulation(netcdf=netcdf) + + # create dataset + ds = gwf.modelgrid.dataset(modeltime=gwf.modeltime) + + # get model netcdf info + nc_meta = gwf.netcdf_meta() + + # update dataset directly with required attributes + for a in nc_meta["attrs"]: + ds.attrs[a] = nc_meta["attrs"][a] + + # add all packages and update data + for p in gwf.packagelist: + ds = p.update_dataset(ds) + + # write dataset to netcdf + ds.to_netcdf(ws / fname, format="NETCDF4", engine="netcdf4") + + check_netcdf(ws / fname, sim.get_model(sim_name)) + + +@pytest.mark.regression +def test_uzf01_pkg_scope_modify(function_tmpdir, example_data_path): + sim_name = "uzf01" + netcdf = "structured" + fname = f"{sim_name}.structured.nc" + data_path_base = example_data_path / "mf6" / "netcdf" + ws = function_tmpdir / sim_name + base_path = data_path_base / sim_name + + # load example + sim = flopy.mf6.MFSimulation.load(sim_ws=base_path) + + # set simulation path and write simulation + sim.set_sim_path(ws) + gwf = sim.get_model(sim_name) + gwf.name_file.nc_filerecord = fname + sim.write_simulation(netcdf=netcdf) + + # create dataset + ds = gwf.modelgrid.dataset(modeltime=gwf.modeltime) + + # get model netcdf info + nc_meta = gwf.netcdf_meta() + + # update dataset directly with required attributes + for a in nc_meta["attrs"]: + ds.attrs[a] = nc_meta["attrs"][a] + + # update dataset with `DIS` arrays + dis = gwf.get_package("dis") + ds = dis.update_dataset(ds) + + # get npf package netcdf info + npf = gwf.get_package("npf") + nc_meta = npf.netcdf_meta() + + # update dataset with `NPF` arrays + # change k varname and add attribute + nc_meta["k"]["varname"] = "npf_k_updated" + nc_meta["k"]["attrs"]["standard_name"] = "soil_hydraulic_conductivity_at_saturation" + ds = npf.update_dataset(ds, netcdf_meta=nc_meta) + + # ic + ic = gwf.get_package("ic") + ds = ic.update_dataset(ds) + + # storage + sto = gwf.get_package("sto") + ds = sto.update_dataset(ds) + + # update dataset with 'GHBG' arrays + ghbg = gwf.get_package("ghbg_0") + ds = ghbg.update_dataset(ds) + + # write dataset to netcdf + ds.to_netcdf(ws / fname, format="NETCDF4", engine="netcdf4") + + check_netcdf(ws / fname, sim.get_model(sim_name)) + assert ( + ds["npf_k_updated"].attrs["standard_name"] + == "soil_hydraulic_conductivity_at_saturation" + ) + + +@pytest.mark.regression +def test_uzf01_cycle(function_tmpdir, example_data_path): + sim_name = "uzf01" + netcdf = "structured" + fname = f"{sim_name}.input.nc" # default + data_path_base = example_data_path / "mf6" / "netcdf" + ws = function_tmpdir / sim_name + base_path = data_path_base / sim_name + + # load example + sim = flopy.mf6.MFSimulation.load(sim_ws=base_path) + + # set simulation path and write simulation + sim.set_sim_path(ws) + sim.write_simulation(netcdf=netcdf) + + check_netcdf(ws / fname, sim.get_model(sim_name)) + + # set simulation path and rewrite base simulation + sim.set_sim_path(ws / "mf6") + sim.write_simulation() + + assert not (ws / "mf6" / fname).exists() + + # codegen isn't using latest modflow dev branch + # success, buff = sim.run_simulation(silent=True, report=True) + # assert success, pformat(buff) diff --git a/autotest/test_mf6.py b/autotest/test_mf6.py index fc879eff7..23e223dc0 100644 --- a/autotest/test_mf6.py +++ b/autotest/test_mf6.py @@ -1961,6 +1961,516 @@ def test_array(function_tmpdir): assert lak_tab_2[4][1] == 503000.0 +@requires_exe("mf6") +def test_grid_array(function_tmpdir): + import warnings + + try: + from flopy.mf6 import ( + ModflowGwfchdg, + ModflowGwfdrng, + ModflowGwfghbg, + ModflowGwfrivg, + ModflowGwfwelg, + ) + except ImportError: + msg = "test_mf6 test_grid_array did not run" + warnings.warn(msg, UserWarning) + return + + sim_name = "test_grid_array" + model_name = "test_grid_array" + out_dir = function_tmpdir + tdis_name = f"{sim_name}.tdis" + sim = MFSimulation(sim_name=sim_name, version="mf6", exe_name="mf6", sim_ws=out_dir) + tdis_rc = [(6.0, 2, 1.0), (6.0, 3, 1.0), (6.0, 3, 1.0), (6.0, 3, 1.0)] + tdis = ModflowTdis(sim, time_units="DAYS", nper=4, perioddata=tdis_rc) + ims_package = ModflowIms( + sim, + pname="my_ims_file", + filename=f"{sim_name}.ims", + print_option="ALL", + complexity="SIMPLE", + outer_dvclose=0.0001, + outer_maximum=50, + under_relaxation="NONE", + inner_maximum=30, + inner_dvclose=0.0001, + linear_acceleration="CG", + preconditioner_levels=7, + preconditioner_drop_tolerance=0.01, + number_orthogonalizations=2, + ) + model = ModflowGwf(sim, modelname=model_name, model_nam_file=f"{model_name}.nam") + + dis = ModflowGwfdis( + model, + length_units="FEET", + nlay=4, + nrow=2, + ncol=2, + delr=5000.0, + delc=5000.0, + top=100.0, + botm=[50.0, 0.0, -50.0, -100.0], + filename=f"{model_name}.dis", + ) + ic_package = ModflowGwfic(model, strt=90.0, filename=f"{model_name}.ic") + npf_package = ModflowGwfnpf( + model, + pname="npf_1", + save_flows=True, + alternative_cell_averaging="logarithmic", + icelltype=1, + k=50.0, + ) + + oc_package = ModflowGwfoc( + model, + budget_filerecord=[("test_array.cbc",)], + head_filerecord=[("test_array.hds",)], + saverecord={ + 0: [("HEAD", "ALL"), ("BUDGET", "ALL")], + 1: [], + }, + printrecord=[("HEAD", "ALL"), ("BUDGET", "ALL")], + ) + + aux = {1: [[50.0], [1.3]], 3: [[200.0], [1.5]]} + irch = {1: [[0, 2], [2, 1]], 2: [[0, 1], [2, 3]]} + rcha = ModflowGwfrcha( + model, + print_input=True, + print_flows=True, + auxiliary=[("var1", "var2")], + irch=irch, + recharge={1: 0.0001, 2: 0.00001}, + aux=aux, + ) + val_irch = rcha.irch.array.sum(axis=(1, 2, 3)) + assert val_irch[0] == 4 + assert val_irch[1] == 5 + assert val_irch[2] == 6 + assert val_irch[3] == 6 + val_irch_2 = rcha.irch.get_data() + assert val_irch_2[0] is None + assert val_irch_2[1][1, 1] == 1 + assert val_irch_2[2][1, 1] == 3 + assert val_irch_2[3] is None + val_irch_2_3 = rcha.irch.get_data(3) + assert val_irch_2_3 is None + val_rch = rcha.recharge.array.sum(axis=(1, 2, 3)) + assert val_rch[0] == 0.0 + assert val_rch[1] == 0.0004 + assert val_rch[2] == 0.00004 + assert val_rch[3] == 0.00004 + val_rch_2 = rcha.recharge.get_data() + assert val_rch_2[0] is None + assert val_rch_2[1][0, 0] == 0.0001 + assert val_rch_2[2][0, 0] == 0.00001 + assert val_rch_2[3] is None + aux_data_0 = rcha.aux.get_data(0) + assert aux_data_0 is None + aux_data_1 = rcha.aux.get_data(1) + assert aux_data_1[0][0][0] == 50.0 + aux_data_2 = rcha.aux.get_data(2) + assert aux_data_2 is None + aux_data_3 = rcha.aux.get_data(3) + assert aux_data_3[0][0][0] == 200.0 + + nlay = dis.nlay.get_data() + nrow = dis.nrow.get_data() + ncol = dis.ncol.get_data() + + DNODATA = 3.0e30 # MF6 DNODATA constant + nper = 4 + welqspd = {} + welconcspd = {} + for n in range(4): + q = np.full((nlay, nrow, ncol), DNODATA, dtype=float) + welconc = np.full((nlay, nrow, ncol), DNODATA, dtype=float) + welaux2 = np.full((nlay, nrow, ncol), DNODATA, dtype=float) + # welcaux2 = np.full((nlay), DNODATA, dtype=float) + if n == 1: + q[0, 0, 0] = 0.25 + welconc[0, 0, 0] = 0.0 + welaux2[0, 0, 0] = 9.0 + # welcaux2[0] = 9.0 + elif n == 2: + q[0, 0, 0] = 0.1 + welconc[0, 0, 0] = 9.0 + welaux2[0, 0, 0] = 0.0 + # welcaux2[0] = 0.0 + welqspd[n] = q + welconcspd[n] = [welconc, welaux2] + # welconcspd[n] = [welconc, welcaux2] + + # first create test package with multiple auxvars + wel = ModflowGwfwelg( + model, + print_input=True, + print_flows=True, + mover=True, + save_flows=False, + auxiliary=["var1", "var2"], + pname="WEL-1", + q=welqspd, + aux=welconcspd, + ) + + # sim.write_simulation() + + assert len(wel.q.array) == 4 + assert len(wel.q.get_data()) == 4 + assert len(wel.aux.array) == 4 + assert len(wel.aux.get_data()) == 4 + for p in range(nper): + for iaux in range(2): # naux + assert np.allclose(wel.aux.array[p][iaux], wel.aux.get_data(p)[iaux]) + assert np.allclose(wel.aux.array[p][iaux], wel.aux.get_data()[p][iaux]) + + assert not wel.has_stress_period_data + q_nan = np.where(wel.q.array == DNODATA, np.nan, wel.q.array) + val_q = np.nansum(q_nan, axis=(1, 2, 3)) + assert val_q[0] == 0.0 + assert val_q[1] == 0.25 + assert val_q[2] == 0.1 + assert val_q[3] == 0.0 + val_q_2 = wel.q.get_data() + assert np.all(val_q_2[0] == DNODATA) + assert val_q_2[1][0, 0, 0] == 0.25 + assert val_q_2[2][0, 0, 0] == 0.1 + assert np.all(val_q_2[3] == DNODATA) + aux_data_0 = wel.aux.get_data(0) + assert np.all(aux_data_0[0] == DNODATA) + aux_data_1 = wel.aux.get_data(1) + assert aux_data_1[0][0][0][0] == 0.0 + assert aux_data_1[1][0][0][0] == 9.0 + aux_data_2 = wel.aux.get_data(2) + assert aux_data_2[0][0][0][0] == 9.0 + assert aux_data_2[1][0][0][0] == 0.0 + aux_data_3 = wel.aux.get_data(3) + assert np.all(aux_data_3[0] == DNODATA) + + # remove test wel package + sim.write_simulation() + wel.remove() + + welqspd = {} + welconcspd = {} + for n in range(2): + q = np.full((nlay, nrow, ncol), DNODATA, dtype=float) + welconc = np.full((nlay, nrow, ncol), DNODATA, dtype=float) + if n == 0: + q[0, 0, 0] = 0.25 + welconc[0, 0, 0] = 0.0 + elif n == 1: + q[0, 0, 0] = 0.1 + welconc[0, 0, 0] = 0.0 + welqspd[n + 1] = q + welconcspd[n + 1] = [welconc] + + # create welg package + wel = ModflowGwfwelg( + model, + print_input=True, + print_flows=True, + mover=True, + save_flows=False, + auxiliary=["CONCENTRATION"], + pname="WEL-1", + q=welqspd, + aux=welconcspd, + ) + + assert len(wel.q.array) == 4 + assert len(wel.q.get_data()) == 4 + assert len(wel.aux.array) == 4 + assert len(wel.aux.get_data()) == 4 + assert wel.q.get_data()[0] is None + assert wel.q.get_data(0) is None + assert np.allclose(wel.q.get_data()[1], wel.q.get_data(1)) + assert np.allclose(wel.q.get_data()[2], wel.q.get_data(2)) + assert np.allclose(wel.q.array[1], wel.q.get_data(1)) + assert np.allclose(wel.q.array[2], wel.q.get_data(2)) + assert wel.q.get_data()[3] is None + assert wel.q.get_data(3) is None + assert np.allclose(wel.aux.array[1][0], wel.aux.get_data(1)[0]) + assert np.allclose(wel.aux.array[2][0], wel.aux.get_data(2)[0]) + assert not wel.has_stress_period_data + wel_q_array = wel.q.array + print(wel_q_array) + q_nan = np.where(wel_q_array == DNODATA, np.nan, wel_q_array) + val_q = np.nansum(q_nan, axis=(1, 2, 3)) + print(val_q) + assert val_q[0] == 0.0 + assert val_q[1] == 0.25 + assert val_q[2] == 0.1 + assert val_q[3] == 0.0 + val_q_2 = wel.q.get_data() + assert val_q_2[0] is None + assert val_q_2[1][0, 0, 0] == 0.25 + assert val_q_2[2][0, 0, 0] == 0.1 + assert val_q_2[3] is None + aux_data_0 = wel.aux.get_data(0) + assert aux_data_0 is None + aux_data_1 = wel.aux.get_data(1) + assert aux_data_1[0][0][0][0] == 0.0 + assert aux_data_1[0][0, 0, 0] == 0.0 + aux_data_2 = wel.aux.get_data(2) + assert aux_data_2[0][0, 0, 0] == 0.0 + aux_data_3 = wel.aux.get_data(3) + assert aux_data_3 is None + + drnelevspd = {} + drncondspd = {} + for n in range(4): + elev = np.full((nlay, nrow, ncol), DNODATA, dtype=float) + cond = np.full((nlay, nrow, ncol), DNODATA, dtype=float) + if n == 0: + elev[0, 0, 0] = 60.0 + cond[0, 0, 0] = 10.0 + elif n == 3: + elev[0, 0, 0] = 55.0 + cond[0, 0, 0] = 5.0 + if n != 1: + drnelevspd[n] = elev + drncondspd[n] = cond + + # create drng package + drn = ModflowGwfdrng( + model, + print_input=True, + print_flows=True, + save_flows=False, + pname="DRN-1", + elev=drnelevspd, + cond=drncondspd, + ) + + drn_elev_array = drn.elev.array + drn_cond_array = drn.cond.array + drn_elev_data = drn.elev.get_data() + drn_cond_data = drn.cond.get_data() + assert len(drn_elev_array) == 4 + assert len(drn_cond_array) == 4 + assert len(drn_elev_data) == 4 + assert len(drn_cond_data) == 4 + assert np.allclose(drn_elev_array[0], drn_elev_data[0]) + assert np.allclose(drn_elev_array[0], drn.elev.get_data(0)) + for p in range(nper): + if p == 1: + assert drn_elev_data[p] is None + assert drn.elev.get_data(p) is None + else: + assert np.allclose(drn_elev_array[p], drn_elev_data[p]) + assert np.allclose(drn_elev_array[p], drn.elev.get_data()[p]) + assert np.allclose(drn_elev_array[p], drn.elev.get_data(p)) + + ghbbheadspd = {} + ghbcondspd = {} + bhead = np.full((nlay, nrow, ncol), DNODATA, dtype=float) + cond = np.full((nlay, nrow, ncol), DNODATA, dtype=float) + bhead[0, 1, 1] = 60.0 + cond[0, 1, 1] = 10.0 + ghbbheadspd[0] = bhead + ghbcondspd[0] = cond + + ghb = ModflowGwfghbg( + model, + print_input=True, + print_flows=True, + save_flows=False, + pname="GHB-1", + bhead=ghbbheadspd, + cond=ghbcondspd, + ) + + ghb_bhead_array = ghb.bhead.array + assert np.allclose(ghb.bhead.array[0], ghb.bhead.get_data()[0]) + assert np.allclose(ghb.bhead.array[0], ghb.bhead.get_data(0)) + assert np.allclose(ghb.cond.array[0], ghb.cond.get_data()[0]) + assert np.allclose(ghb.cond.array[0], ghb.cond.get_data(0)) + for p in range(1, nper): + assert ghb.bhead.get_data()[p] is None + assert ghb.bhead.get_data(p) is None + assert ghb.cond.get_data()[p] is None + assert ghb.cond.get_data(p) is None + assert len(ghb_bhead_array[p]) == len(ghb_bhead_array[0]) + assert ghb_bhead_array[p].shape == ghb_bhead_array[0].shape + assert np.allclose(ghb_bhead_array[p], ghb_bhead_array[0]) + + lakpd = [(0, 70.0, 1), (1, 65.0, 1)] + lakecn = [ + (0, 0, (0, 0, 0), "HORIZONTAL", 1.0, 60.0, 90.0, 10.0, 1.0), + (1, 0, (0, 1, 1), "HORIZONTAL", 1.0, 60.0, 90.0, 10.0, 1.0), + ] + lak_tables = [(0, "lak01.tab"), (1, "lak02.tab")] + lak = ModflowGwflak( + model, + pname="lak", + print_input=True, + mover=True, + nlakes=2, + noutlets=0, + ntables=1, + packagedata=lakpd, + connectiondata=lakecn, + tables=lak_tables, + ) + + table_01 = [ + (30.0, 100000.0, 10000.0), + (40.0, 200500.0, 10100.0), + (50.0, 301200.0, 10130.0), + (60.0, 402000.0, 10180.0), + (70.0, 503000.0, 10200.0), + (80.0, 700000.0, 20000.0), + ] + lak_tab = ModflowUtllaktab( + model, + filename="lak01.tab", + nrow=6, + ncol=3, + table=table_01, + ) + + table_02 = [ + (40.0, 100000.0, 10000.0), + (50.0, 200500.0, 10100.0), + (60.0, 301200.0, 10130.0), + (70.0, 402000.0, 10180.0), + (80.0, 503000.0, 10200.0), + (90.0, 700000.0, 20000.0), + ] + lak_tab_2 = ModflowUtllaktab( + model, + filename="lak02.tab", + nrow=6, + ncol=3, + table=table_02, + ) + wel_name_1 = wel.name[0] + lak_name_2 = lak.name[0] + package_data = [(wel_name_1,), (lak_name_2,)] + period_data = [(wel_name_1, 0, lak_name_2, 0, "FACTOR", 1.0)] + fname = f"{model.name}.input.mvr" + mvr = ModflowGwfmvr( + parent_model_or_package=model, + filename=fname, + print_input=True, + print_flows=True, + maxpackages=2, + maxmvr=1, + packages=package_data, + perioddata=period_data, + ) + + # test writing and loading model + sim.write_simulation() + sim.run_simulation() + + test_sim = MFSimulation.load( + sim_name, + "mf6", + "mf6", + out_dir, + write_headers=False, + ) + model = test_sim.get_model() + dis = model.get_package("dis") + rcha = model.get_package("rcha") + wel = model.get_package("wel") + drn = model.get_package("drn") + ghb = model.get_package("ghb") + lak = model.get_package("lak") + lak_tab = model.get_package("laktab") + assert os.path.split(dis.filename)[1] == f"{model_name}.dis" + # do same tests as above + val_irch = rcha.irch.array.sum(axis=(1, 2, 3)) + assert val_irch[0] == 4 + assert val_irch[1] == 5 + assert val_irch[2] == 6 + assert val_irch[3] == 6 + val_irch_2 = rcha.irch.get_data() + assert val_irch_2[0] is None + assert val_irch_2[1][1, 1] == 1 + assert val_irch_2[2][1, 1] == 3 + assert val_irch_2[3] is None + val_rch = rcha.recharge.array.sum(axis=(1, 2, 3)) + assert val_rch[0] == 0.0 + assert val_rch[1] == 0.0004 + assert val_rch[2] == 0.00004 + assert val_rch[3] == 0.00004 + val_rch_2 = rcha.recharge.get_data() + assert val_rch_2[0] is None + assert val_rch_2[1][0, 0] == 0.0001 + assert val_rch_2[2][0, 0] == 0.00001 + assert val_rch_2[3] is None + aux_data_0 = rcha.aux.get_data(0) + assert aux_data_0 is None + aux_data_1 = rcha.aux.get_data(1) + assert aux_data_1[0][0][0] == 50.0 + aux_data_2 = rcha.aux.get_data(2) + assert aux_data_2 is None + aux_data_3 = rcha.aux.get_data(3) + assert aux_data_3[0][0][0] == 200.0 + + wel_q_array = wel.q.array + assert np.all(wel_q_array[0][0] == 0.0) + assert wel_q_array[1][0, 0, 0] == 0.25 + assert wel_q_array[2][0, 0, 0] == 0.1 + assert wel_q_array[3][0, 0, 0] == 0.1 + welg_q_per = wel.q.get_data() + assert welg_q_per[0] is None + assert welg_q_per[1][0, 0, 0] == 0.25 + assert welg_q_per[2][0, 0, 0] == 0.1 + assert welg_q_per[3] is None + wel_aux_array = wel.aux.array + assert np.all(wel_aux_array[0][0] == 0.0) + assert wel_aux_array[1][0][0, 0, 0] == 0.0 + assert wel_aux_array[2][0][0, 0, 0] == 0.0 + assert wel_aux_array[3][0][0, 0, 0] == 0.0 + welg_aux_per = wel.aux.get_data() + assert welg_aux_per[0] is None + assert welg_aux_per[1][0][0, 0, 0] == 0.0 + assert welg_aux_per[2][0][0, 0, 0] == 0.0 + assert welg_aux_per[3] is None + + # first axis is nper, second is naux, then grid + drn_elev_array = drn.elev.array + assert drn_elev_array[0][0, 0, 0] == 60.0 + assert drn_elev_array[1][0, 0, 0] == 60.0 + assert drn_elev_array[2][0, 0, 0] == DNODATA + assert drn_elev_array[3][0, 0, 0] == 55.0 + assert np.allclose(drn_elev_array[0], drn.elev.get_data(0)) + assert drn.elev.get_data(1) is None + assert np.allclose(drn_elev_array[2], drn.elev.get_data(2)) + assert np.allclose(drn_elev_array[3], drn.elev.get_data(3)) + + ghb_bhead_array = ghb.bhead.array + assert ghb_bhead_array[0][0, 1, 1] == 60.0 + assert ghb_bhead_array[1][0, 1, 1] == 60.0 + assert ghb_bhead_array[2][0, 1, 1] == 60.0 + assert ghb_bhead_array[3][0, 1, 1] == 60.0 + assert np.allclose(ghb_bhead_array[0], ghb.bhead.get_data(0)) + assert ghb.bhead.get_data(1) is None + assert ghb.bhead.get_data(2) is None + assert ghb.bhead.get_data(3) is None + + lak_tab_array = lak.tables.get_data() + assert lak_tab_array[0][1] == "lak01.tab" + assert lak_tab_array[1][1] == "lak02.tab" + + assert len(lak_tab) == 2 + lak_tab_1 = lak_tab[0].table.get_data() + assert lak_tab_1[0][0] == 30.0 + assert lak_tab_1[5][2] == 20000.0 + lak_tab_2 = lak_tab[1].table.get_data() + assert lak_tab_2[0][0] == 40.0 + assert lak_tab_2[4][1] == 503000.0 + + @requires_exe("mf6") def test_multi_model(function_tmpdir): # init paths diff --git a/etc/environment.yml b/etc/environment.yml index 9e1fc34b8..2d6f654df 100644 --- a/etc/environment.yml +++ b/etc/environment.yml @@ -16,8 +16,7 @@ dependencies: - Jinja2>=3.0 - tomli - tomli-w - - pip: - - git+https://github.com/MODFLOW-ORG/modflow-devtools.git + - modflow-devtools==1.7.0 # lint - cffconvert @@ -31,8 +30,8 @@ dependencies: - jupyter - jupyter_client>=8.4.0 - jupytext + - modflow-devtools==1.7.0 - pip: - - git+https://github.com/MODFLOW-ORG/modflow-devtools.git - tach - pytest!=8.1.0 - pytest-benchmark @@ -65,3 +64,4 @@ dependencies: - xmipy - h5py - scikit-learn + - xarray diff --git a/examples/data/mf6/netcdf/uzf01/mfsim.nam b/examples/data/mf6/netcdf/uzf01/mfsim.nam new file mode 100644 index 000000000..0bf43b6cf --- /dev/null +++ b/examples/data/mf6/netcdf/uzf01/mfsim.nam @@ -0,0 +1,19 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/13/2025 at 16:16:10. +BEGIN options +END options + +BEGIN timing + TDIS6 uzf01.tdis +END timing + +BEGIN models + gwf6 uzf01.nam uzf01 +END models + +BEGIN exchanges +END exchanges + +BEGIN solutiongroup 1 + ims6 uzf01.ims uzf01 +END solutiongroup 1 + diff --git a/examples/data/mf6/netcdf/uzf01/uzf01.dis b/examples/data/mf6/netcdf/uzf01/uzf01.dis new file mode 100644 index 000000000..4f9500adf --- /dev/null +++ b/examples/data/mf6/netcdf/uzf01/uzf01.dis @@ -0,0 +1,322 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/13/2025 at 16:16:10. +BEGIN options + crs EPSG:26916 +END options + +BEGIN dimensions + NLAY 100 + NROW 1 + NCOL 1 +END dimensions + +BEGIN griddata + delr + CONSTANT 1.00000000 + delc + CONSTANT 1.00000000 + top + CONSTANT 100.00000000 + botm LAYERED + CONSTANT 99.00000000 + CONSTANT 98.00000000 + CONSTANT 97.00000000 + CONSTANT 96.00000000 + CONSTANT 95.00000000 + CONSTANT 94.00000000 + CONSTANT 93.00000000 + CONSTANT 92.00000000 + CONSTANT 91.00000000 + CONSTANT 90.00000000 + CONSTANT 89.00000000 + CONSTANT 88.00000000 + CONSTANT 87.00000000 + CONSTANT 86.00000000 + CONSTANT 85.00000000 + CONSTANT 84.00000000 + CONSTANT 83.00000000 + CONSTANT 82.00000000 + CONSTANT 81.00000000 + CONSTANT 80.00000000 + CONSTANT 79.00000000 + CONSTANT 78.00000000 + CONSTANT 77.00000000 + CONSTANT 76.00000000 + CONSTANT 75.00000000 + CONSTANT 74.00000000 + CONSTANT 73.00000000 + CONSTANT 72.00000000 + CONSTANT 71.00000000 + CONSTANT 70.00000000 + CONSTANT 69.00000000 + CONSTANT 68.00000000 + CONSTANT 67.00000000 + CONSTANT 66.00000000 + CONSTANT 65.00000000 + CONSTANT 64.00000000 + CONSTANT 63.00000000 + CONSTANT 62.00000000 + CONSTANT 61.00000000 + CONSTANT 60.00000000 + CONSTANT 59.00000000 + CONSTANT 58.00000000 + CONSTANT 57.00000000 + CONSTANT 56.00000000 + CONSTANT 55.00000000 + CONSTANT 54.00000000 + CONSTANT 53.00000000 + CONSTANT 52.00000000 + CONSTANT 51.00000000 + CONSTANT 50.00000000 + CONSTANT 49.00000000 + CONSTANT 48.00000000 + CONSTANT 47.00000000 + CONSTANT 46.00000000 + CONSTANT 45.00000000 + CONSTANT 44.00000000 + CONSTANT 43.00000000 + CONSTANT 42.00000000 + CONSTANT 41.00000000 + CONSTANT 40.00000000 + CONSTANT 39.00000000 + CONSTANT 38.00000000 + CONSTANT 37.00000000 + CONSTANT 36.00000000 + CONSTANT 35.00000000 + CONSTANT 34.00000000 + CONSTANT 33.00000000 + CONSTANT 32.00000000 + CONSTANT 31.00000000 + CONSTANT 30.00000000 + CONSTANT 29.00000000 + CONSTANT 28.00000000 + CONSTANT 27.00000000 + CONSTANT 26.00000000 + CONSTANT 25.00000000 + CONSTANT 24.00000000 + CONSTANT 23.00000000 + CONSTANT 22.00000000 + CONSTANT 21.00000000 + CONSTANT 20.00000000 + CONSTANT 19.00000000 + CONSTANT 18.00000000 + CONSTANT 17.00000000 + CONSTANT 16.00000000 + CONSTANT 15.00000000 + CONSTANT 14.00000000 + CONSTANT 13.00000000 + CONSTANT 12.00000000 + CONSTANT 11.00000000 + CONSTANT 10.00000000 + CONSTANT 9.00000000 + CONSTANT 8.00000000 + CONSTANT 7.00000000 + CONSTANT 6.00000000 + CONSTANT 5.00000000 + CONSTANT 4.00000000 + CONSTANT 3.00000000 + CONSTANT 2.00000000 + CONSTANT 1.00000000 + CONSTANT 0.00000000 + idomain LAYERED + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 + INTERNAL FACTOR 1 + 1 +END griddata + diff --git a/examples/data/mf6/netcdf/uzf01/uzf01.ghb.obs b/examples/data/mf6/netcdf/uzf01/uzf01.ghb.obs new file mode 100644 index 000000000..43f18f0bd --- /dev/null +++ b/examples/data/mf6/netcdf/uzf01/uzf01.ghb.obs @@ -0,0 +1,10 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/13/2025 at 16:16:10. +BEGIN options + DIGITS 20 + PRINT_INPUT +END options + +BEGIN continuous FILEOUT uzf01.ghb.obs.csv + 100_1_1 GHB 100 1 1 +END continuous FILEOUT uzf01.ghb.obs.csv + diff --git a/examples/data/mf6/netcdf/uzf01/uzf01.ghbg b/examples/data/mf6/netcdf/uzf01/uzf01.ghbg new file mode 100644 index 000000000..2f5f2046a --- /dev/null +++ b/examples/data/mf6/netcdf/uzf01/uzf01.ghbg @@ -0,0 +1,213 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/13/2025 at 16:16:10. +BEGIN options + READARRAYGRID + PRINT_INPUT + PRINT_FLOWS + OBS6 FILEIN uzf01.ghb.obs +END options + +BEGIN period 1 + bhead LAYERED + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 1.50000000 + cond LAYERED + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 3.00000000E+30 + CONSTANT 1.00000000 +END period 1 + diff --git a/examples/data/mf6/netcdf/uzf01/uzf01.ic b/examples/data/mf6/netcdf/uzf01/uzf01.ic new file mode 100644 index 000000000..c510f67b1 --- /dev/null +++ b/examples/data/mf6/netcdf/uzf01/uzf01.ic @@ -0,0 +1,9 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/13/2025 at 16:16:10. +BEGIN options +END options + +BEGIN griddata + strt + CONSTANT 0.50000000 +END griddata + diff --git a/examples/data/mf6/netcdf/uzf01/uzf01.ims b/examples/data/mf6/netcdf/uzf01/uzf01.ims new file mode 100644 index 000000000..558f5e0bd --- /dev/null +++ b/examples/data/mf6/netcdf/uzf01/uzf01.ims @@ -0,0 +1,22 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/13/2025 at 16:16:10. +BEGIN options + PRINT_OPTION summary +END options + +BEGIN nonlinear + OUTER_DVCLOSE 1.50000000E-06 + OUTER_MAXIMUM 100 + UNDER_RELAXATION dbd + UNDER_RELAXATION_THETA 0.70000000 +END nonlinear + +BEGIN linear + INNER_MAXIMUM 10 + INNER_DVCLOSE 1.50000000E-06 + inner_rclose 1.00000000E-06 + LINEAR_ACCELERATION bicgstab + RELAXATION_FACTOR 0.97000000 + SCALING_METHOD none + REORDERING_METHOD none +END linear + diff --git a/examples/data/mf6/netcdf/uzf01/uzf01.nam b/examples/data/mf6/netcdf/uzf01/uzf01.nam new file mode 100644 index 000000000..0a21933f6 --- /dev/null +++ b/examples/data/mf6/netcdf/uzf01/uzf01.nam @@ -0,0 +1,17 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/13/2025 at 16:16:10. +BEGIN options + SAVE_FLOWS + NEWTON UNDER_RELAXATION +END options + +BEGIN packages + DIS6 uzf01.dis dis + IC6 uzf01.ic ic + NPF6 uzf01.npf npf + STO6 uzf01.sto sto + GHB6 uzf01.ghbg ghbg_0 + UZF6 uzf01.uzf uzf_0 + OC6 uzf01.oc oc + OBS6 uzf01.obs head_obs +END packages + diff --git a/examples/data/mf6/netcdf/uzf01/uzf01.npf b/examples/data/mf6/netcdf/uzf01/uzf01.npf new file mode 100644 index 000000000..ffd4c1dc7 --- /dev/null +++ b/examples/data/mf6/netcdf/uzf01/uzf01.npf @@ -0,0 +1,11 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/13/2025 at 16:16:10. +BEGIN options +END options + +BEGIN griddata + icelltype + CONSTANT 1 + k + CONSTANT 1.00000000 +END griddata + diff --git a/examples/data/mf6/netcdf/uzf01/uzf01.obs b/examples/data/mf6/netcdf/uzf01/uzf01.obs new file mode 100644 index 000000000..c03d635c3 --- /dev/null +++ b/examples/data/mf6/netcdf/uzf01/uzf01.obs @@ -0,0 +1,10 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/13/2025 at 16:16:10. +BEGIN options + DIGITS 20 +END options + +BEGIN continuous FILEOUT uzf01.obs.csv + obs1 head 1 1 1 + obs2 head 2 1 1 +END continuous FILEOUT uzf01.obs.csv + diff --git a/examples/data/mf6/netcdf/uzf01/uzf01.oc b/examples/data/mf6/netcdf/uzf01/uzf01.oc new file mode 100644 index 000000000..0e367a36e --- /dev/null +++ b/examples/data/mf6/netcdf/uzf01/uzf01.oc @@ -0,0 +1,14 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/13/2025 at 16:16:10. +BEGIN options + BUDGET FILEOUT uzf01.bud + HEAD FILEOUT uzf01.hds + HEAD PRINT_FORMAT COLUMNS 10 WIDTH 15 DIGITS 6 GENERAL +END options + +BEGIN period 1 + SAVE HEAD ALL + SAVE BUDGET ALL + PRINT HEAD LAST + PRINT BUDGET ALL +END period 1 + diff --git a/examples/data/mf6/netcdf/uzf01/uzf01.sto b/examples/data/mf6/netcdf/uzf01/uzf01.sto new file mode 100644 index 000000000..b0ffd665a --- /dev/null +++ b/examples/data/mf6/netcdf/uzf01/uzf01.sto @@ -0,0 +1,17 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/13/2025 at 16:16:10. +BEGIN options +END options + +BEGIN griddata + iconvert + CONSTANT 1 + ss + CONSTANT 0.00000000 + sy + CONSTANT 0.10000000 +END griddata + +BEGIN period 1 + TRANSIENT +END period 1 + diff --git a/examples/data/mf6/netcdf/uzf01/uzf01.tdis b/examples/data/mf6/netcdf/uzf01/uzf01.tdis new file mode 100644 index 000000000..a71368402 --- /dev/null +++ b/examples/data/mf6/netcdf/uzf01/uzf01.tdis @@ -0,0 +1,13 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/13/2025 at 16:16:10. +BEGIN options + TIME_UNITS days +END options + +BEGIN dimensions + NPER 1 +END dimensions + +BEGIN perioddata + 500.00000000 10 1.00000000 +END perioddata + diff --git a/examples/data/mf6/netcdf/uzf01/uzf01.uzf b/examples/data/mf6/netcdf/uzf01/uzf01.uzf new file mode 100644 index 000000000..d71812367 --- /dev/null +++ b/examples/data/mf6/netcdf/uzf01/uzf01.uzf @@ -0,0 +1,123 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/13/2025 at 16:16:10. +BEGIN options + BOUNDNAMES + PRINT_INPUT + PRINT_FLOWS + SAVE_FLOWS + BUDGET FILEOUT uzf01.uzf.bud + BUDGETCSV FILEOUT uzf01.uzf.bud.csv + OBS6 FILEIN uzf01.uzf.obs +END options + +BEGIN dimensions + NUZFCELLS 99 + NTRAILWAVES 15 + NWAVESETS 40 +END dimensions + +BEGIN packagedata + 1 1 1 1 1 2 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 001' + 2 2 1 1 0 3 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 002' + 3 3 1 1 0 4 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 003' + 4 4 1 1 0 5 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 004' + 5 5 1 1 0 6 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 005' + 6 6 1 1 0 7 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 006' + 7 7 1 1 0 8 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 007' + 8 8 1 1 0 9 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 008' + 9 9 1 1 0 10 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 009' + 10 10 1 1 0 11 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 010' + 11 11 1 1 0 12 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 011' + 12 12 1 1 0 13 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 012' + 13 13 1 1 0 14 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 013' + 14 14 1 1 0 15 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 014' + 15 15 1 1 0 16 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 015' + 16 16 1 1 0 17 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 016' + 17 17 1 1 0 18 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 017' + 18 18 1 1 0 19 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 018' + 19 19 1 1 0 20 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 019' + 20 20 1 1 0 21 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 020' + 21 21 1 1 0 22 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 021' + 22 22 1 1 0 23 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 022' + 23 23 1 1 0 24 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 023' + 24 24 1 1 0 25 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 024' + 25 25 1 1 0 26 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 025' + 26 26 1 1 0 27 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 026' + 27 27 1 1 0 28 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 027' + 28 28 1 1 0 29 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 028' + 29 29 1 1 0 30 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 029' + 30 30 1 1 0 31 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 030' + 31 31 1 1 0 32 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 031' + 32 32 1 1 0 33 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 032' + 33 33 1 1 0 34 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 033' + 34 34 1 1 0 35 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 034' + 35 35 1 1 0 36 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 035' + 36 36 1 1 0 37 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 036' + 37 37 1 1 0 38 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 037' + 38 38 1 1 0 39 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 038' + 39 39 1 1 0 40 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 039' + 40 40 1 1 0 41 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 040' + 41 41 1 1 0 42 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 041' + 42 42 1 1 0 43 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 042' + 43 43 1 1 0 44 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 043' + 44 44 1 1 0 45 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 044' + 45 45 1 1 0 46 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 045' + 46 46 1 1 0 47 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 046' + 47 47 1 1 0 48 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 047' + 48 48 1 1 0 49 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 048' + 49 49 1 1 0 50 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 049' + 50 50 1 1 0 51 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 050' + 51 51 1 1 0 52 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 051' + 52 52 1 1 0 53 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 052' + 53 53 1 1 0 54 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 053' + 54 54 1 1 0 55 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 054' + 55 55 1 1 0 56 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 055' + 56 56 1 1 0 57 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 056' + 57 57 1 1 0 58 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 057' + 58 58 1 1 0 59 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 058' + 59 59 1 1 0 60 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 059' + 60 60 1 1 0 61 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 060' + 61 61 1 1 0 62 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 061' + 62 62 1 1 0 63 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 062' + 63 63 1 1 0 64 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 063' + 64 64 1 1 0 65 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 064' + 65 65 1 1 0 66 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 065' + 66 66 1 1 0 67 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 066' + 67 67 1 1 0 68 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 067' + 68 68 1 1 0 69 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 068' + 69 69 1 1 0 70 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 069' + 70 70 1 1 0 71 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 070' + 71 71 1 1 0 72 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 071' + 72 72 1 1 0 73 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 072' + 73 73 1 1 0 74 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 073' + 74 74 1 1 0 75 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 074' + 75 75 1 1 0 76 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 075' + 76 76 1 1 0 77 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 076' + 77 77 1 1 0 78 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 077' + 78 78 1 1 0 79 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 078' + 79 79 1 1 0 80 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 079' + 80 80 1 1 0 81 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 080' + 81 81 1 1 0 82 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 081' + 82 82 1 1 0 83 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 082' + 83 83 1 1 0 84 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 083' + 84 84 1 1 0 85 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 084' + 85 85 1 1 0 86 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 085' + 86 86 1 1 0 87 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 086' + 87 87 1 1 0 88 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 087' + 88 88 1 1 0 89 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 088' + 89 89 1 1 0 90 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 089' + 90 90 1 1 0 91 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 090' + 91 91 1 1 0 92 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 091' + 92 92 1 1 0 93 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 092' + 93 93 1 1 0 94 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 093' + 94 94 1 1 0 95 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 094' + 95 95 1 1 0 96 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 095' + 96 96 1 1 0 97 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 096' + 97 97 1 1 0 98 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 097' + 98 98 1 1 0 99 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 098' + 99 99 1 1 0 0 0.10000000 1.00000000 0.05000000 0.10000000 0.05000000 4.00000000 'uzf 099' +END packagedata + +BEGIN period 1 + 1 2.01 0.0 0.0 0.0 0.0 0.0 0.0 +END period 1 + diff --git a/examples/data/mf6/netcdf/uzf01/uzf01.uzf.obs b/examples/data/mf6/netcdf/uzf01/uzf01.uzf.obs new file mode 100644 index 000000000..2d6aa408a --- /dev/null +++ b/examples/data/mf6/netcdf/uzf01/uzf01.uzf.obs @@ -0,0 +1,13 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/13/2025 at 16:16:10. +BEGIN options +END options + +BEGIN continuous FILEOUT uzf01.uzf.obs.csv + 'wc 02' water-content 2 0.5 + 'wc 50' water-content 50 0.5 + 'wcbn 02' water-content 'uzf 002' 0.5 + 'wcbn 50' water-content 'UZF 050' 0.5 + 'rch 02' uzf-gwrch 'uzf 002' + 'rch 50' uzf-gwrch 'uzf 050' +END continuous FILEOUT uzf01.uzf.obs.csv + diff --git a/examples/data/mf6/netcdf/uzf02/mfsim.nam b/examples/data/mf6/netcdf/uzf02/mfsim.nam new file mode 100644 index 000000000..8d597acf8 --- /dev/null +++ b/examples/data/mf6/netcdf/uzf02/mfsim.nam @@ -0,0 +1,19 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/14/2025 at 10:40:32. +BEGIN options +END options + +BEGIN timing + TDIS6 uzf02.tdis +END timing + +BEGIN models + gwf6 uzf02.nam uzf02 +END models + +BEGIN exchanges +END exchanges + +BEGIN solutiongroup 1 + ims6 uzf02.ims uzf02 +END solutiongroup 1 + diff --git a/examples/data/mf6/netcdf/uzf02/uzf02.disv b/examples/data/mf6/netcdf/uzf02/uzf02.disv new file mode 100644 index 000000000..a19abbd1c --- /dev/null +++ b/examples/data/mf6/netcdf/uzf02/uzf02.disv @@ -0,0 +1,278 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/14/2025 at 10:40:32. +BEGIN options +END options + +BEGIN dimensions + NLAY 5 + NCPL 100 + NVERT 121 +END dimensions + +BEGIN griddata + top + INTERNAL FACTOR 1.0 + 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 + 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 + 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 + 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 + 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 25.00000000 + botm LAYERED + INTERNAL FACTOR 1.0 + 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 + 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 + 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 + 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 + 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 20.00000000 + INTERNAL FACTOR 1.0 + 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 + 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 + 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 + 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 + 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 15.00000000 + INTERNAL FACTOR 1.0 + 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 + 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 + 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 + 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 + 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 10.00000000 + INTERNAL FACTOR 1.0 + 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 + 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 + 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 + 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 + 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 5.00000000 + INTERNAL FACTOR 1.0 + 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 + 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 + 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 + 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 + 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 +END griddata + +BEGIN vertices + 1 0.00000000 10.00000000 + 2 1.00000000 10.00000000 + 3 2.00000000 10.00000000 + 4 3.00000000 10.00000000 + 5 4.00000000 10.00000000 + 6 5.00000000 10.00000000 + 7 6.00000000 10.00000000 + 8 7.00000000 10.00000000 + 9 8.00000000 10.00000000 + 10 9.00000000 10.00000000 + 11 10.00000000 10.00000000 + 12 0.00000000 9.00000000 + 13 1.00000000 9.00000000 + 14 2.00000000 9.00000000 + 15 3.00000000 9.00000000 + 16 4.00000000 9.00000000 + 17 5.00000000 9.00000000 + 18 6.00000000 9.00000000 + 19 7.00000000 9.00000000 + 20 8.00000000 9.00000000 + 21 9.00000000 9.00000000 + 22 10.00000000 9.00000000 + 23 0.00000000 8.00000000 + 24 1.00000000 8.00000000 + 25 2.00000000 8.00000000 + 26 3.00000000 8.00000000 + 27 4.00000000 8.00000000 + 28 5.00000000 8.00000000 + 29 6.00000000 8.00000000 + 30 7.00000000 8.00000000 + 31 8.00000000 8.00000000 + 32 9.00000000 8.00000000 + 33 10.00000000 8.00000000 + 34 0.00000000 7.00000000 + 35 1.00000000 7.00000000 + 36 2.00000000 7.00000000 + 37 3.00000000 7.00000000 + 38 4.00000000 7.00000000 + 39 5.00000000 7.00000000 + 40 6.00000000 7.00000000 + 41 7.00000000 7.00000000 + 42 8.00000000 7.00000000 + 43 9.00000000 7.00000000 + 44 10.00000000 7.00000000 + 45 0.00000000 6.00000000 + 46 1.00000000 6.00000000 + 47 2.00000000 6.00000000 + 48 3.00000000 6.00000000 + 49 4.00000000 6.00000000 + 50 5.00000000 6.00000000 + 51 6.00000000 6.00000000 + 52 7.00000000 6.00000000 + 53 8.00000000 6.00000000 + 54 9.00000000 6.00000000 + 55 10.00000000 6.00000000 + 56 0.00000000 5.00000000 + 57 1.00000000 5.00000000 + 58 2.00000000 5.00000000 + 59 3.00000000 5.00000000 + 60 4.00000000 5.00000000 + 61 5.00000000 5.00000000 + 62 6.00000000 5.00000000 + 63 7.00000000 5.00000000 + 64 8.00000000 5.00000000 + 65 9.00000000 5.00000000 + 66 10.00000000 5.00000000 + 67 0.00000000 4.00000000 + 68 1.00000000 4.00000000 + 69 2.00000000 4.00000000 + 70 3.00000000 4.00000000 + 71 4.00000000 4.00000000 + 72 5.00000000 4.00000000 + 73 6.00000000 4.00000000 + 74 7.00000000 4.00000000 + 75 8.00000000 4.00000000 + 76 9.00000000 4.00000000 + 77 10.00000000 4.00000000 + 78 0.00000000 3.00000000 + 79 1.00000000 3.00000000 + 80 2.00000000 3.00000000 + 81 3.00000000 3.00000000 + 82 4.00000000 3.00000000 + 83 5.00000000 3.00000000 + 84 6.00000000 3.00000000 + 85 7.00000000 3.00000000 + 86 8.00000000 3.00000000 + 87 9.00000000 3.00000000 + 88 10.00000000 3.00000000 + 89 0.00000000 2.00000000 + 90 1.00000000 2.00000000 + 91 2.00000000 2.00000000 + 92 3.00000000 2.00000000 + 93 4.00000000 2.00000000 + 94 5.00000000 2.00000000 + 95 6.00000000 2.00000000 + 96 7.00000000 2.00000000 + 97 8.00000000 2.00000000 + 98 9.00000000 2.00000000 + 99 10.00000000 2.00000000 + 100 0.00000000 1.00000000 + 101 1.00000000 1.00000000 + 102 2.00000000 1.00000000 + 103 3.00000000 1.00000000 + 104 4.00000000 1.00000000 + 105 5.00000000 1.00000000 + 106 6.00000000 1.00000000 + 107 7.00000000 1.00000000 + 108 8.00000000 1.00000000 + 109 9.00000000 1.00000000 + 110 10.00000000 1.00000000 + 111 0.00000000 0.00000000 + 112 1.00000000 0.00000000 + 113 2.00000000 0.00000000 + 114 3.00000000 0.00000000 + 115 4.00000000 0.00000000 + 116 5.00000000 0.00000000 + 117 6.00000000 0.00000000 + 118 7.00000000 0.00000000 + 119 8.00000000 0.00000000 + 120 9.00000000 0.00000000 + 121 10.00000000 0.00000000 +END vertices + +BEGIN cell2d + 1 0.50000000 9.50000000 4 1 2 13 12 + 2 1.50000000 9.50000000 4 2 3 14 13 + 3 2.50000000 9.50000000 4 3 4 15 14 + 4 3.50000000 9.50000000 4 4 5 16 15 + 5 4.50000000 9.50000000 4 5 6 17 16 + 6 5.50000000 9.50000000 4 6 7 18 17 + 7 6.50000000 9.50000000 4 7 8 19 18 + 8 7.50000000 9.50000000 4 8 9 20 19 + 9 8.50000000 9.50000000 4 9 10 21 20 + 10 9.50000000 9.50000000 4 10 11 22 21 + 11 0.50000000 8.50000000 4 12 13 24 23 + 12 1.50000000 8.50000000 4 13 14 25 24 + 13 2.50000000 8.50000000 4 14 15 26 25 + 14 3.50000000 8.50000000 4 15 16 27 26 + 15 4.50000000 8.50000000 4 16 17 28 27 + 16 5.50000000 8.50000000 4 17 18 29 28 + 17 6.50000000 8.50000000 4 18 19 30 29 + 18 7.50000000 8.50000000 4 19 20 31 30 + 19 8.50000000 8.50000000 4 20 21 32 31 + 20 9.50000000 8.50000000 4 21 22 33 32 + 21 0.50000000 7.50000000 4 23 24 35 34 + 22 1.50000000 7.50000000 4 24 25 36 35 + 23 2.50000000 7.50000000 4 25 26 37 36 + 24 3.50000000 7.50000000 4 26 27 38 37 + 25 4.50000000 7.50000000 4 27 28 39 38 + 26 5.50000000 7.50000000 4 28 29 40 39 + 27 6.50000000 7.50000000 4 29 30 41 40 + 28 7.50000000 7.50000000 4 30 31 42 41 + 29 8.50000000 7.50000000 4 31 32 43 42 + 30 9.50000000 7.50000000 4 32 33 44 43 + 31 0.50000000 6.50000000 4 34 35 46 45 + 32 1.50000000 6.50000000 4 35 36 47 46 + 33 2.50000000 6.50000000 4 36 37 48 47 + 34 3.50000000 6.50000000 4 37 38 49 48 + 35 4.50000000 6.50000000 4 38 39 50 49 + 36 5.50000000 6.50000000 4 39 40 51 50 + 37 6.50000000 6.50000000 4 40 41 52 51 + 38 7.50000000 6.50000000 4 41 42 53 52 + 39 8.50000000 6.50000000 4 42 43 54 53 + 40 9.50000000 6.50000000 4 43 44 55 54 + 41 0.50000000 5.50000000 4 45 46 57 56 + 42 1.50000000 5.50000000 4 46 47 58 57 + 43 2.50000000 5.50000000 4 47 48 59 58 + 44 3.50000000 5.50000000 4 48 49 60 59 + 45 4.50000000 5.50000000 4 49 50 61 60 + 46 5.50000000 5.50000000 4 50 51 62 61 + 47 6.50000000 5.50000000 4 51 52 63 62 + 48 7.50000000 5.50000000 4 52 53 64 63 + 49 8.50000000 5.50000000 4 53 54 65 64 + 50 9.50000000 5.50000000 4 54 55 66 65 + 51 0.50000000 4.50000000 4 56 57 68 67 + 52 1.50000000 4.50000000 4 57 58 69 68 + 53 2.50000000 4.50000000 4 58 59 70 69 + 54 3.50000000 4.50000000 4 59 60 71 70 + 55 4.50000000 4.50000000 4 60 61 72 71 + 56 5.50000000 4.50000000 4 61 62 73 72 + 57 6.50000000 4.50000000 4 62 63 74 73 + 58 7.50000000 4.50000000 4 63 64 75 74 + 59 8.50000000 4.50000000 4 64 65 76 75 + 60 9.50000000 4.50000000 4 65 66 77 76 + 61 0.50000000 3.50000000 4 67 68 79 78 + 62 1.50000000 3.50000000 4 68 69 80 79 + 63 2.50000000 3.50000000 4 69 70 81 80 + 64 3.50000000 3.50000000 4 70 71 82 81 + 65 4.50000000 3.50000000 4 71 72 83 82 + 66 5.50000000 3.50000000 4 72 73 84 83 + 67 6.50000000 3.50000000 4 73 74 85 84 + 68 7.50000000 3.50000000 4 74 75 86 85 + 69 8.50000000 3.50000000 4 75 76 87 86 + 70 9.50000000 3.50000000 4 76 77 88 87 + 71 0.50000000 2.50000000 4 78 79 90 89 + 72 1.50000000 2.50000000 4 79 80 91 90 + 73 2.50000000 2.50000000 4 80 81 92 91 + 74 3.50000000 2.50000000 4 81 82 93 92 + 75 4.50000000 2.50000000 4 82 83 94 93 + 76 5.50000000 2.50000000 4 83 84 95 94 + 77 6.50000000 2.50000000 4 84 85 96 95 + 78 7.50000000 2.50000000 4 85 86 97 96 + 79 8.50000000 2.50000000 4 86 87 98 97 + 80 9.50000000 2.50000000 4 87 88 99 98 + 81 0.50000000 1.50000000 4 89 90 101 100 + 82 1.50000000 1.50000000 4 90 91 102 101 + 83 2.50000000 1.50000000 4 91 92 103 102 + 84 3.50000000 1.50000000 4 92 93 104 103 + 85 4.50000000 1.50000000 4 93 94 105 104 + 86 5.50000000 1.50000000 4 94 95 106 105 + 87 6.50000000 1.50000000 4 95 96 107 106 + 88 7.50000000 1.50000000 4 96 97 108 107 + 89 8.50000000 1.50000000 4 97 98 109 108 + 90 9.50000000 1.50000000 4 98 99 110 109 + 91 0.50000000 0.50000000 4 100 101 112 111 + 92 1.50000000 0.50000000 4 101 102 113 112 + 93 2.50000000 0.50000000 4 102 103 114 113 + 94 3.50000000 0.50000000 4 103 104 115 114 + 95 4.50000000 0.50000000 4 104 105 116 115 + 96 5.50000000 0.50000000 4 105 106 117 116 + 97 6.50000000 0.50000000 4 106 107 118 117 + 98 7.50000000 0.50000000 4 107 108 119 118 + 99 8.50000000 0.50000000 4 108 109 120 119 + 100 9.50000000 0.50000000 4 109 110 121 120 +END cell2d + diff --git a/examples/data/mf6/netcdf/uzf02/uzf02.ghbg b/examples/data/mf6/netcdf/uzf02/uzf02.ghbg new file mode 100644 index 000000000..233f3de72 --- /dev/null +++ b/examples/data/mf6/netcdf/uzf02/uzf02.ghbg @@ -0,0 +1,71 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/14/2025 at 10:40:32. +BEGIN options + READARRAYGRID + PRINT_FLOWS +END options + +BEGIN period 1 + bhead LAYERED + INTERNAL FACTOR 1.0 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + INTERNAL FACTOR 1.0 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + INTERNAL FACTOR 1.0 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + INTERNAL FACTOR 1.0 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 14.00000000 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 14.00000000 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 14.00000000 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 14.00000000 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 14.00000000 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 14.00000000 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 14.00000000 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 14.00000000 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 14.00000000 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 14.00000000 + INTERNAL FACTOR 1.0 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 14.00000000 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 14.00000000 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 14.00000000 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 14.00000000 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 14.00000000 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 14.00000000 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 14.00000000 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 14.00000000 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 14.00000000 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 14.00000000 + cond LAYERED + INTERNAL FACTOR 1.0 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + INTERNAL FACTOR 1.0 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + INTERNAL FACTOR 1.0 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 + INTERNAL FACTOR 1.0 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 10000.00000000 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 10000.00000000 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 10000.00000000 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 10000.00000000 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 10000.00000000 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 10000.00000000 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 10000.00000000 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 10000.00000000 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 10000.00000000 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 10000.00000000 + INTERNAL FACTOR 1.0 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 10000.00000000 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 10000.00000000 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 10000.00000000 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 10000.00000000 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 10000.00000000 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 10000.00000000 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 10000.00000000 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 10000.00000000 + 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 10000.00000000 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 3.00000000E+30 10000.00000000 +END period 1 + diff --git a/examples/data/mf6/netcdf/uzf02/uzf02.ic b/examples/data/mf6/netcdf/uzf02/uzf02.ic new file mode 100644 index 000000000..c34acac29 --- /dev/null +++ b/examples/data/mf6/netcdf/uzf02/uzf02.ic @@ -0,0 +1,9 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/14/2025 at 10:40:32. +BEGIN options +END options + +BEGIN griddata + strt + CONSTANT 20.00000000 +END griddata + diff --git a/examples/data/mf6/netcdf/uzf02/uzf02.ims b/examples/data/mf6/netcdf/uzf02/uzf02.ims new file mode 100644 index 000000000..9c9d2c406 --- /dev/null +++ b/examples/data/mf6/netcdf/uzf02/uzf02.ims @@ -0,0 +1,22 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/14/2025 at 10:40:32. +BEGIN options + PRINT_OPTION summary + COMPLEXITY moderate +END options + +BEGIN nonlinear + OUTER_DVCLOSE 1.00000000E-09 + OUTER_MAXIMUM 100 + UNDER_RELAXATION dbd +END nonlinear + +BEGIN linear + INNER_MAXIMUM 300 + INNER_DVCLOSE 1.00000000E-09 + inner_rclose 0.00100000 + LINEAR_ACCELERATION bicgstab + RELAXATION_FACTOR 0.97000000 + SCALING_METHOD none + REORDERING_METHOD none +END linear + diff --git a/examples/data/mf6/netcdf/uzf02/uzf02.nam b/examples/data/mf6/netcdf/uzf02/uzf02.nam new file mode 100644 index 000000000..c527e1323 --- /dev/null +++ b/examples/data/mf6/netcdf/uzf02/uzf02.nam @@ -0,0 +1,17 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/14/2025 at 10:40:32. +BEGIN options + SAVE_FLOWS + NEWTON +END options + +BEGIN packages + DISV6 uzf02.disv disv + IC6 uzf02.ic ic + NPF6 uzf02.npf npf + STO6 uzf02.sto sto + GHB6 uzf02.ghbg ghbg_0 + UZF6 uzf02.uzf uzf_0 + OC6 uzf02.oc oc + OBS6 uzf02.obs head_obs +END packages + diff --git a/examples/data/mf6/netcdf/uzf02/uzf02.npf b/examples/data/mf6/netcdf/uzf02/uzf02.npf new file mode 100644 index 000000000..5e16be089 --- /dev/null +++ b/examples/data/mf6/netcdf/uzf02/uzf02.npf @@ -0,0 +1,14 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/14/2025 at 10:40:32. +BEGIN options + SAVE_FLOWS +END options + +BEGIN griddata + icelltype + CONSTANT 1 + k + CONSTANT 0.10000000 + k33 + CONSTANT 1.00000000 +END griddata + diff --git a/examples/data/mf6/netcdf/uzf02/uzf02.obs b/examples/data/mf6/netcdf/uzf02/uzf02.obs new file mode 100644 index 000000000..f5e794d7c --- /dev/null +++ b/examples/data/mf6/netcdf/uzf02/uzf02.obs @@ -0,0 +1,18 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/14/2025 at 10:40:32. +BEGIN options + DIGITS 20 +END options + +BEGIN continuous FILEOUT uzf02.obs.csv + obs_41 head 1 41 + obs_42 head 1 42 + obs_43 head 1 43 + obs_44 head 1 44 + obs_45 head 1 45 + obs_46 head 1 46 + obs_47 head 1 47 + obs_48 head 1 48 + obs_49 head 1 49 + obs_50 head 1 50 +END continuous FILEOUT uzf02.obs.csv + diff --git a/examples/data/mf6/netcdf/uzf02/uzf02.oc b/examples/data/mf6/netcdf/uzf02/uzf02.oc new file mode 100644 index 000000000..ccb4eec15 --- /dev/null +++ b/examples/data/mf6/netcdf/uzf02/uzf02.oc @@ -0,0 +1,14 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/14/2025 at 10:40:32. +BEGIN options + BUDGET FILEOUT uzf02.cbc + HEAD FILEOUT uzf02.hds + HEAD PRINT_FORMAT COLUMNS 10 WIDTH 15 DIGITS 6 GENERAL +END options + +BEGIN period 1 + SAVE HEAD ALL + SAVE BUDGET ALL + PRINT HEAD ALL + PRINT BUDGET ALL +END period 1 + diff --git a/examples/data/mf6/netcdf/uzf02/uzf02.sto b/examples/data/mf6/netcdf/uzf02/uzf02.sto new file mode 100644 index 000000000..b11bf5102 --- /dev/null +++ b/examples/data/mf6/netcdf/uzf02/uzf02.sto @@ -0,0 +1,17 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/14/2025 at 10:40:32. +BEGIN options +END options + +BEGIN griddata + iconvert + CONSTANT 1 + ss + CONSTANT 1.00000000E-05 + sy + CONSTANT 0.20000000 +END griddata + +BEGIN period 1 + TRANSIENT +END period 1 + diff --git a/examples/data/mf6/netcdf/uzf02/uzf02.tdis b/examples/data/mf6/netcdf/uzf02/uzf02.tdis new file mode 100644 index 000000000..5057360db --- /dev/null +++ b/examples/data/mf6/netcdf/uzf02/uzf02.tdis @@ -0,0 +1,17 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/14/2025 at 10:40:32. +BEGIN options + TIME_UNITS days +END options + +BEGIN dimensions + NPER 5 +END dimensions + +BEGIN perioddata + 10.00000000 5 1.00000000 + 10.00000000 5 1.00000000 + 10.00000000 5 1.00000000 + 10.00000000 5 1.00000000 + 10.00000000 5 1.00000000 +END perioddata + diff --git a/examples/data/mf6/netcdf/uzf02/uzf02.uzf b/examples/data/mf6/netcdf/uzf02/uzf02.uzf new file mode 100644 index 000000000..b954d9b54 --- /dev/null +++ b/examples/data/mf6/netcdf/uzf02/uzf02.uzf @@ -0,0 +1,3036 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/14/2025 at 10:40:32. +BEGIN options + BOUNDNAMES + PRINT_FLOWS + SAVE_FLOWS + BUDGET FILEOUT uzf02.uzf.bud + OBS6 FILEIN uzf02.uzf.obs + SIMULATE_ET + LINEAR_GWET + SIMULATE_GWSEEP +END options + +BEGIN dimensions + NUZFCELLS 500 + NTRAILWAVES 15 + NWAVESETS 40 +END dimensions + +BEGIN packagedata + 1 1 1 1 101 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf001 + 2 1 2 1 102 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf002 + 3 1 3 1 103 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf003 + 4 1 4 1 104 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf004 + 5 1 5 1 105 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf005 + 6 1 6 1 106 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf006 + 7 1 7 1 107 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf007 + 8 1 8 1 108 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf008 + 9 1 9 1 109 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf009 + 10 1 10 1 110 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf010 + 11 1 11 1 111 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf011 + 12 1 12 1 112 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf012 + 13 1 13 1 113 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf013 + 14 1 14 1 114 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf014 + 15 1 15 1 115 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf015 + 16 1 16 1 116 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf016 + 17 1 17 1 117 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf017 + 18 1 18 1 118 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf018 + 19 1 19 1 119 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf019 + 20 1 20 1 120 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf020 + 21 1 21 1 121 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf021 + 22 1 22 1 122 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf022 + 23 1 23 1 123 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf023 + 24 1 24 1 124 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf024 + 25 1 25 1 125 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf025 + 26 1 26 1 126 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf026 + 27 1 27 1 127 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf027 + 28 1 28 1 128 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf028 + 29 1 29 1 129 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf029 + 30 1 30 1 130 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf030 + 31 1 31 1 131 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf031 + 32 1 32 1 132 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf032 + 33 1 33 1 133 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf033 + 34 1 34 1 134 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf034 + 35 1 35 1 135 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf035 + 36 1 36 1 136 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf036 + 37 1 37 1 137 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf037 + 38 1 38 1 138 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf038 + 39 1 39 1 139 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf039 + 40 1 40 1 140 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf040 + 41 1 41 1 141 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf041 + 42 1 42 1 142 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf042 + 43 1 43 1 143 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf043 + 44 1 44 1 144 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf044 + 45 1 45 1 145 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf045 + 46 1 46 1 146 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf046 + 47 1 47 1 147 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf047 + 48 1 48 1 148 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf048 + 49 1 49 1 149 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf049 + 50 1 50 1 150 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf050 + 51 1 51 1 151 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf051 + 52 1 52 1 152 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf052 + 53 1 53 1 153 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf053 + 54 1 54 1 154 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf054 + 55 1 55 1 155 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf055 + 56 1 56 1 156 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf056 + 57 1 57 1 157 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf057 + 58 1 58 1 158 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf058 + 59 1 59 1 159 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf059 + 60 1 60 1 160 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf060 + 61 1 61 1 161 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf061 + 62 1 62 1 162 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf062 + 63 1 63 1 163 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf063 + 64 1 64 1 164 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf064 + 65 1 65 1 165 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf065 + 66 1 66 1 166 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf066 + 67 1 67 1 167 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf067 + 68 1 68 1 168 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf068 + 69 1 69 1 169 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf069 + 70 1 70 1 170 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf070 + 71 1 71 1 171 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf071 + 72 1 72 1 172 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf072 + 73 1 73 1 173 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf073 + 74 1 74 1 174 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf074 + 75 1 75 1 175 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf075 + 76 1 76 1 176 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf076 + 77 1 77 1 177 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf077 + 78 1 78 1 178 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf078 + 79 1 79 1 179 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf079 + 80 1 80 1 180 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf080 + 81 1 81 1 181 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf081 + 82 1 82 1 182 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf082 + 83 1 83 1 183 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf083 + 84 1 84 1 184 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf084 + 85 1 85 1 185 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf085 + 86 1 86 1 186 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf086 + 87 1 87 1 187 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf087 + 88 1 88 1 188 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf088 + 89 1 89 1 189 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf089 + 90 1 90 1 190 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf090 + 91 1 91 1 191 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf091 + 92 1 92 1 192 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf092 + 93 1 93 1 193 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf093 + 94 1 94 1 194 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf094 + 95 1 95 1 195 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf095 + 96 1 96 1 196 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf096 + 97 1 97 1 197 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf097 + 98 1 98 1 198 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf098 + 99 1 99 1 199 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf099 + 100 1 100 1 200 0.25000000 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf100 + 101 2 1 0 201 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf001 + 102 2 2 0 202 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf002 + 103 2 3 0 203 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf003 + 104 2 4 0 204 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf004 + 105 2 5 0 205 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf005 + 106 2 6 0 206 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf006 + 107 2 7 0 207 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf007 + 108 2 8 0 208 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf008 + 109 2 9 0 209 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf009 + 110 2 10 0 210 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf010 + 111 2 11 0 211 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf011 + 112 2 12 0 212 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf012 + 113 2 13 0 213 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf013 + 114 2 14 0 214 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf014 + 115 2 15 0 215 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf015 + 116 2 16 0 216 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf016 + 117 2 17 0 217 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf017 + 118 2 18 0 218 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf018 + 119 2 19 0 219 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf019 + 120 2 20 0 220 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf020 + 121 2 21 0 221 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf021 + 122 2 22 0 222 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf022 + 123 2 23 0 223 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf023 + 124 2 24 0 224 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf024 + 125 2 25 0 225 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf025 + 126 2 26 0 226 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf026 + 127 2 27 0 227 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf027 + 128 2 28 0 228 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf028 + 129 2 29 0 229 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf029 + 130 2 30 0 230 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf030 + 131 2 31 0 231 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf031 + 132 2 32 0 232 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf032 + 133 2 33 0 233 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf033 + 134 2 34 0 234 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf034 + 135 2 35 0 235 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf035 + 136 2 36 0 236 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf036 + 137 2 37 0 237 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf037 + 138 2 38 0 238 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf038 + 139 2 39 0 239 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf039 + 140 2 40 0 240 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf040 + 141 2 41 0 241 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf041 + 142 2 42 0 242 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf042 + 143 2 43 0 243 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf043 + 144 2 44 0 244 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf044 + 145 2 45 0 245 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf045 + 146 2 46 0 246 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf046 + 147 2 47 0 247 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf047 + 148 2 48 0 248 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf048 + 149 2 49 0 249 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf049 + 150 2 50 0 250 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf050 + 151 2 51 0 251 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf051 + 152 2 52 0 252 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf052 + 153 2 53 0 253 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf053 + 154 2 54 0 254 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf054 + 155 2 55 0 255 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf055 + 156 2 56 0 256 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf056 + 157 2 57 0 257 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf057 + 158 2 58 0 258 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf058 + 159 2 59 0 259 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf059 + 160 2 60 0 260 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf060 + 161 2 61 0 261 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf061 + 162 2 62 0 262 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf062 + 163 2 63 0 263 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf063 + 164 2 64 0 264 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf064 + 165 2 65 0 265 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf065 + 166 2 66 0 266 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf066 + 167 2 67 0 267 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf067 + 168 2 68 0 268 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf068 + 169 2 69 0 269 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf069 + 170 2 70 0 270 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf070 + 171 2 71 0 271 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf071 + 172 2 72 0 272 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf072 + 173 2 73 0 273 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf073 + 174 2 74 0 274 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf074 + 175 2 75 0 275 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf075 + 176 2 76 0 276 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf076 + 177 2 77 0 277 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf077 + 178 2 78 0 278 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf078 + 179 2 79 0 279 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf079 + 180 2 80 0 280 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf080 + 181 2 81 0 281 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf081 + 182 2 82 0 282 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf082 + 183 2 83 0 283 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf083 + 184 2 84 0 284 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf084 + 185 2 85 0 285 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf085 + 186 2 86 0 286 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf086 + 187 2 87 0 287 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf087 + 188 2 88 0 288 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf088 + 189 2 89 0 289 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf089 + 190 2 90 0 290 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf090 + 191 2 91 0 291 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf091 + 192 2 92 0 292 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf092 + 193 2 93 0 293 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf093 + 194 2 94 0 294 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf094 + 195 2 95 0 295 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf095 + 196 2 96 0 296 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf096 + 197 2 97 0 297 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf097 + 198 2 98 0 298 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf098 + 199 2 99 0 299 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf099 + 200 2 100 0 300 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf100 + 201 3 1 0 301 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf001 + 202 3 2 0 302 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf002 + 203 3 3 0 303 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf003 + 204 3 4 0 304 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf004 + 205 3 5 0 305 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf005 + 206 3 6 0 306 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf006 + 207 3 7 0 307 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf007 + 208 3 8 0 308 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf008 + 209 3 9 0 309 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf009 + 210 3 10 0 310 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf010 + 211 3 11 0 311 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf011 + 212 3 12 0 312 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf012 + 213 3 13 0 313 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf013 + 214 3 14 0 314 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf014 + 215 3 15 0 315 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf015 + 216 3 16 0 316 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf016 + 217 3 17 0 317 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf017 + 218 3 18 0 318 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf018 + 219 3 19 0 319 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf019 + 220 3 20 0 320 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf020 + 221 3 21 0 321 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf021 + 222 3 22 0 322 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf022 + 223 3 23 0 323 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf023 + 224 3 24 0 324 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf024 + 225 3 25 0 325 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf025 + 226 3 26 0 326 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf026 + 227 3 27 0 327 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf027 + 228 3 28 0 328 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf028 + 229 3 29 0 329 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf029 + 230 3 30 0 330 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf030 + 231 3 31 0 331 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf031 + 232 3 32 0 332 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf032 + 233 3 33 0 333 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf033 + 234 3 34 0 334 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf034 + 235 3 35 0 335 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf035 + 236 3 36 0 336 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf036 + 237 3 37 0 337 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf037 + 238 3 38 0 338 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf038 + 239 3 39 0 339 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf039 + 240 3 40 0 340 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf040 + 241 3 41 0 341 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf041 + 242 3 42 0 342 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf042 + 243 3 43 0 343 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf043 + 244 3 44 0 344 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf044 + 245 3 45 0 345 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf045 + 246 3 46 0 346 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf046 + 247 3 47 0 347 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf047 + 248 3 48 0 348 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf048 + 249 3 49 0 349 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf049 + 250 3 50 0 350 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf050 + 251 3 51 0 351 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf051 + 252 3 52 0 352 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf052 + 253 3 53 0 353 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf053 + 254 3 54 0 354 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf054 + 255 3 55 0 355 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf055 + 256 3 56 0 356 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf056 + 257 3 57 0 357 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf057 + 258 3 58 0 358 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf058 + 259 3 59 0 359 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf059 + 260 3 60 0 360 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf060 + 261 3 61 0 361 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf061 + 262 3 62 0 362 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf062 + 263 3 63 0 363 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf063 + 264 3 64 0 364 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf064 + 265 3 65 0 365 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf065 + 266 3 66 0 366 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf066 + 267 3 67 0 367 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf067 + 268 3 68 0 368 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf068 + 269 3 69 0 369 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf069 + 270 3 70 0 370 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf070 + 271 3 71 0 371 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf071 + 272 3 72 0 372 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf072 + 273 3 73 0 373 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf073 + 274 3 74 0 374 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf074 + 275 3 75 0 375 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf075 + 276 3 76 0 376 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf076 + 277 3 77 0 377 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf077 + 278 3 78 0 378 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf078 + 279 3 79 0 379 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf079 + 280 3 80 0 380 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf080 + 281 3 81 0 381 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf081 + 282 3 82 0 382 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf082 + 283 3 83 0 383 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf083 + 284 3 84 0 384 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf084 + 285 3 85 0 385 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf085 + 286 3 86 0 386 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf086 + 287 3 87 0 387 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf087 + 288 3 88 0 388 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf088 + 289 3 89 0 389 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf089 + 290 3 90 0 390 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf090 + 291 3 91 0 391 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf091 + 292 3 92 0 392 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf092 + 293 3 93 0 393 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf093 + 294 3 94 0 394 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf094 + 295 3 95 0 395 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf095 + 296 3 96 0 396 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf096 + 297 3 97 0 397 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf097 + 298 3 98 0 398 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf098 + 299 3 99 0 399 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf099 + 300 3 100 0 400 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf100 + 301 4 1 0 401 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf001 + 302 4 2 0 402 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf002 + 303 4 3 0 403 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf003 + 304 4 4 0 404 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf004 + 305 4 5 0 405 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf005 + 306 4 6 0 406 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf006 + 307 4 7 0 407 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf007 + 308 4 8 0 408 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf008 + 309 4 9 0 409 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf009 + 310 4 10 0 410 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf010 + 311 4 11 0 411 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf011 + 312 4 12 0 412 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf012 + 313 4 13 0 413 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf013 + 314 4 14 0 414 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf014 + 315 4 15 0 415 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf015 + 316 4 16 0 416 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf016 + 317 4 17 0 417 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf017 + 318 4 18 0 418 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf018 + 319 4 19 0 419 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf019 + 320 4 20 0 420 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf020 + 321 4 21 0 421 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf021 + 322 4 22 0 422 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf022 + 323 4 23 0 423 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf023 + 324 4 24 0 424 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf024 + 325 4 25 0 425 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf025 + 326 4 26 0 426 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf026 + 327 4 27 0 427 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf027 + 328 4 28 0 428 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf028 + 329 4 29 0 429 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf029 + 330 4 30 0 430 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf030 + 331 4 31 0 431 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf031 + 332 4 32 0 432 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf032 + 333 4 33 0 433 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf033 + 334 4 34 0 434 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf034 + 335 4 35 0 435 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf035 + 336 4 36 0 436 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf036 + 337 4 37 0 437 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf037 + 338 4 38 0 438 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf038 + 339 4 39 0 439 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf039 + 340 4 40 0 440 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf040 + 341 4 41 0 441 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf041 + 342 4 42 0 442 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf042 + 343 4 43 0 443 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf043 + 344 4 44 0 444 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf044 + 345 4 45 0 445 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf045 + 346 4 46 0 446 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf046 + 347 4 47 0 447 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf047 + 348 4 48 0 448 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf048 + 349 4 49 0 449 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf049 + 350 4 50 0 450 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf050 + 351 4 51 0 451 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf051 + 352 4 52 0 452 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf052 + 353 4 53 0 453 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf053 + 354 4 54 0 454 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf054 + 355 4 55 0 455 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf055 + 356 4 56 0 456 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf056 + 357 4 57 0 457 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf057 + 358 4 58 0 458 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf058 + 359 4 59 0 459 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf059 + 360 4 60 0 460 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf060 + 361 4 61 0 461 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf061 + 362 4 62 0 462 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf062 + 363 4 63 0 463 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf063 + 364 4 64 0 464 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf064 + 365 4 65 0 465 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf065 + 366 4 66 0 466 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf066 + 367 4 67 0 467 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf067 + 368 4 68 0 468 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf068 + 369 4 69 0 469 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf069 + 370 4 70 0 470 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf070 + 371 4 71 0 471 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf071 + 372 4 72 0 472 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf072 + 373 4 73 0 473 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf073 + 374 4 74 0 474 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf074 + 375 4 75 0 475 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf075 + 376 4 76 0 476 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf076 + 377 4 77 0 477 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf077 + 378 4 78 0 478 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf078 + 379 4 79 0 479 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf079 + 380 4 80 0 480 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf080 + 381 4 81 0 481 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf081 + 382 4 82 0 482 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf082 + 383 4 83 0 483 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf083 + 384 4 84 0 484 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf084 + 385 4 85 0 485 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf085 + 386 4 86 0 486 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf086 + 387 4 87 0 487 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf087 + 388 4 88 0 488 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf088 + 389 4 89 0 489 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf089 + 390 4 90 0 490 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf090 + 391 4 91 0 491 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf091 + 392 4 92 0 492 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf092 + 393 4 93 0 493 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf093 + 394 4 94 0 494 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf094 + 395 4 95 0 495 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf095 + 396 4 96 0 496 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf096 + 397 4 97 0 497 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf097 + 398 4 98 0 498 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf098 + 399 4 99 0 499 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf099 + 400 4 100 0 500 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf100 + 401 5 1 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf001 + 402 5 2 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf002 + 403 5 3 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf003 + 404 5 4 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf004 + 405 5 5 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf005 + 406 5 6 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf006 + 407 5 7 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf007 + 408 5 8 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf008 + 409 5 9 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf009 + 410 5 10 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf010 + 411 5 11 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf011 + 412 5 12 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf012 + 413 5 13 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf013 + 414 5 14 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf014 + 415 5 15 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf015 + 416 5 16 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf016 + 417 5 17 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf017 + 418 5 18 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf018 + 419 5 19 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf019 + 420 5 20 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf020 + 421 5 21 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf021 + 422 5 22 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf022 + 423 5 23 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf023 + 424 5 24 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf024 + 425 5 25 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf025 + 426 5 26 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf026 + 427 5 27 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf027 + 428 5 28 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf028 + 429 5 29 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf029 + 430 5 30 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf030 + 431 5 31 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf031 + 432 5 32 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf032 + 433 5 33 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf033 + 434 5 34 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf034 + 435 5 35 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf035 + 436 5 36 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf036 + 437 5 37 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf037 + 438 5 38 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf038 + 439 5 39 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf039 + 440 5 40 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf040 + 441 5 41 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf041 + 442 5 42 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf042 + 443 5 43 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf043 + 444 5 44 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf044 + 445 5 45 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf045 + 446 5 46 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf046 + 447 5 47 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf047 + 448 5 48 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf048 + 449 5 49 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf049 + 450 5 50 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf050 + 451 5 51 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf051 + 452 5 52 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf052 + 453 5 53 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf053 + 454 5 54 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf054 + 455 5 55 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf055 + 456 5 56 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf056 + 457 5 57 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf057 + 458 5 58 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf058 + 459 5 59 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf059 + 460 5 60 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf060 + 461 5 61 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf061 + 462 5 62 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf062 + 463 5 63 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf063 + 464 5 64 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf064 + 465 5 65 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf065 + 466 5 66 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf066 + 467 5 67 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf067 + 468 5 68 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf068 + 469 5 69 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf069 + 470 5 70 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf070 + 471 5 71 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf071 + 472 5 72 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf072 + 473 5 73 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf073 + 474 5 74 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf074 + 475 5 75 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf075 + 476 5 76 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf076 + 477 5 77 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf077 + 478 5 78 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf078 + 479 5 79 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf079 + 480 5 80 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf080 + 481 5 81 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf081 + 482 5 82 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf082 + 483 5 83 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf083 + 484 5 84 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf084 + 485 5 85 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf085 + 486 5 86 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf086 + 487 5 87 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf087 + 488 5 88 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf088 + 489 5 89 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf089 + 490 5 90 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf090 + 491 5 91 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf091 + 492 5 92 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf092 + 493 5 93 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf093 + 494 5 94 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf094 + 495 5 95 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf095 + 496 5 96 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf096 + 497 5 97 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf097 + 498 5 98 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf098 + 499 5 99 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf099 + 500 5 100 0 0 1.00000000E-06 10.00000000 0.05000000 0.30000000 0.15000000 3.50000000 uzf100 +END packagedata + +BEGIN period 1 + 1 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 2 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 3 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 4 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 5 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 6 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 7 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 8 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 9 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 10 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 11 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 12 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 13 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 14 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 15 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 16 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 17 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 18 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 19 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 20 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 21 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 22 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 23 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 24 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 25 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 26 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 27 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 28 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 29 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 30 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 31 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 32 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 33 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 34 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 35 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 36 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 37 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 38 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 39 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 40 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 41 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 42 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 43 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 44 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 45 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 46 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 47 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 48 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 49 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 50 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 51 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 52 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 53 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 54 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 55 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 56 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 57 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 58 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 59 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 60 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 61 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 62 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 63 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 64 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 65 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 66 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 67 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 68 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 69 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 70 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 71 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 72 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 73 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 74 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 75 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 76 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 77 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 78 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 79 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 80 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 81 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 82 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 83 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 84 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 85 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 86 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 87 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 88 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 89 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 90 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 91 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 92 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 93 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 94 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 95 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 96 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 97 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 98 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 99 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 100 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 101 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 102 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 103 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 104 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 105 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 106 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 107 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 108 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 109 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 110 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 111 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 112 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 113 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 114 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 115 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 116 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 117 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 118 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 119 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 120 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 121 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 122 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 123 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 124 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 125 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 126 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 127 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 128 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 129 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 130 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 131 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 132 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 133 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 134 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 135 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 136 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 137 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 138 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 139 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 140 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 141 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 142 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 143 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 144 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 145 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 146 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 147 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 148 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 149 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 150 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 151 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 152 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 153 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 154 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 155 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 156 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 157 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 158 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 159 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 160 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 161 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 162 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 163 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 164 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 165 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 166 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 167 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 168 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 169 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 170 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 171 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 172 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 173 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 174 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 175 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 176 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 177 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 178 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 179 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 180 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 181 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 182 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 183 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 184 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 185 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 186 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 187 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 188 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 189 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 190 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 191 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 192 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 193 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 194 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 195 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 196 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 197 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 198 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 199 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 200 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 201 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 202 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 203 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 204 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 205 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 206 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 207 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 208 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 209 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 210 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 211 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 212 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 213 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 214 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 215 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 216 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 217 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 218 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 219 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 220 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 221 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 222 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 223 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 224 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 225 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 226 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 227 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 228 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 229 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 230 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 231 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 232 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 233 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 234 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 235 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 236 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 237 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 238 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 239 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 240 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 241 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 242 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 243 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 244 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 245 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 246 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 247 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 248 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 249 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 250 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 251 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 252 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 253 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 254 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 255 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 256 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 257 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 258 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 259 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 260 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 261 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 262 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 263 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 264 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 265 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 266 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 267 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 268 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 269 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 270 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 271 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 272 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 273 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 274 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 275 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 276 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 277 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 278 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 279 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 280 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 281 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 282 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 283 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 284 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 285 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 286 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 287 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 288 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 289 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 290 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 291 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 292 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 293 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 294 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 295 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 296 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 297 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 298 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 299 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 300 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 301 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 302 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 303 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 304 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 305 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 306 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 307 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 308 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 309 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 310 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 311 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 312 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 313 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 314 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 315 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 316 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 317 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 318 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 319 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 320 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 321 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 322 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 323 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 324 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 325 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 326 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 327 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 328 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 329 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 330 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 331 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 332 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 333 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 334 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 335 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 336 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 337 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 338 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 339 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 340 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 341 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 342 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 343 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 344 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 345 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 346 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 347 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 348 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 349 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 350 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 351 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 352 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 353 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 354 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 355 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 356 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 357 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 358 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 359 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 360 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 361 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 362 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 363 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 364 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 365 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 366 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 367 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 368 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 369 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 370 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 371 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 372 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 373 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 374 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 375 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 376 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 377 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 378 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 379 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 380 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 381 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 382 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 383 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 384 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 385 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 386 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 387 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 388 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 389 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 390 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 391 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 392 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 393 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 394 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 395 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 396 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 397 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 398 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 399 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 400 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 401 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 402 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 403 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 404 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 405 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 406 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 407 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 408 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 409 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 410 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 411 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 412 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 413 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 414 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 415 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 416 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 417 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 418 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 419 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 420 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 421 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 422 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 423 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 424 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 425 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 426 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 427 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 428 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 429 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 430 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 431 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 432 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 433 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 434 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 435 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 436 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 437 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 438 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 439 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 440 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 441 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 442 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 443 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 444 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 445 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 446 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 447 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 448 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 449 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 450 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 451 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 452 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 453 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 454 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 455 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 456 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 457 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 458 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 459 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 460 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 461 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 462 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 463 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 464 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 465 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 466 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 467 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 468 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 469 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 470 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 471 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 472 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 473 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 474 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 475 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 476 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 477 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 478 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 479 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 480 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 481 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 482 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 483 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 484 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 485 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 486 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 487 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 488 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 489 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 490 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 491 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 492 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 493 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 494 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 495 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 496 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 497 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 498 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 499 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 500 0.15 0.001 14.0 0.055 0.0 0.0 0.0 +END period 1 + +BEGIN period 2 + 1 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 2 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 3 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 4 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 5 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 6 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 7 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 8 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 9 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 10 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 11 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 12 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 13 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 14 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 15 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 16 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 17 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 18 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 19 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 20 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 21 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 22 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 23 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 24 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 25 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 26 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 27 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 28 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 29 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 30 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 31 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 32 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 33 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 34 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 35 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 36 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 37 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 38 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 39 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 40 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 41 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 42 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 43 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 44 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 45 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 46 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 47 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 48 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 49 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 50 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 51 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 52 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 53 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 54 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 55 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 56 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 57 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 58 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 59 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 60 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 61 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 62 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 63 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 64 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 65 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 66 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 67 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 68 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 69 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 70 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 71 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 72 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 73 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 74 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 75 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 76 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 77 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 78 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 79 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 80 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 81 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 82 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 83 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 84 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 85 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 86 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 87 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 88 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 89 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 90 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 91 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 92 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 93 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 94 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 95 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 96 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 97 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 98 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 99 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 100 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 101 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 102 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 103 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 104 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 105 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 106 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 107 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 108 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 109 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 110 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 111 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 112 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 113 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 114 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 115 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 116 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 117 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 118 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 119 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 120 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 121 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 122 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 123 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 124 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 125 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 126 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 127 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 128 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 129 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 130 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 131 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 132 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 133 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 134 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 135 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 136 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 137 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 138 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 139 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 140 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 141 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 142 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 143 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 144 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 145 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 146 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 147 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 148 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 149 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 150 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 151 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 152 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 153 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 154 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 155 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 156 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 157 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 158 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 159 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 160 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 161 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 162 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 163 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 164 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 165 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 166 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 167 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 168 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 169 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 170 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 171 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 172 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 173 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 174 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 175 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 176 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 177 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 178 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 179 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 180 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 181 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 182 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 183 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 184 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 185 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 186 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 187 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 188 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 189 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 190 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 191 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 192 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 193 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 194 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 195 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 196 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 197 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 198 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 199 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 200 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 201 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 202 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 203 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 204 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 205 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 206 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 207 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 208 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 209 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 210 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 211 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 212 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 213 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 214 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 215 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 216 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 217 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 218 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 219 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 220 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 221 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 222 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 223 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 224 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 225 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 226 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 227 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 228 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 229 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 230 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 231 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 232 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 233 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 234 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 235 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 236 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 237 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 238 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 239 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 240 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 241 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 242 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 243 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 244 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 245 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 246 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 247 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 248 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 249 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 250 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 251 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 252 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 253 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 254 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 255 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 256 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 257 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 258 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 259 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 260 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 261 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 262 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 263 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 264 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 265 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 266 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 267 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 268 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 269 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 270 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 271 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 272 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 273 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 274 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 275 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 276 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 277 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 278 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 279 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 280 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 281 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 282 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 283 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 284 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 285 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 286 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 287 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 288 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 289 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 290 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 291 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 292 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 293 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 294 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 295 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 296 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 297 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 298 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 299 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 300 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 301 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 302 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 303 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 304 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 305 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 306 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 307 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 308 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 309 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 310 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 311 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 312 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 313 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 314 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 315 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 316 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 317 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 318 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 319 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 320 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 321 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 322 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 323 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 324 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 325 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 326 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 327 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 328 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 329 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 330 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 331 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 332 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 333 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 334 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 335 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 336 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 337 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 338 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 339 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 340 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 341 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 342 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 343 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 344 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 345 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 346 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 347 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 348 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 349 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 350 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 351 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 352 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 353 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 354 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 355 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 356 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 357 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 358 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 359 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 360 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 361 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 362 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 363 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 364 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 365 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 366 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 367 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 368 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 369 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 370 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 371 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 372 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 373 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 374 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 375 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 376 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 377 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 378 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 379 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 380 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 381 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 382 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 383 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 384 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 385 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 386 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 387 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 388 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 389 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 390 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 391 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 392 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 393 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 394 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 395 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 396 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 397 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 398 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 399 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 400 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 401 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 402 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 403 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 404 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 405 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 406 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 407 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 408 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 409 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 410 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 411 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 412 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 413 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 414 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 415 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 416 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 417 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 418 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 419 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 420 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 421 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 422 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 423 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 424 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 425 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 426 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 427 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 428 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 429 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 430 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 431 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 432 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 433 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 434 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 435 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 436 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 437 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 438 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 439 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 440 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 441 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 442 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 443 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 444 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 445 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 446 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 447 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 448 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 449 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 450 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 451 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 452 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 453 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 454 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 455 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 456 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 457 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 458 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 459 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 460 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 461 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 462 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 463 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 464 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 465 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 466 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 467 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 468 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 469 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 470 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 471 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 472 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 473 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 474 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 475 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 476 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 477 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 478 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 479 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 480 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 481 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 482 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 483 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 484 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 485 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 486 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 487 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 488 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 489 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 490 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 491 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 492 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 493 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 494 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 495 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 496 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 497 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 498 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 499 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 500 0.15 0.001 14.0 0.055 0.0 0.0 0.0 +END period 2 + +BEGIN period 3 + 1 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 2 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 3 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 4 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 5 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 6 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 7 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 8 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 9 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 10 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 11 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 12 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 13 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 14 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 15 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 16 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 17 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 18 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 19 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 20 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 21 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 22 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 23 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 24 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 25 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 26 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 27 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 28 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 29 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 30 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 31 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 32 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 33 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 34 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 35 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 36 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 37 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 38 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 39 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 40 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 41 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 42 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 43 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 44 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 45 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 46 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 47 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 48 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 49 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 50 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 51 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 52 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 53 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 54 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 55 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 56 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 57 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 58 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 59 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 60 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 61 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 62 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 63 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 64 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 65 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 66 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 67 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 68 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 69 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 70 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 71 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 72 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 73 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 74 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 75 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 76 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 77 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 78 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 79 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 80 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 81 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 82 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 83 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 84 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 85 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 86 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 87 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 88 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 89 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 90 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 91 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 92 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 93 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 94 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 95 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 96 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 97 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 98 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 99 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 100 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 101 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 102 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 103 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 104 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 105 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 106 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 107 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 108 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 109 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 110 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 111 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 112 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 113 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 114 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 115 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 116 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 117 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 118 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 119 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 120 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 121 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 122 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 123 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 124 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 125 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 126 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 127 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 128 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 129 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 130 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 131 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 132 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 133 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 134 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 135 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 136 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 137 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 138 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 139 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 140 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 141 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 142 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 143 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 144 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 145 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 146 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 147 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 148 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 149 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 150 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 151 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 152 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 153 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 154 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 155 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 156 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 157 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 158 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 159 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 160 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 161 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 162 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 163 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 164 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 165 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 166 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 167 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 168 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 169 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 170 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 171 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 172 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 173 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 174 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 175 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 176 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 177 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 178 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 179 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 180 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 181 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 182 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 183 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 184 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 185 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 186 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 187 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 188 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 189 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 190 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 191 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 192 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 193 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 194 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 195 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 196 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 197 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 198 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 199 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 200 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 201 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 202 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 203 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 204 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 205 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 206 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 207 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 208 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 209 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 210 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 211 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 212 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 213 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 214 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 215 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 216 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 217 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 218 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 219 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 220 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 221 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 222 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 223 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 224 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 225 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 226 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 227 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 228 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 229 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 230 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 231 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 232 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 233 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 234 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 235 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 236 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 237 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 238 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 239 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 240 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 241 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 242 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 243 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 244 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 245 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 246 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 247 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 248 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 249 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 250 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 251 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 252 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 253 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 254 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 255 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 256 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 257 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 258 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 259 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 260 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 261 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 262 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 263 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 264 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 265 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 266 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 267 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 268 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 269 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 270 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 271 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 272 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 273 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 274 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 275 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 276 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 277 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 278 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 279 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 280 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 281 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 282 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 283 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 284 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 285 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 286 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 287 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 288 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 289 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 290 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 291 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 292 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 293 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 294 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 295 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 296 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 297 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 298 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 299 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 300 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 301 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 302 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 303 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 304 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 305 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 306 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 307 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 308 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 309 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 310 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 311 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 312 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 313 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 314 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 315 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 316 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 317 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 318 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 319 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 320 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 321 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 322 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 323 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 324 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 325 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 326 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 327 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 328 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 329 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 330 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 331 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 332 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 333 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 334 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 335 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 336 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 337 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 338 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 339 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 340 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 341 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 342 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 343 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 344 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 345 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 346 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 347 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 348 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 349 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 350 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 351 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 352 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 353 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 354 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 355 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 356 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 357 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 358 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 359 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 360 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 361 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 362 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 363 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 364 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 365 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 366 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 367 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 368 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 369 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 370 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 371 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 372 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 373 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 374 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 375 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 376 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 377 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 378 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 379 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 380 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 381 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 382 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 383 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 384 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 385 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 386 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 387 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 388 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 389 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 390 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 391 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 392 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 393 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 394 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 395 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 396 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 397 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 398 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 399 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 400 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 401 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 402 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 403 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 404 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 405 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 406 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 407 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 408 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 409 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 410 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 411 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 412 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 413 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 414 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 415 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 416 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 417 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 418 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 419 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 420 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 421 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 422 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 423 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 424 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 425 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 426 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 427 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 428 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 429 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 430 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 431 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 432 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 433 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 434 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 435 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 436 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 437 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 438 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 439 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 440 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 441 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 442 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 443 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 444 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 445 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 446 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 447 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 448 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 449 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 450 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 451 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 452 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 453 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 454 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 455 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 456 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 457 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 458 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 459 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 460 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 461 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 462 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 463 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 464 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 465 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 466 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 467 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 468 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 469 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 470 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 471 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 472 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 473 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 474 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 475 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 476 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 477 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 478 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 479 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 480 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 481 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 482 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 483 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 484 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 485 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 486 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 487 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 488 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 489 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 490 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 491 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 492 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 493 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 494 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 495 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 496 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 497 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 498 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 499 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 500 0.15 0.001 14.0 0.055 0.0 0.0 0.0 +END period 3 + +BEGIN period 4 + 1 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 2 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 3 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 4 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 5 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 6 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 7 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 8 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 9 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 10 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 11 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 12 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 13 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 14 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 15 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 16 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 17 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 18 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 19 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 20 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 21 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 22 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 23 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 24 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 25 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 26 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 27 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 28 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 29 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 30 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 31 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 32 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 33 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 34 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 35 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 36 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 37 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 38 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 39 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 40 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 41 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 42 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 43 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 44 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 45 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 46 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 47 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 48 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 49 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 50 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 51 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 52 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 53 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 54 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 55 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 56 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 57 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 58 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 59 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 60 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 61 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 62 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 63 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 64 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 65 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 66 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 67 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 68 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 69 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 70 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 71 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 72 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 73 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 74 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 75 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 76 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 77 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 78 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 79 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 80 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 81 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 82 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 83 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 84 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 85 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 86 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 87 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 88 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 89 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 90 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 91 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 92 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 93 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 94 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 95 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 96 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 97 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 98 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 99 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 100 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 101 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 102 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 103 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 104 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 105 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 106 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 107 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 108 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 109 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 110 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 111 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 112 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 113 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 114 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 115 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 116 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 117 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 118 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 119 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 120 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 121 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 122 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 123 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 124 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 125 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 126 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 127 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 128 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 129 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 130 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 131 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 132 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 133 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 134 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 135 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 136 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 137 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 138 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 139 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 140 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 141 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 142 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 143 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 144 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 145 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 146 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 147 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 148 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 149 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 150 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 151 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 152 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 153 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 154 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 155 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 156 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 157 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 158 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 159 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 160 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 161 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 162 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 163 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 164 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 165 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 166 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 167 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 168 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 169 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 170 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 171 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 172 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 173 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 174 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 175 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 176 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 177 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 178 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 179 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 180 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 181 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 182 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 183 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 184 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 185 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 186 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 187 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 188 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 189 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 190 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 191 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 192 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 193 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 194 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 195 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 196 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 197 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 198 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 199 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 200 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 201 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 202 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 203 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 204 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 205 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 206 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 207 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 208 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 209 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 210 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 211 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 212 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 213 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 214 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 215 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 216 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 217 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 218 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 219 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 220 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 221 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 222 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 223 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 224 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 225 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 226 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 227 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 228 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 229 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 230 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 231 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 232 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 233 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 234 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 235 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 236 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 237 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 238 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 239 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 240 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 241 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 242 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 243 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 244 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 245 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 246 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 247 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 248 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 249 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 250 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 251 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 252 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 253 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 254 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 255 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 256 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 257 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 258 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 259 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 260 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 261 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 262 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 263 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 264 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 265 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 266 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 267 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 268 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 269 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 270 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 271 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 272 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 273 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 274 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 275 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 276 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 277 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 278 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 279 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 280 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 281 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 282 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 283 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 284 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 285 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 286 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 287 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 288 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 289 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 290 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 291 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 292 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 293 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 294 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 295 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 296 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 297 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 298 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 299 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 300 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 301 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 302 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 303 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 304 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 305 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 306 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 307 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 308 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 309 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 310 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 311 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 312 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 313 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 314 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 315 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 316 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 317 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 318 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 319 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 320 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 321 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 322 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 323 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 324 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 325 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 326 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 327 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 328 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 329 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 330 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 331 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 332 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 333 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 334 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 335 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 336 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 337 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 338 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 339 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 340 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 341 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 342 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 343 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 344 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 345 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 346 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 347 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 348 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 349 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 350 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 351 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 352 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 353 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 354 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 355 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 356 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 357 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 358 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 359 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 360 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 361 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 362 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 363 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 364 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 365 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 366 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 367 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 368 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 369 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 370 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 371 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 372 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 373 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 374 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 375 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 376 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 377 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 378 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 379 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 380 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 381 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 382 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 383 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 384 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 385 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 386 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 387 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 388 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 389 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 390 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 391 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 392 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 393 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 394 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 395 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 396 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 397 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 398 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 399 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 400 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 401 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 402 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 403 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 404 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 405 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 406 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 407 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 408 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 409 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 410 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 411 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 412 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 413 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 414 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 415 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 416 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 417 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 418 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 419 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 420 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 421 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 422 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 423 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 424 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 425 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 426 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 427 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 428 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 429 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 430 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 431 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 432 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 433 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 434 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 435 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 436 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 437 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 438 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 439 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 440 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 441 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 442 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 443 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 444 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 445 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 446 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 447 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 448 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 449 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 450 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 451 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 452 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 453 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 454 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 455 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 456 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 457 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 458 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 459 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 460 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 461 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 462 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 463 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 464 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 465 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 466 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 467 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 468 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 469 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 470 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 471 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 472 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 473 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 474 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 475 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 476 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 477 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 478 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 479 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 480 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 481 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 482 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 483 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 484 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 485 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 486 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 487 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 488 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 489 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 490 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 491 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 492 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 493 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 494 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 495 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 496 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 497 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 498 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 499 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 500 0.15 0.001 14.0 0.055 0.0 0.0 0.0 +END period 4 + +BEGIN period 5 + 1 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 2 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 3 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 4 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 5 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 6 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 7 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 8 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 9 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 10 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 11 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 12 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 13 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 14 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 15 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 16 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 17 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 18 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 19 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 20 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 21 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 22 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 23 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 24 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 25 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 26 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 27 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 28 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 29 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 30 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 31 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 32 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 33 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 34 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 35 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 36 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 37 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 38 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 39 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 40 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 41 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 42 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 43 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 44 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 45 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 46 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 47 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 48 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 49 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 50 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 51 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 52 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 53 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 54 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 55 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 56 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 57 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 58 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 59 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 60 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 61 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 62 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 63 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 64 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 65 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 66 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 67 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 68 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 69 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 70 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 71 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 72 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 73 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 74 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 75 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 76 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 77 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 78 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 79 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 80 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 81 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 82 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 83 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 84 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 85 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 86 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 87 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 88 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 89 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 90 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 91 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 92 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 93 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 94 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 95 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 96 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 97 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 98 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 99 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 100 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 101 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 102 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 103 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 104 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 105 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 106 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 107 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 108 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 109 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 110 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 111 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 112 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 113 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 114 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 115 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 116 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 117 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 118 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 119 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 120 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 121 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 122 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 123 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 124 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 125 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 126 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 127 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 128 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 129 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 130 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 131 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 132 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 133 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 134 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 135 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 136 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 137 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 138 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 139 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 140 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 141 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 142 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 143 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 144 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 145 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 146 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 147 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 148 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 149 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 150 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 151 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 152 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 153 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 154 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 155 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 156 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 157 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 158 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 159 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 160 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 161 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 162 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 163 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 164 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 165 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 166 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 167 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 168 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 169 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 170 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 171 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 172 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 173 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 174 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 175 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 176 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 177 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 178 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 179 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 180 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 181 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 182 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 183 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 184 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 185 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 186 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 187 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 188 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 189 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 190 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 191 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 192 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 193 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 194 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 195 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 196 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 197 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 198 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 199 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 200 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 201 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 202 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 203 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 204 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 205 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 206 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 207 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 208 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 209 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 210 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 211 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 212 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 213 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 214 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 215 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 216 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 217 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 218 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 219 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 220 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 221 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 222 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 223 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 224 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 225 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 226 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 227 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 228 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 229 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 230 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 231 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 232 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 233 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 234 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 235 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 236 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 237 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 238 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 239 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 240 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 241 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 242 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 243 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 244 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 245 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 246 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 247 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 248 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 249 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 250 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 251 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 252 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 253 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 254 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 255 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 256 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 257 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 258 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 259 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 260 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 261 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 262 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 263 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 264 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 265 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 266 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 267 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 268 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 269 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 270 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 271 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 272 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 273 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 274 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 275 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 276 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 277 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 278 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 279 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 280 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 281 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 282 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 283 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 284 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 285 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 286 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 287 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 288 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 289 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 290 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 291 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 292 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 293 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 294 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 295 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 296 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 297 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 298 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 299 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 300 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 301 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 302 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 303 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 304 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 305 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 306 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 307 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 308 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 309 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 310 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 311 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 312 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 313 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 314 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 315 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 316 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 317 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 318 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 319 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 320 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 321 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 322 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 323 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 324 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 325 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 326 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 327 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 328 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 329 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 330 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 331 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 332 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 333 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 334 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 335 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 336 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 337 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 338 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 339 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 340 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 341 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 342 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 343 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 344 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 345 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 346 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 347 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 348 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 349 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 350 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 351 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 352 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 353 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 354 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 355 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 356 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 357 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 358 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 359 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 360 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 361 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 362 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 363 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 364 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 365 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 366 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 367 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 368 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 369 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 370 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 371 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 372 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 373 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 374 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 375 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 376 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 377 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 378 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 379 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 380 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 381 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 382 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 383 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 384 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 385 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 386 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 387 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 388 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 389 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 390 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 391 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 392 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 393 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 394 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 395 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 396 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 397 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 398 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 399 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 400 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 401 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 402 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 403 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 404 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 405 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 406 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 407 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 408 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 409 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 410 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 411 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 412 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 413 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 414 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 415 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 416 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 417 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 418 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 419 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 420 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 421 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 422 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 423 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 424 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 425 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 426 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 427 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 428 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 429 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 430 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 431 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 432 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 433 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 434 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 435 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 436 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 437 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 438 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 439 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 440 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 441 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 442 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 443 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 444 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 445 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 446 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 447 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 448 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 449 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 450 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 451 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 452 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 453 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 454 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 455 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 456 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 457 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 458 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 459 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 460 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 461 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 462 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 463 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 464 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 465 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 466 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 467 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 468 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 469 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 470 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 471 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 472 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 473 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 474 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 475 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 476 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 477 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 478 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 479 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 480 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 481 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 482 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 483 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 484 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 485 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 486 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 487 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 488 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 489 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 490 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 491 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 492 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 493 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 494 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 495 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 496 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 497 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 498 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 499 0.15 0.001 14.0 0.055 0.0 0.0 0.0 + 500 0.15 0.001 14.0 0.055 0.0 0.0 0.0 +END period 5 + diff --git a/examples/data/mf6/netcdf/uzf02/uzf02.uzf.obs b/examples/data/mf6/netcdf/uzf02/uzf02.uzf.obs new file mode 100644 index 000000000..3127e8769 --- /dev/null +++ b/examples/data/mf6/netcdf/uzf02/uzf02.uzf.obs @@ -0,0 +1,47 @@ +# File generated by Flopy version 3.10.0.dev3 on 08/14/2025 at 10:40:32. +BEGIN options +END options + +BEGIN continuous FILEOUT uzf02.uzfobs + uzet_41 uzet 41 + uzf-gwet_41 uzf-gwet 41 + uzet_42 uzet 42 + uzf-gwet_42 uzf-gwet 42 + uzet_43 uzet 43 + uzf-gwet_43 uzf-gwet 43 + uzet_44 uzet 44 + uzf-gwet_44 uzf-gwet 44 + uzet_45 uzet 45 + uzf-gwet_45 uzf-gwet 45 + uzet_46 uzet 46 + uzf-gwet_46 uzf-gwet 46 + uzet_47 uzet 47 + uzf-gwet_47 uzf-gwet 47 + uzet_48 uzet 48 + uzf-gwet_48 uzf-gwet 48 + uzet_49 uzet 49 + uzf-gwet_49 uzf-gwet 49 + uzet_50 uzet 50 + uzf-gwet_50 uzf-gwet 50 + uzet_141 uzet 141 + uzf-gwet_141 uzf-gwet 141 + uzet_142 uzet 142 + uzf-gwet_142 uzf-gwet 142 + uzet_143 uzet 143 + uzf-gwet_143 uzf-gwet 143 + uzet_144 uzet 144 + uzf-gwet_144 uzf-gwet 144 + uzet_145 uzet 145 + uzf-gwet_145 uzf-gwet 145 + uzet_146 uzet 146 + uzf-gwet_146 uzf-gwet 146 + uzet_147 uzet 147 + uzf-gwet_147 uzf-gwet 147 + uzet_148 uzet 148 + uzf-gwet_148 uzf-gwet 148 + uzet_149 uzet 149 + uzf-gwet_149 uzf-gwet 149 + uzet_150 uzet 150 + uzf-gwet_150 uzf-gwet 150 +END continuous FILEOUT uzf02.uzfobs + diff --git a/examples/data/mf6/netcdf/uzf02/uzf02.uzfobs b/examples/data/mf6/netcdf/uzf02/uzf02.uzfobs new file mode 100644 index 000000000..e2e4ca944 --- /dev/null +++ b/examples/data/mf6/netcdf/uzf02/uzf02.uzfobs @@ -0,0 +1,26 @@ +time,UZET_41,UZF-GWET_41,UZET_42,UZF-GWET_42,UZET_43,UZF-GWET_43,UZET_44,UZF-GWET_44,UZET_45,UZF-GWET_45,UZET_46,UZF-GWET_46,UZET_47,UZF-GWET_47,UZET_48,UZF-GWET_48,UZET_49,UZF-GWET_49,UZET_50,UZF-GWET_50,UZET_141,UZF-GWET_141,UZET_142,UZF-GWET_142,UZET_143,UZF-GWET_143,UZET_144,UZF-GWET_144,UZET_145,UZF-GWET_145,UZET_146,UZF-GWET_146,UZET_147,UZF-GWET_147,UZET_148,UZF-GWET_148,UZET_149,UZF-GWET_149,UZET_150,UZF-GWET_150 +2.000000000000,-0.34821428571427115E-3,-0.47501789210262950E-3,-0.34821428571427115E-3,-0.47341442005392319E-3,-0.34821428571427115E-3,-0.47027372704428372E-3,-0.34821428571427115E-3,-0.46572728044588123E-3,-0.34821428571427115E-3,-0.46000374346177647E-3,-0.34821428571427115E-3,-0.45324902118874257E-3,-0.34821428571427115E-3,-0.44513984825862469E-3,-0.34821428571427115E-3,-0.43394100440266798E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.12007061161391469E-3,0.0000000000000000,-0.12055932383962553E-3,0.0000000000000000,-0.12148013622134517E-3,0.0000000000000000,-0.12273832553540923E-3,0.0000000000000000,-0.12422817189647475E-3,0.0000000000000000,-0.12586859877776897E-3,0.0000000000000000,-0.12764974422383124E-3,0.0000000000000000,-0.13051198013343561E-3,-0.46659051380654182E-4,-0.35109402053951208E-3,-0.56533591941687611E-4,-0.33634676199215086E-3 +4.000000000000,-0.27713573672519254E-3,-0.52253274311983935E-3,-0.28058925999990825E-3,-0.51755181282748088E-3,-0.28733320746801572E-3,-0.50789395717781892E-3,-0.29713004327339143E-3,-0.49402617606886180E-3,-0.31005899605235365E-3,-0.47601858892828194E-3,-0.32670492491193581E-3,-0.45332625813784356E-3,-0.34760733886546324E-3,-0.42561618430220346E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13411108519281663E-3,0.0000000000000000,-0.13432448896523664E-3,0.0000000000000000,-0.13465863570420603E-3,0.0000000000000000,-0.13499384163069274E-3,0.0000000000000000,-0.13509969203675252E-3,0.0000000000000000,-0.13457818066261356E-3,0.0000000000000000,-0.13307117897596839E-3,-0.63115355426593411E-4,-0.32668331991698681E-3,-0.80830079402419153E-4,-0.30133464956921797E-3,-0.93055493656554744E-4,-0.28440242186135076E-3 +6.000000000000,-0.28677693792794612E-3,-0.50868713627143670E-3,-0.29058022253414251E-3,-0.50327642065970063E-3,-0.29804387906473551E-3,-0.49274239571847904E-3,-0.30942344117007581E-3,-0.47689598360537485E-3,-0.32529574885095669E-3,-0.45522582651857609E-3,-0.34654498449659954E-3,-0.42700345728654003E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13469962366776793E-3,0.0000000000000000,-0.13489794375472832E-3,0.0000000000000000,-0.13521680714888019E-3,0.0000000000000000,-0.13542274148888430E-3,0.0000000000000000,-0.13514498072090045E-3,0.0000000000000000,-0.13397749787980663E-3,-0.60054241322264612E-4,-0.33116115798129001E-3,-0.79576028877828553E-4,-0.30309744731355458E-3,-0.98120635750362228E-4,-0.27752155603274857E-3,-0.11105591020321715E-3,-0.26030655140544504E-3 +8.000000000000,-0.29535709511199770E-3,-0.49652162340898783E-3,-0.29937630825538353E-3,-0.49087355743385338E-3,-0.30766794278302978E-3,-0.47932367745027169E-3,-0.32072461636098448E-3,-0.46141504681791127E-3,-0.34034995473325447E-3,-0.43513818222041558E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13531283948083468E-3,0.0000000000000000,-0.13548529403928161E-3,0.0000000000000000,-0.13566697313279900E-3,0.0000000000000000,-0.13562389017047566E-3,0.0000000000000000,-0.13520964979021530E-3,-0.49852905394227875E-4,-0.34629138209619072E-3,-0.68319192510504778E-4,-0.31913706554810171E-3,-0.88068041043498635E-4,-0.29125467079443011E-3,-0.10683213407136627E-3,-0.26587134152241158E-3,-0.11995785676022219E-3,-0.24875757869481934E-3 +10.00000000000,-0.30155290664507506E-3,-0.48782834221594920E-3,-0.30594404927972163E-3,-0.48171366273022176E-3,-0.31476900226326543E-3,-0.46954152025929004E-3,-0.32825049903648096E-3,-0.45124739204473532E-3,-0.34708410345579699E-3,-0.42629916796011272E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13577707714385853E-3,0.0000000000000000,-0.13587632460551770E-3,0.0000000000000000,-0.13594226018766878E-3,0.0000000000000000,-0.13573741243190723E-3,0.0000000000000000,-0.13495913750981374E-3,-0.53421891114499576E-4,-0.34096168469756663E-3,-0.72295455357342109E-4,-0.31342696055411704E-3,-0.92254151021015085E-4,-0.28549823790316377E-3,-0.11114323572096463E-3,-0.26019207835468376E-3,-0.12436292200608545E-3,-0.24313258614977039E-3 +12.00000000000,-0.30771518635080986E-3,-0.47925826320928400E-3,-0.31239003473124138E-3,-0.47280746433689836E-3,-0.32189724933207042E-3,-0.45982334046340860E-3,-0.33810390369551357E-3,-0.43810644230312659E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13599538701833500E-3,0.0000000000000000,-0.13604858805654714E-3,0.0000000000000000,-0.13602893192599119E-3,0.0000000000000000,-0.13595403417751334E-3,-0.42761141578050166E-4,-0.35699776778992339E-3,-0.58348482651550404E-4,-0.33366883941598027E-3,-0.76417765016573158E-4,-0.30755834585348744E-3,-0.95855541383180198E-4,-0.28058889796404158E-3,-0.11440879225804723E-3,-0.25592813248103362E-3,-0.12746208906692924E-3,-0.23921082560527545E-3 +14.00000000000,-0.31258573714226801E-3,-0.47253836878022944E-3,-0.31725360080014919E-3,-0.46614264562036133E-3,-0.32665887338334532E-3,-0.45338827279338152E-3,-0.34220732773609930E-3,-0.43269119968408569E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13618130536491475E-3,0.0000000000000000,-0.13620282024997974E-3,0.0000000000000000,-0.13612219530567134E-3,0.0000000000000000,-0.13592583294302180E-3,-0.44078775436377782E-4,-0.35499687243169644E-3,-0.60135546789089056E-4,-0.33104185156345052E-3,-0.78332844719433692E-4,-0.30484973349271768E-3,-0.97754041013350945E-4,-0.27801692291284984E-3,-0.11624786920096108E-3,-0.25354119171892039E-3,-0.12926174108211785E-3,-0.23694702883544656E-3 +16.00000000000,-0.31632687224844580E-3,-0.46740894560958618E-3,-0.32092829103330667E-3,-0.46113838591893335E-3,-0.33013260464237471E-3,-0.44872232736319539E-3,-0.34486241552161845E-3,-0.42920525459616164E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13629856655846104E-3,0.0000000000000000,-0.13628757704653503E-3,0.0000000000000000,-0.13613608538718059E-3,0.0000000000000000,-0.13574988511860835E-3,-0.45966023920929189E-4,-0.35214026746952724E-3,-0.61791353160776941E-4,-0.32861655920972052E-3,-0.79826437005312001E-4,-0.30274506723042651E-3,-0.99116685788436243E-4,-0.27617771019356429E-3,-0.11750895427001251E-3,-0.25191042573059091E-3,-0.13046660094950813E-3,-0.23543697989744411E-3 +18.00000000000,-0.31921124385120292E-3,-0.46347333049862136E-3,-0.32375240023224672E-3,-0.45731081619165012E-3,-0.33279162739188739E-3,-0.44516701247835960E-3,-0.34682436618899137E-3,-0.42663840860440499E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13636946612468459E-3,0.0000000000000000,-0.13633183978974860E-3,0.0000000000000000,-0.13612290764633588E-3,0.0000000000000000,-0.13557551807184777E-3,-0.47523360924978109E-4,-0.34979125828395467E-3,-0.63146785956209872E-4,-0.32663749205319372E-3,-0.81017809407016306E-4,-0.30107117592469612E-3,-0.10017176658203009E-3,-0.27475754180950594E-3,-0.11845885166293646E-3,-0.25068529279803013E-3,-0.13135687531211360E-3,-0.23432406221234059E-3 +20.00000000000,-0.32252698597562413E-3,-0.45896968473126500E-3,-0.32741169235675494E-3,-0.45237503157840176E-3,-0.33877549720975897E-3,-0.43721784309018669E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13635135454788573E-3,0.0000000000000000,-0.13629654605946793E-3,0.0000000000000000,-0.13632725465649413E-3,-0.38238355576255406E-4,-0.36390638000206280E-3,-0.50244979534791456E-4,-0.34570397235415048E-3,-0.65257143584115940E-4,-0.32356738086538879E-3,-0.82704251226375924E-4,-0.29870915275837244E-3,-0.10154648745382133E-3,-0.27291225374431001E-3,-0.11960926930160154E-3,-0.24920524540089303E-3,-0.13237985537209451E-3,-0.23304825412567810E-3 +22.00000000000,-0.32463439046986897E-3,-0.45611870653599717E-3,-0.32942926101295344E-3,-0.44966511598563117E-3,-0.34050753884759533E-3,-0.43493030631685462E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13641689736794215E-3,0.0000000000000000,-0.13636794942024813E-3,0.0000000000000000,-0.13643643235389594E-3,-0.38238355576258876E-4,-0.36428463589372503E-3,-0.50470290921159067E-4,-0.34536662180418231E-3,-0.65745074748428667E-4,-0.32285949227931540E-3,-0.83285650709169490E-4,-0.29789687007827600E-3,-0.10214305533350065E-3,-0.27211328486126071E-3,-0.12019114414130172E-3,-0.24845819214959681E-3,-0.13294765496013605E-3,-0.23234150949839102E-3 +24.00000000000,-0.32599783189693476E-3,-0.45427892260762638E-3,-0.33069101329527562E-3,-0.44797451968368743E-3,-0.34143402376612952E-3,-0.43370914505286946E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13645115243014283E-3,0.0000000000000000,-0.13638845853384889E-3,0.0000000000000000,-0.13640655970007437E-3,-0.38345947038984085E-4,-0.36374130387218111E-3,-0.50914686042402568E-4,-0.34470170175418210E-3,-0.66163551911441187E-4,-0.32225294923806064E-3,-0.83685225249874318E-4,-0.29733921936617267E-3,-0.10252277461851589E-3,-0.27160530480663041E-3,-0.12055222363104023E-3,-0.24799513441423299E-3,-0.13329779537399333E-3,-0.23190618008152991E-3 +26.00000000000,-0.32694903368818418E-3,-0.45299760325325856E-3,-0.33157831064761778E-3,-0.44678755479668811E-3,-0.34209164963502903E-3,-0.43284339747994634E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13646616158495572E-3,0.0000000000000000,-0.13639065729897693E-3,0.0000000000000000,-0.13636316543091161E-3,-0.38822880027836182E-4,-0.36300997973679849E-3,-0.51327534002269803E-4,-0.34408452669463217E-3,-0.66527687610090647E-4,-0.32172560623169866E-3,-0.84009500922133107E-4,-0.29688701672882917E-3,-0.10281348355857534E-3,-0.27121669984514680E-3,-0.12081668499594467E-3,-0.24765623608934400E-3,-0.13354736094975395E-3,-0.23159612493951418E-3 +28.00000000000,-0.32764455130662729E-3,-0.45206184938767241E-3,-0.33223391962863835E-3,-0.44591153809451860E-3,-0.34258530251221608E-3,-0.43219408447293321E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13647325569106746E-3,0.0000000000000000,-0.13638841996685305E-3,0.0000000000000000,-0.13632632572502349E-3,-0.39200482056959973E-4,-0.36243146373423046E-3,-0.51658876142307575E-4,-0.34358957470862525E-3,-0.66819888231706148E-4,-0.32130273417797295E-3,-0.84267218274883260E-4,-0.29652785983281594E-3,-0.10304109283106044E-3,-0.27091262431907495E-3,-0.12102033801209000E-3,-0.24739540787791230E-3,-0.13373709696318237E-3,-0.23136052869756306E-3 +30.00000000000,-0.32816441639335614E-3,-0.45136305140007298E-3,-0.33272697567410248E-3,-0.44525328899301078E-3,-0.34295875224252259E-3,-0.43170320125468617E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13647705071172082E-3,0.0000000000000000,-0.13638548981385087E-3,0.0000000000000000,-0.13629729551875222E-3,-0.39490840505071456E-4,-0.36198690932246272E-3,-0.51915238284815091E-4,-0.34320685743834307E-3,-0.67046763654828034E-4,-0.32097458127963794E-3,-0.84467462505927182E-4,-0.29624893862051707E-3,-0.10321763847066789E-3,-0.27067687693063626E-3,-0.12117777095700666E-3,-0.24719386315146072E-3,-0.13388329702507251E-3,-0.23117906663670167E-3 +32.00000000000,-0.32855668799763871E-3,-0.45083612123270500E-3,-0.33310015552040495E-3,-0.44475540256689434E-3,-0.34324156524856431E-3,-0.43133164161714122E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13647930029581031E-3,0.0000000000000000,-0.13638280322320686E-3,0.0000000000000000,-0.13627481507519893E-3,-0.39712377102901764E-4,-0.36164789885651763E-3,-0.52111365205415039E-4,-0.34291420013173870E-3,-0.67220723193782417E-4,-0.32072307296451786E-3,-0.84621248235230984E-4,-0.29603481322428872E-3,-0.10335334562144860E-3,-0.27049572757689103E-3,-0.12129881923643449E-3,-0.24703894957786696E-3,-0.13399569856648030E-3,-0.23103959955915443E-3 +34.00000000000,-0.32885387736333871E-3,-0.45043711793022812E-3,-0.33338329516879872E-3,-0.44437783116000934E-3,-0.34345584907771731E-3,-0.43105022211026192E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13648073067705767E-3,0.0000000000000000,-0.13638055965211227E-3,0.0000000000000000,-0.13625751831063495E-3,-0.39880971734657100E-4,-0.36139000472447023E-3,-0.52260806403997551E-4,-0.34269128570946553E-3,-0.67353434364855747E-4,-0.32053126341559271E-3,-0.84738699676498164E-4,-0.29587132718458494E-3,-0.10345709049371099E-3,-0.27035728134052535E-3,-0.12139143111745965E-3,-0.24692045832276567E-3,-0.13408173950134328E-3,-0.23093286674114391E-3 +36.00000000000,-0.32907942045992677E-3,-0.45013442405039141E-3,-0.33359833018925533E-3,-0.44409118552653703E-3,-0.34361829616669226E-3,-0.43083694112710179E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13648168323829101E-3,0.0000000000000000,-0.13637875574948761E-3,0.0000000000000000,-0.13624425671400980E-3,-0.40009154847808759E-4,-0.36119398524133740E-3,-0.52374492298723485E-4,-0.34252175169108626E-3,-0.67454455797893997E-4,-0.32038529177154959E-3,-0.84828162348171698E-4,-0.29574682839558536E-3,-0.10353616333252935E-3,-0.27025178180360482E-3,-0.12146206106099233E-3,-0.24683010930589362E-3,-0.13414738719255692E-3,-0.23085144679197540E-3 +38.00000000000,-0.32925071680101059E-3,-0.44990460091195300E-3,-0.33376170668125704E-3,-0.44387346348426845E-3,-0.34374150713661900E-3,-0.43067520945531219E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13648233799361790E-3,0.0000000000000000,-0.13637733320343178E-3,0.0000000000000000,-0.13623411279618667E-3,-0.40106575955815849E-4,-0.36104504118502463E-3,-0.52460918194614792E-4,-0.34239289566321109E-3,-0.67531277662034872E-4,-0.32027430842938105E-3,-0.84896217347543712E-4,-0.29565213757690818E-3,-0.10359633632683884E-3,-0.27017151142717907E-3,-0.12151582845126851E-3,-0.24676134093635008E-3,-0.13419737554559719E-3,-0.23078945730107842E-3 +40.00000000000,-0.32938085422501429E-3,-0.44973003867996545E-3,-0.33388585295154871E-3,-0.44370805689807904E-3,-0.34383499683168783E-3,-0.43055251138285355E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13648279844833062E-3,0.0000000000000000,-0.13637622414082511E-3,0.0000000000000000,-0.13622636672165747E-3,-0.40180605369873057E-4,-0.36093187942432112E-3,-0.52526600110770760E-4,-0.34229498304138314E-3,-0.67589669292017485E-4,-0.32018996307081149E-3,-0.84947954075612064E-4,-0.29558016129202860E-3,-0.10364208947867548E-3,-0.27011048446089431E-3,-0.12155671880118013E-3,-0.24670904821050645E-3,-0.13423539755648417E-3,-0.23074231215005302E-3 +42.00000000000,-0.32947973486294191E-3,-0.44959742595947053E-3,-0.33398019311403626E-3,-0.44358238316439841E-3,-0.34390595755104392E-3,-0.43045939253702091E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13648312789668539E-3,0.0000000000000000,-0.13637536582149267E-3,0.0000000000000000,-0.13622045903710736E-3,-0.40236855697595164E-4,-0.36084590611405699E-3,-0.52576510026422496E-4,-0.34222059073357606E-3,-0.67634042448874720E-4,-0.32012587406849780E-3,-0.84987273124129126E-4,-0.29552546601160359E-3,-0.10367686419036903E-3,-0.27006410517337552E-3,-0.12158780038830364E-3,-0.24666930287749916E-3,-0.13426430094379271E-3,-0.23070647654625895E-3 +44.00000000000,-0.32955486919822308E-3,-0.44949667341579792E-3,-0.33405188305937750E-3,-0.44348689445676255E-3,-0.34395983147098019E-3,-0.43038870272358492E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13648336677198628E-3,0.0000000000000000,-0.13637470486555506E-3,0.0000000000000000,-0.13621595761337583E-3,-0.40279595370687482E-4,-0.36078058905371574E-3,-0.52614432696169999E-4,-0.34216407090525557E-3,-0.67667759042183695E-4,-0.32007718058505504E-3,-0.85017150385405249E-4,-0.29548390802560981E-3,-0.10370328935868645E-3,-0.27002886421417457E-3,-0.12161142009126102E-3,-0.24663910135197238E-3,-0.13428626605462013E-3,-0.23067924501617859E-3 +46.00000000000,-0.32961196028655215E-3,-0.44942012379084473E-3,-0.33410635982467074E-3,-0.44341434002594105E-3,-0.34400074054879992E-3,-0.43033502840051480E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13648354178969439E-3,0.0000000000000000,-0.13637419767781621E-3,0.0000000000000000,-0.13621253009276545E-3,-0.40312068963370418E-4,-0.36073096491530095E-3,-0.52643246306896541E-4,-0.34212113014022263E-3,-0.67693377061278648E-4,-0.32004018538964586E-3,-0.85039851510940179E-4,-0.29545233356716486E-3,-0.10372336779557179E-3,-0.27000208877377347E-3,-0.12162936710422012E-3,-0.24661615440226415E-3,-0.13430295602358255E-3,-0.23065855440123392E-3 +48.00000000000,-0.32965534084536396E-3,-0.44936196205714056E-3,-0.33414775544243769E-3,-0.44335921158233558E-3,-0.34403180917738641E-3,-0.43029426737107614E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13648367107459950E-3,0.0000000000000000,-0.13637380946989467E-3,0.0000000000000000,-0.13620992164091656E-3,-0.40336742220162258E-4,-0.36069326293163831E-3,-0.52665138593081806E-4,-0.34208850589006090E-3,-0.67712841348981090E-4,-0.32001207819545060E-3,-0.85057099590737928E-4,-0.29542834467821482E-3,-0.10373862320271765E-3,-0.26998174587347082E-3,-0.12164300308645237E-3,-0.24659872017290384E-3,-0.13431563692023474E-3,-0.23064283441917685E-3 +50.00000000000,-0.32968830286878026E-3,-0.44931777131093089E-3,-0.33417921007891649E-3,-0.44331732429112882E-3,-0.34405540675311319E-3,-0.43026330940981131E-3,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,-0.34821428571427115E-3,0.0000000000000000,0.0000000000000000,-0.13648376718493842E-3,0.0000000000000000,-0.13637351287806577E-3,0.0000000000000000,-0.13620793732207191E-3,-0.40355488608374845E-4,-0.36066461875160487E-3,-0.52681771884832695E-4,-0.34206371966432280E-3,-0.67727629816195789E-4,-0.31999072384643909E-3,-0.85070204181136866E-4,-0.29541011922692669E-3,-0.10375021376489435E-3,-0.26996629047685422E-3,-0.12165336321130760E-3,-0.24658547465901209E-3,-0.13432527137167971E-3,-0.23063089131884415E-3 diff --git a/flopy/discretization/grid.py b/flopy/discretization/grid.py index 1d59801b0..2092d341f 100644 --- a/flopy/discretization/grid.py +++ b/flopy/discretization/grid.py @@ -1185,12 +1185,14 @@ def read_usgs_model_reference_file(self, reffile="usgs.model.reference"): yul = None if os.path.exists(reffile): with open(reffile) as input: + print(f"Updating grid based on reference: {reffile}") for line in input: if len(line) > 1: if line.strip()[0] != "#": info = line.strip().split("#")[0].split() if len(info) > 1: data = " ".join(info[1:]).strip("'").strip('"') + print(f"Grid update on reference: {info}") if info[0] == "xll": self._xoff = float(data) elif info[0] == "yll": @@ -1201,12 +1203,14 @@ def read_usgs_model_reference_file(self, reffile="usgs.model.reference"): yul = float(data) elif info[0] == "rotation": self._angrot = float(data) - elif info[0] == "epsg": + elif info[0] == "length_units": + self._units = data.lower() + elif info[0].lower() == "epsg": self.epsg = int(data) elif info[0] == "proj4": self.crs = data - elif info[0] == "start_date": - start_datetime = data + else: + print(" -> warn: update not applied.") # model must be rotated first, before setting xoff and yoff # when xul and yul are provided. @@ -1288,6 +1292,22 @@ def write_shapefile(self, filename="grid.shp", crs=None, prjfile=None, **kwargs) ) return + def dataset(self, modeltime=None, mesh=None, configuration=None): + """ + Method to generate baseline xarray dataset + + Parameters + ---------- + modeltime : FloPy ModelTime object + mesh : mesh type + configuration : configuration dictionary + + Returns + ------- + xarray dataset + """ + raise NotImplementedError("dataset must be defined in the child class") + # initialize grid from a grb file @classmethod def from_binary_grid_file(cls, file_path, verbose=False): diff --git a/flopy/discretization/modeltime.py b/flopy/discretization/modeltime.py index f072d1107..ae677042a 100644 --- a/flopy/discretization/modeltime.py +++ b/flopy/discretization/modeltime.py @@ -1,4 +1,5 @@ import calendar +import os from dataclasses import dataclass, field from datetime import datetime, timedelta from difflib import SequenceMatcher @@ -802,3 +803,39 @@ def reverse(self) -> "ModelTime": self.start_datetime, self.steady_state[::-1] if self.steady_state is not None else None, ) + + def read_usgs_model_reference_file(self, reffile="usgs.model.reference"): + """read spatial reference info from the usgs.model.reference file + https://water.usgs.gov/ogw/policy/gw-model/modelers-setup.html""" + if os.path.exists(reffile): + start_date_time = "" + with open(reffile) as input: + print(f"Updating modeltime based on reference: {reffile}") + for line in input: + if len(line) > 1: + if line.strip()[0] != "#": + info = line.strip().split("#")[0].split() + if len(info) > 1: + data = " ".join(info[1:]).strip("'").strip('"') + print(f"ModelTime update on reference: {info}") + if info[0].lower() == "time_units": + self.time_units = data.lower() + elif info[0] == "start_date": + if len(start_date_time) > 0: + start_date_time = f"{data} {start_date_time}" + else: + start_date_time = data + elif info[0] == "start_time": + if len(start_date_time) > 0: + start_date_time = f"{start_date_time} {data}" + else: + start_date_time = data + else: + print(" -> warn: update not applied.") + + if len(start_date_time) > 0: + self.start_datetime = start_date_time + + return True + else: + return False diff --git a/flopy/discretization/structuredgrid.py b/flopy/discretization/structuredgrid.py index d132485ee..194731850 100644 --- a/flopy/discretization/structuredgrid.py +++ b/flopy/discretization/structuredgrid.py @@ -1770,6 +1770,296 @@ def get_plottable_layer_array(self, a, layer): assert plotarray.shape == required_shape, msg return plotarray + def latlon(self): + try: + import warnings + + from pyproj import Proj + + epsg = None + if self.crs is not None: + epsg = self.crs.to_epsg() + + proj = Proj( + f"EPSG:{epsg}", + ) + + lats = [] + lons = [] + x_local = [] + y_local = [] + for y in self.xycenters[1]: + for x in self.xycenters[0]: + x_local.append(x) + y_local.append(y) + + x_global, y_global = self.get_coords(x_local, y_local) + + for i, x in enumerate(x_global): + lon, lat = proj(x, y_global[i], inverse=True) + lats.append(lat) + lons.append(lon) + + return np.array(lats), np.array(lons) + + except Exception as e: + warnings.warn( + f"Cannot create coordinates from CRS: {e}", + UserWarning, + ) + + return None, None + + def dataset(self, modeltime=None, mesh=None, configuration=None): + """ + modeltime : FloPy ModelTime object + mesh : mesh type + valid mesh types are "layered" or None + configuration : configuration dictionary + """ + from ..utils import import_optional_dependency + + xr = import_optional_dependency("xarray") + + if modeltime is None: + raise ValueError("modeltime required for dataset timeseries") + + ds = xr.Dataset() + ds.attrs["modflow_grid"] = "STRUCTURED" + + if mesh and mesh.upper() == "LAYERED": + return self._layered_mesh_dataset(ds, modeltime, configuration) + elif mesh is None: + return self._structured_dataset(ds, modeltime, configuration) + + def _layered_mesh_dataset(self, ds, modeltime=None, configuration=None): + FILLNA_INT32 = np.int32(-2147483647) + FILLNA_DBL = 9.96920996838687e36 + lenunits = {0: "u", 1: "ft", 2: "m", 3: "cm"} + + # create dataset coordinate vars + var_d = { + "time": (["time"], modeltime.totim), + } + ds = ds.assign(var_d) + ds["time"].attrs["calendar"] = "standard" + ds["time"].attrs["units"] = ( + f"{modeltime.time_units} since {modeltime.start_datetime}" + ) + ds["time"].attrs["axis"] = "T" + ds["time"].attrs["standard_name"] = "time" + ds["time"].attrs["long_name"] = "time" + + # mesh container variable + ds = ds.assign({"mesh": ([], np.int32(1))}) + ds["mesh"].attrs["cf_role"] = "mesh_topology" + ds["mesh"].attrs["long_name"] = "2D mesh topology" + ds["mesh"].attrs["topology_dimension"] = np.int32(2) + ds["mesh"].attrs["face_dimension"] = "nmesh_face" + ds["mesh"].attrs["node_coordinates"] = "mesh_node_x mesh_node_y" + ds["mesh"].attrs["face_coordinates"] = "mesh_face_x mesh_face_y" + ds["mesh"].attrs["face_node_connectivity"] = "mesh_face_nodes" + + # mesh node x and y + var_d = { + "mesh_node_x": (["nmesh_node"], self.verts[:, 0]), + "mesh_node_y": (["nmesh_node"], self.verts[:, 1]), + } + ds = ds.assign(var_d) + ds["mesh_node_x"].attrs["units"] = lenunits[self.lenuni] + ds["mesh_node_x"].attrs["standard_name"] = "projection_x_coordinate" + ds["mesh_node_x"].attrs["long_name"] = "Easting" + ds["mesh_node_y"].attrs["units"] = lenunits[self.lenuni] + ds["mesh_node_y"].attrs["standard_name"] = "projection_y_coordinate" + ds["mesh_node_y"].attrs["long_name"] = "Northing" + + # mesh face x and y + x_bnds = [] + x_verts = self.verts[:, 0].reshape(self.nrow + 1, self.ncol + 1) + for i in range(self.nrow): + if i + 1 > self.nrow: + break + for j in range(self.ncol): + if j + 1 <= self.ncol: + bnd = [] + bnd.append(x_verts[i + 1][j]) + bnd.append(x_verts[i + 1][j + 1]) + bnd.append(x_verts[i][j + 1]) + bnd.append(x_verts[i][j]) + x_bnds.append(bnd) + + y_bnds = [] + y_verts = self.verts[:, 1].reshape(self.nrow + 1, self.ncol + 1) + for i in range(self.nrow): + if i + 1 > self.nrow: + break + for j in range(self.ncol): + if j + 1 <= self.ncol: + bnd = [] + bnd.append(y_verts[i + 1][j]) + bnd.append(y_verts[i + 1][j + 1]) + bnd.append(y_verts[i][j + 1]) + bnd.append(y_verts[i][j]) + y_bnds.append(bnd) + + var_d = { + "mesh_face_x": (["nmesh_face"], self.xcellcenters.flatten()), + "mesh_face_xbnds": (["nmesh_face", "max_nmesh_face_nodes"], x_bnds), + "mesh_face_y": (["nmesh_face"], self.ycellcenters.flatten()), + "mesh_face_ybnds": (["nmesh_face", "max_nmesh_face_nodes"], y_bnds), + } + ds = ds.assign(var_d) + ds["mesh_face_x"].attrs["units"] = lenunits[self.lenuni] + ds["mesh_face_x"].attrs["standard_name"] = "projection_x_coordinate" + ds["mesh_face_x"].attrs["long_name"] = "Easting" + ds["mesh_face_x"].attrs["bounds"] = "mesh_face_xbnds" + ds["mesh_face_y"].attrs["units"] = lenunits[self.lenuni] + ds["mesh_face_y"].attrs["standard_name"] = "projection_y_coordinate" + ds["mesh_face_y"].attrs["long_name"] = "Northing" + ds["mesh_face_y"].attrs["bounds"] = "mesh_face_ybnds" + + # mesh face nodes + max_face_nodes = 4 + face_nodes = [] + for r in self.iverts: + nodes = [np.int32(x + 1) for x in r] + nodes.reverse() + face_nodes.append(nodes) + + var_d = { + "mesh_face_nodes": (["nmesh_face", "max_nmesh_face_nodes"], face_nodes), + } + ds = ds.assign(var_d) + ds["mesh_face_nodes"].attrs["cf_role"] = "face_node_connectivity" + ds["mesh_face_nodes"].attrs["long_name"] = ( + "Vertices bounding cell (counterclockwise)" + ) + ds["mesh_face_nodes"].attrs["_FillValue"] = FILLNA_INT32 + ds["mesh_face_nodes"].attrs["start_index"] = np.int32(1) + + wkt_configured = ( + configuration is not None + and "wkt" in configuration + and configuration["wkt"] is not None + ) + + if wkt_configured or self.crs is not None: + ds["mesh_node_x"].attrs["grid_mapping"] = "projection" + ds["mesh_node_y"].attrs["grid_mapping"] = "projection" + ds["mesh_face_x"].attrs["grid_mapping"] = "projection" + ds["mesh_face_y"].attrs["grid_mapping"] = "projection" + ds = ds.assign({"projection": ([], np.int32(1))}) + if wkt_configured: + # wkt override to existing crs + ds["projection"].attrs["wkt"] = configuration["wkt"] + else: + ds["projection"].attrs["wkt"] = self.crs.to_wkt() + + return ds + + def _structured_dataset(self, ds, modeltime=None, configuration=None): + lenunits = {0: "u", 1: "ft", 2: "m", 3: "cm"} + + xc = self.xoffset + self.xycenters[0] + yc = self.yoffset + self.xycenters[1] + z = [float(x) for x in range(1, self.nlay + 1)] + + # set coordinate var bounds + x_bnds = [] + xv = self.xoffset + self.xyedges[0] + for idx, val in enumerate(xv): + if idx + 1 < len(xv): + bnd = [] + bnd.append(xv[idx]) + bnd.append(xv[idx + 1]) + x_bnds.append(bnd) + + y_bnds = [] + yv = self.yoffset + self.xyedges[1] + for idx, val in enumerate(yv): + if idx + 1 < len(yv): + bnd = [] + bnd.append(yv[idx + 1]) + bnd.append(yv[idx]) + y_bnds.append(bnd) + + # create dataset coordinate vars + var_d = { + "time": (["time"], modeltime.totim), + "z": (["z"], z), + "y": (["y"], yc), + "x": (["x"], xc), + } + ds = ds.assign(var_d) + + # create bound vars + var_d = {"x_bnds": (["x", "bnd"], x_bnds), "y_bnds": (["y", "bnd"], y_bnds)} + ds = ds.assign(var_d) + + ds["time"].attrs["calendar"] = "standard" + ds["time"].attrs["units"] = ( + f"{modeltime.time_units} since {modeltime.start_datetime}" + ) + ds["time"].attrs["axis"] = "T" + ds["time"].attrs["standard_name"] = "time" + ds["time"].attrs["long_name"] = "time" + ds["z"].attrs["units"] = "layer" + ds["z"].attrs["long_name"] = "layer number" + ds["y"].attrs["units"] = lenunits[self.lenuni] + ds["y"].attrs["axis"] = "Y" + ds["y"].attrs["standard_name"] = "projection_y_coordinate" + ds["y"].attrs["long_name"] = "Northing" + ds["y"].attrs["bounds"] = "y_bnds" + ds["x"].attrs["units"] = lenunits[self.lenuni] + ds["x"].attrs["axis"] = "X" + ds["x"].attrs["standard_name"] = "projection_x_coordinate" + ds["x"].attrs["long_name"] = "Easting" + ds["x"].attrs["bounds"] = "x_bnds" + + latlon_cfg = ( + configuration is not None + and "latitude" in configuration + and configuration["latitude"] is not None + and "longitude" in configuration + and configuration["longitude"] is not None + ) + + lats = None + lons = None + if latlon_cfg: + lats = configuration["latitude"] + lons = configuration["longitude"] + elif self.crs is not None: + lats, lons = self.latlon() + + if lats is not None and lons is not None: + # create coordinate vars + var_d = { + "lat": (["y", "x"], lats.reshape(yc.size, xc.size)), + "lon": (["y", "x"], lons.reshape(yc.size, xc.size)), + } + ds = ds.assign(var_d) + + # set coordinate attributes + ds["lat"].attrs["units"] = "degrees_north" + ds["lat"].attrs["standard_name"] = "latitude" + ds["lat"].attrs["long_name"] = "latitude" + ds["lon"].attrs["units"] = "degrees_east" + ds["lon"].attrs["standard_name"] = "longitude" + ds["lon"].attrs["long_name"] = "longitude" + + elif ( + configuration is not None + and "wkt" in configuration + and configuration["wkt"] is not None + ): + ds["x"].attrs["grid_mapping"] = "projection" + ds["y"].attrs["grid_mapping"] = "projection" + ds = ds.assign({"projection": ([], np.int32(1))}) + ds["projection"].attrs["crs_wkt"] = configuration["wkt"] + + return ds + def _set_structured_iverts(self): """ Build a list of the vertices that define each model cell and the x, y diff --git a/flopy/discretization/unstructuredgrid.py b/flopy/discretization/unstructuredgrid.py index f6e588e65..fd403f638 100644 --- a/flopy/discretization/unstructuredgrid.py +++ b/flopy/discretization/unstructuredgrid.py @@ -957,6 +957,20 @@ def get_plottable_layer_shape(self, layer=None): shp = (self.ncpl[layer],) return shp + def dataset(self, modeltime=None, mesh=None): + """ + Method to generate baseline Xarray dataset + + Parameters + ---------- + mesh + + Returns + ------- + Xarray dataset + """ + raise NotImplementedError("NetCDF currently unsupported for Unstructured grids") + @staticmethod def ncpl_from_ihc(ihc, iac): """ diff --git a/flopy/discretization/vertexgrid.py b/flopy/discretization/vertexgrid.py index ebda12c87..42e9c6adc 100644 --- a/flopy/discretization/vertexgrid.py +++ b/flopy/discretization/vertexgrid.py @@ -600,6 +600,146 @@ def get_plottable_layer_array(self, a, layer): assert plotarray.shape == required_shape, msg return plotarray + def dataset(self, modeltime=None, mesh=None, configuration=None): + """ + modeltime : FloPy ModelTime object + mesh : mesh type + valid mesh types are "layered" or None + VertexGrid objects only support layered mesh + configuration : configuration dictionary + """ + from ..utils import import_optional_dependency + + xr = import_optional_dependency("xarray") + + FILLNA_INT32 = np.int32(-2147483647) + FILLNA_DBL = 9.96920996838687e36 + lenunits = {0: "u", 1: "ft", 2: "m", 3: "cm"} + + if mesh is None or mesh.upper() != "LAYERED": + raise ValueError("Vextex grid only supports layered mesh datasets") + + if modeltime is None: + raise ValueError("modeltime required for dataset timeseries") + + ds = xr.Dataset() + ds.attrs["modflow_grid"] = "VERTEX" + + # create dataset coordinate vars + var_d = { + "time": (["time"], modeltime.totim), + } + ds = ds.assign(var_d) + ds["time"].attrs["calendar"] = "standard" + ds["time"].attrs["units"] = ( + f"{modeltime.time_units} since {modeltime.start_datetime}" + ) + ds["time"].attrs["axis"] = "T" + ds["time"].attrs["standard_name"] = "time" + ds["time"].attrs["long_name"] = "time" + + # mesh container variable + ds = ds.assign({"mesh": ([], np.int32(1))}) + ds["mesh"].attrs["cf_role"] = "mesh_topology" + ds["mesh"].attrs["long_name"] = "2D mesh topology" + ds["mesh"].attrs["topology_dimension"] = np.int32(2) + ds["mesh"].attrs["face_dimension"] = "nmesh_face" + ds["mesh"].attrs["node_coordinates"] = "mesh_node_x mesh_node_y" + ds["mesh"].attrs["face_coordinates"] = "mesh_face_x mesh_face_y" + ds["mesh"].attrs["face_node_connectivity"] = "mesh_face_nodes" + + # mesh node x and y + var_d = { + "mesh_node_x": (["nmesh_node"], self.verts[:, 0]), + "mesh_node_y": (["nmesh_node"], self.verts[:, 1]), + } + ds = ds.assign(var_d) + ds["mesh_node_x"].attrs["units"] = lenunits[self.lenuni] + ds["mesh_node_x"].attrs["standard_name"] = "projection_x_coordinate" + ds["mesh_node_x"].attrs["long_name"] = "Easting" + ds["mesh_node_y"].attrs["units"] = lenunits[self.lenuni] + ds["mesh_node_y"].attrs["standard_name"] = "projection_y_coordinate" + ds["mesh_node_y"].attrs["long_name"] = "Northing" + + # determine max number of cell vertices + cell_nverts = [cell2d[3] for cell2d in self.cell2d] + max_face_nodes = max(cell_nverts) + + # mesh face x and y + x_bnds = [] + for x in self.xvertices: + x = x[::-1] + if len(x) < max_face_nodes: + # TODO: set fill value? + x.extend([FILLNA_INT32] * (max_face_nodes - len(x))) + x_bnds.append(x) + + y_bnds = [] + for y in self.yvertices: + y = y[::-1] + if len(y) < max_face_nodes: + # TODO: set fill value? + y.extend([FILLNA_INT32] * (max_face_nodes - len(y))) + y_bnds.append(y) + + var_d = { + "mesh_face_x": (["nmesh_face"], self.xcellcenters), + "mesh_face_xbnds": (["nmesh_face", "max_nmesh_face_nodes"], x_bnds), + "mesh_face_y": (["nmesh_face"], self.ycellcenters), + "mesh_face_ybnds": (["nmesh_face", "max_nmesh_face_nodes"], y_bnds), + } + ds = ds.assign(var_d) + ds["mesh_face_x"].attrs["units"] = lenunits[self.lenuni] + ds["mesh_face_x"].attrs["standard_name"] = "projection_x_coordinate" + ds["mesh_face_x"].attrs["long_name"] = "Easting" + ds["mesh_face_x"].attrs["bounds"] = "mesh_face_xbnds" + ds["mesh_face_y"].attrs["units"] = lenunits[self.lenuni] + ds["mesh_face_y"].attrs["standard_name"] = "projection_y_coordinate" + ds["mesh_face_y"].attrs["long_name"] = "Northing" + ds["mesh_face_y"].attrs["bounds"] = "mesh_face_ybnds" + + # mesh face nodes + face_nodes = [] + for idx, r in enumerate(self.cell2d): + nodes = self.cell2d[idx][4 : 4 + r[3]] + nodes = [np.int32(x + 1) for x in nodes] + nodes.reverse() + if len(nodes) < max_face_nodes: + # TODO set fill value? + nodes.extend([FILLNA_INT32] * (max_face_nodes - len(nodes))) + face_nodes.append(nodes) + + var_d = { + "mesh_face_nodes": (["nmesh_face", "max_nmesh_face_nodes"], face_nodes), + } + ds = ds.assign(var_d) + ds["mesh_face_nodes"].attrs["cf_role"] = "face_node_connectivity" + ds["mesh_face_nodes"].attrs["long_name"] = ( + "Vertices bounding cell (counterclockwise)" + ) + ds["mesh_face_nodes"].attrs["_FillValue"] = FILLNA_INT32 + ds["mesh_face_nodes"].attrs["start_index"] = np.int32(1) + + wkt_configured = ( + configuration is not None + and "wkt" in configuration + and configuration["wkt"] is not None + ) + + if wkt_configured or self.crs is not None: + ds["mesh_node_x"].attrs["grid_mapping"] = "projection" + ds["mesh_node_y"].attrs["grid_mapping"] = "projection" + ds["mesh_face_x"].attrs["grid_mapping"] = "projection" + ds["mesh_face_y"].attrs["grid_mapping"] = "projection" + ds = ds.assign({"projection": ([], np.int32(1))}) + if wkt_configured: + # wkt override to existing crs + ds["projection"].attrs["wkt"] = configuration["wkt"] + else: + ds["projection"].attrs["wkt"] = self.crs.to_wkt() + + return ds + # initialize grid from a grb file @classmethod def from_binary_grid_file(cls, file_path, verbose=False): diff --git a/flopy/mf6/data/mfdataarray.py b/flopy/mf6/data/mfdataarray.py index e00c877b1..bfd18e9c5 100644 --- a/flopy/mf6/data/mfdataarray.py +++ b/flopy/mf6/data/mfdataarray.py @@ -734,6 +734,8 @@ def _get_data(self, layer=None, apply_mult=False, **kwargs): and kwargs["array"] and isinstance(self, MFTransientArray) and data is not [] # noqa: F632 + and not self._is_grid_aux() + and not "nodes" in self.structure.shape ): data = np.expand_dims(data, 0) return data @@ -919,6 +921,38 @@ def _set_data( return storage = self._get_storage_obj() + + def _aux_storage_set(layer_storage, layer_storage_data): + if ( + layer > 0 + and layer >= storage.layer_storage.get_total_size() + ): + storage.add_layer() + try: + storage.set_data( + layer_storage_data, + [layer_storage], + multiplier, + self._current_key, + preserve_record=preserve_record, + ) + except Exception as ex: + type_, value_, traceback_ = sys.exc_info() + raise MFDataException( + self.structure.get_model(), + self.structure.get_package(), + self._path, + "setting data", + self.structure.name, + inspect.stack()[0][3], + type_, + value_, + traceback_, + None, + self._simulation_data.debug, + ex, + ) + if self.structure.name == "aux" and layer is None: if isinstance(data, dict): aux_data = copy.deepcopy(data["data"]) @@ -936,48 +970,48 @@ def _set_data( aux_var_names = ( self.data_dimensions.package_dim.get_aux_variables() ) - if len(aux_data) == len(aux_var_names[0]) - 1: - for layer, aux_var_data in enumerate(aux_data): - if ( - layer > 0 - and layer >= storage.layer_storage.get_total_size() - ): - storage.add_layer() - if isinstance(data, dict): - # put layer data back in dictionary - layer_data = data - layer_data["data"] = aux_var_data - else: - layer_data = aux_var_data - try: - storage.set_data( - layer_data, - [layer], - multiplier, - self._current_key, - preserve_record=preserve_record, - ) - except Exception as ex: - type_, value_, traceback_ = sys.exc_info() - raise MFDataException( - self.structure.get_model(), - self.structure.get_package(), - self._path, - "setting data", - self.structure.name, - inspect.stack()[0][3], - type_, - value_, - traceback_, - None, - self._simulation_data.debug, - ex, - ) + if len(aux_data) == (len(aux_var_names[0]) - 1): + if self._is_grid_aux(): + modelgrid = self.data_dimensions.get_model_grid() + nlayer = modelgrid.num_layers() + + for iaux, grid_aux in enumerate(aux_data): + if nlayer == 1: + layer = iaux + if isinstance(data, dict): + # put layer data back in dictionary + layer_data = data + layer_data["data"] = grid_aux + else: + layer_data = grid_aux + + _aux_storage_set(layer, layer_data) + else: + for ilayer, aux_layer_data in enumerate(grid_aux): + layer = iaux * nlayer + ilayer + if isinstance(data, dict): + # put layer data back in dictionary + layer_data = data + layer_data["data"] = aux_layer_data + else: + layer_data = aux_layer_data + + _aux_storage_set(layer, layer_data) + else: + for layer, aux_var_data in enumerate(aux_data): + if isinstance(data, dict): + # put layer data back in dictionary + layer_data = data + layer_data["data"] = aux_var_data + else: + layer_data = aux_var_data + + _aux_storage_set(layer, layer_data) else: message = ( "Unable to set data for aux variable. " "Expected {} aux variables but got " - "{}.".format(len(aux_var_names[0]), len(data)) + "{}.".format(len(aux_var_names[0])-1, len(data)) ) type_, value_, traceback_ = sys.exc_info() raise MFDataException( @@ -1088,6 +1122,11 @@ def load( if self._layer_shape[-1] != model_grid.num_layers(): if model_grid.grid_type() == DiscretizationType.DISU: self._layer_shape = (1,) + #elif self._is_grid_aux(): + # self._layer_shape = ( + # model_grid.num_layers() * + # (len(self.data_dimensions.package_dim.get_aux_variables()[0]) - 1) + # ) else: self._layer_shape = (model_grid.num_layers(),) if self._layer_shape[-1] is None: @@ -1096,6 +1135,7 @@ def load( self._set_storage_obj( self._new_storage(shape_ml.get_total_size() != 1, True) ) + storage = self._get_storage_obj() if external_file_info is not None: storage.point_to_existing_external_file( @@ -1125,12 +1165,23 @@ def _is_layered_aux(self): # determine if this is the special aux variable case if ( self.structure.name.lower() == "aux" + #and not self.structure.layered and self._get_storage_obj().layered ): return True else: return False + def _is_grid_aux(self): + # determine if this is a full grid aux variable + if ( + self.structure.name.lower() == "aux" + and self.structure.layered + ): + return True + else: + return False + def get_file_entry( self, layer=None, ext_file_action=ExtFileAction.copy_relative_paths ): @@ -1160,11 +1211,12 @@ def _get_file_entry( if ( data_storage is None or data_storage.layer_storage.get_total_size() == 0 - or not data_storage.has_data() + or (not data_storage.has_data() and not data_storage.netcdf) ): return "" layered_aux = self._is_layered_aux() + grid_aux = self._is_grid_aux() # prepare indent indent = self._simulation_data.indent_string @@ -1206,7 +1258,7 @@ def _get_file_entry( f"{indent}{self.structure.name}{indent}{data}\n" ) elif data_storage.layered: - if not layered_aux: + if not layered_aux and not data_storage.netcdf: if not self.structure.data_item_structures[0].just_data: name = self.structure.name file_entry_array.append(f"{indent}{name}{indent}LAYERED\n") @@ -1241,20 +1293,55 @@ def _get_file_entry( layer_min = layer layer_max = shape_ml.inc_shape_idx(layer) - if layered_aux: + + if grid_aux: + modelgrid = self.data_dimensions.get_model_grid() + nlayer = modelgrid.num_layers() + aux_var_names = ( + self.data_dimensions.package_dim.get_aux_variables()[0] + ) + for iaux in range(0, len(aux_var_names)-1): + auxname = aux_var_names[iaux + 1] + if data_storage.netcdf: + if data_storage.has_data(): + file_entry_array.append(f"{indent}{auxname}{indent}NETCDF\n") + else: + if nlayer > 1: + file_entry_array.append(f"{indent}{auxname}{indent}LAYERED\n") + else: + file_entry_array.append(f"{indent}{auxname}\n") + for ilayer in range(nlayer): + sto_layer = iaux * nlayer + ilayer + file_entry_array.append( + self._get_file_entry_layer( + (sto_layer,), + data_indent, + data_storage.layer_storage[sto_layer].data_storage_type, + ext_file_action, + ) + ) + + elif layered_aux: aux_var_names = ( self.data_dimensions.package_dim.get_aux_variables()[0] ) for layer in range(0, len(aux_var_names)-1): - file_entry_array.append( - self._get_file_entry_layer( - [layer], - data_indent, - data_storage.layer_storage[layer].data_storage_type, - ext_file_action, - layered_aux, + if data_storage.netcdf: + if data_storage.has_data(): + file_entry_array.append(f"{indent}{aux_var_names[layer+1]}{indent}NETCDF\n") + else: + file_entry_array.append( + self._get_file_entry_layer( + [layer], + data_indent, + data_storage.layer_storage[layer].data_storage_type, + ext_file_action, + layered_aux, + ) ) - ) + + elif data_storage.netcdf: + file_entry_array.append(f"{indent}{self.structure.name}{indent}NETCDF\n") else: for layer in shape_ml.indexes(layer_min, layer_max): @@ -1274,15 +1361,18 @@ def _get_file_entry( file_entry_array.append( f"{indent}{self._get_aux_var_name([0])}\n" ) + elif data_storage.netcdf: + file_entry_array.append(f"{indent}{self.structure.name}{indent}NETCDF\n") else: file_entry_array.append(f"{indent}{self.structure.name}\n") data_storage_type = data_storage.layer_storage[0].data_storage_type - file_entry_array.append( - self._get_file_entry_layer( - None, data_indent, data_storage_type, ext_file_action + if not data_storage.netcdf: + file_entry_array.append( + self._get_file_entry_layer( + None, data_indent, data_storage_type, ext_file_action + ) ) - ) return "".join(file_entry_array) @@ -1395,6 +1485,9 @@ def _get_file_entry_layer( const_val, layer, self._data_type ).upper() file_entry = f"{file_entry}{indent_string}{const_str}" + elif self._get_storage_obj().netcdf: + indent = self._simulation_data.indent_string + file_entry = f"{indent}{self.structure.name}{indent_string}NETCDF\n" else: # external data ext_str = self._get_external_formatting_string( @@ -1590,6 +1683,17 @@ def plot( return axes + def _set_storage_netcdf(self, reset=False): + + if isinstance(self, MFTransientArray): + storage = self._get_storage_obj() + for key in self._data_storage.keys(): + self.get_data_prep(key) + self._data_storage[key]._set_storage_netcdf(reset=reset) + else: + storage = self._get_storage_obj() + storage._set_storage_netcdf(reset=reset) + class MFTransientArray(MFArray, MFTransient): """ @@ -1772,6 +1876,7 @@ def _get_array(self, num_sp, apply_mult, **kwargs): """ data = None output = None + baseshape = None for sp in range(0, num_sp): if sp in self._data_storage: self.get_data_prep(sp) @@ -1798,7 +1903,14 @@ def _get_array(self, num_sp, apply_mult, **kwargs): if output is None or data is None: output = data else: - output = np.concatenate((output, data)) + if np.all(data == None): + anone = np.full(baseshape, np.nan, np.float64) + output = np.append(output, anone, axis=0) + else: + if np.all(output == None): + baseshape = np.shape(data) + output = np.full(baseshape, np.nan, self.dtype) + output = np.concatenate((output, data)) return output def has_data(self, layer=None): diff --git a/flopy/mf6/data/mfdatastorage.py b/flopy/mf6/data/mfdatastorage.py index afcf2596a..a991cfc91 100644 --- a/flopy/mf6/data/mfdatastorage.py +++ b/flopy/mf6/data/mfdatastorage.py @@ -203,6 +203,8 @@ class DataStorage: what internal type is the data stored in (ndarray, recarray, scalar) layered : bool is the data layered + netcdf : bool + is the data stored in netcdf pre_data_comments : string any comments before the start of the data comments : dict @@ -327,6 +329,7 @@ def __init__( self.build_type_list(resolve_data_shape=False) self.layered = layered + self.netcdf = False # initialize comments self.pre_data_comments = None @@ -1014,6 +1017,14 @@ def _set_array( ): data = [data] + grid_aux = ( + self.data_dimensions.structure.name == "aux" + and self.data_dimensions.structure.layered + ) + if grid_aux: + model_grid = self.data_dimensions.get_model_grid() + nlay = model_grid.num_layers() + success = False if preserve_record: if isinstance(data, np.ndarray): @@ -1034,14 +1045,24 @@ def _set_array( elif isinstance(data, dict): first_key = list(data.keys())[0] if isinstance(first_key, int): - for layer_num, data_layer in data.items(): - success = self._set_array_layer( - data_layer, - layer_num, - multiplier, - key, - preserve_record, - ) + if grid_aux: + for l in range(nlay): + success = self._set_array_layer( + data[l], + layer, + multiplier, + key, + preserve_record, + ) + else: + for layer_num, data_layer in data.items(): + success = self._set_array_layer( + data_layer, + layer_num, + multiplier, + key, + preserve_record, + ) if not success: # storing while preserving the record failed, try storing as a @@ -1445,7 +1466,6 @@ def _resolve_data_line(self, data, key): for data_item_index, data_item in enumerate( struct.data_item_structures ): - print(data_item) if data_item.type == DatumType.keyword: if data_lst[0].lower() != data_item.name.lower(): data_lst_updated.append(data_item.name) @@ -1832,6 +1852,7 @@ def store_external( self._data_path, self._stress_period, ) + file_access.write_text_file( data, fp, @@ -1871,6 +1892,12 @@ def point_to_existing_external_file(self, arr_line, layer): self.set_ext_file_attributes(layer, data_file, print_format, binary) self.layer_storage[layer].factor = multiplier + def _set_storage_netcdf(self, reset=False): + if reset: + self.netcdf = False + else: + self.netcdf = True + def external_to_external( self, new_external_file, multiplier=None, layer=None, binary=None ): @@ -2346,6 +2373,21 @@ def _build_full_data(self, apply_multiplier=False): if self.data_structure_type == DataStructureType.scalar: return self.layer_storage.first_item().internal_data dimensions = self.get_data_dimensions(None) + layer_aux = ( + self.data_dimensions.structure.name == "aux" + and not self.data_dimensions.structure.layered + ) + grid_aux = ( + self.data_dimensions.structure.name == "aux" + and self.data_dimensions.structure.layered + ) + if grid_aux: + model_grid = self.data_dimensions.get_model_grid() + nlay = model_grid.num_layers() + package_dim = self.data_dimensions.package_dim + naux = len(package_dim.get_aux_variables()[0]) - 1 + if len(dimensions) <= 3 and dimensions[0] == nlay: + dimensions.insert(0, naux) if dimensions[0] < 0: # dimensions can not be determined from dfn file, use # the size of the data provided as the dimensions @@ -2399,6 +2441,12 @@ def _build_full_data(self, apply_multiplier=False): or not self._has_layer_dim() ): full_data = self.layer_storage[layer].internal_data * mult + elif grid_aux: + ilayer = (layer[0]) % nlay + iaux = int((layer[0]) / nlay) + full_data[iaux][ilayer] = ( + self.layer_storage[layer].internal_data * mult + ) else: full_data[layer] = ( self.layer_storage[layer].internal_data * mult @@ -2413,6 +2461,10 @@ def _build_full_data(self, apply_multiplier=False): or not self._has_layer_dim() ): full_data = self._fill_const_layer(layer) * mult + elif grid_aux: + ilayer = (layer[0]) % nlay + iaux = int((layer[0]) / nlay) + full_data[iaux][ilayer] = self._fill_const_layer(layer)[0] * mult else: full_data[layer] = self._fill_const_layer(layer) * mult else: @@ -2464,7 +2516,7 @@ def _build_full_data(self, apply_multiplier=False): full_data = data_out else: full_data[layer] = data_out - if is_aux: + if layer_aux: if full_data is not None: all_none = False aux_data.append(full_data) @@ -2473,7 +2525,7 @@ def _build_full_data(self, apply_multiplier=False): np.nan, self.data_dimensions.structure.get_datum_type(True), ) - if is_aux: + if layer_aux: if all_none: return None else: @@ -2991,10 +3043,8 @@ def _get_max_min_data_line_size(data): def get_data_dimensions(self, layer): data_dimensions = self.data_dimensions.get_data_shape()[0] - is_aux = self.data_dimensions.structure.name == "aux" if ( - not is_aux - and layer is not None + layer is not None and self.layer_storage.get_total_size() > 1 and self._has_layer_dim() ): diff --git a/flopy/mf6/data/mffileaccess.py b/flopy/mf6/data/mffileaccess.py index c4429a82a..d827b7189 100644 --- a/flopy/mf6/data/mffileaccess.py +++ b/flopy/mf6/data/mffileaccess.py @@ -742,6 +742,10 @@ def load_from_package( else: index_num = 0 aux_var_index = None + grid_aux = ( + self._data_dimensions.structure.name == "aux" + and self._data_dimensions.structure.layered + ) # TODO: Add species support # if layered supported, look for layered flag @@ -749,6 +753,7 @@ def load_from_package( if ( len(arr_line) > index_num and arr_line[index_num].lower() == "layered" + and not grid_aux ): storage.layered = True try: @@ -771,6 +776,18 @@ def load_from_package( ) if len(layers) > 0: storage.init_layers(layers) + + elif grid_aux: + storage.layered = True + auxidx = self._get_aux_var_index(arr_line[0]) + if auxidx == 0: + layers = ( + layer_shape[0] * + (len(self._data_dimensions.package_dim.get_aux_variables()[0]) - 1) + ) + while layers > storage.layer_storage.get_total_size(): + storage.add_layer() + elif aux_var_index is not None: # each layer stores a different aux variable layers = len(package_dim.get_aux_variables()[0]) - 1 @@ -778,6 +795,7 @@ def load_from_package( storage.layered = True while storage.layer_storage.list_shape[0] < layers: storage.add_layer() + else: storage.flatten() try: @@ -805,7 +823,17 @@ def load_from_package( for dimension in dimensions: layer_size *= dimension - if aux_var_index is None: + if grid_aux: + for l in range(layer_shape[0]): + self._load_layer( + (layer_shape[0] * auxidx + l,), + layer_size, + storage, + arr_line, + file_handle, + layer_shape, + ) + elif aux_var_index is None: # loop through the number of layers for layer in storage.layer_storage.indexes(): self._load_layer( diff --git a/flopy/mf6/data/mfstructure.py b/flopy/mf6/data/mfstructure.py index 3a44b4f9a..96e9819a1 100644 --- a/flopy/mf6/data/mfstructure.py +++ b/flopy/mf6/data/mfstructure.py @@ -460,6 +460,7 @@ def __init__(self): self.parameter_name = None self.one_per_pkg = False self.jagged_array = None + self.netcdf = False def set_value(self, line, common): arr_line = line.strip().split() @@ -634,6 +635,8 @@ def set_value(self, line, common): self.one_per_pkg = bool(arr_line[1]) elif arr_line[0] == "jagged_array": self.jagged_array = arr_line[1] + elif arr_line[0] == "netcdf": + self.netcdf = arr_line[1] def get_type_string(self): return f"[{self.type_string}]" @@ -936,6 +939,7 @@ def __init__(self, data_item, model_data, package_type, dfn_list): or "nodes" in data_item.shape or len(data_item.layer_dims) > 1 ) + self.netcdf = data_item.netcdf self.num_data_items = len(data_item.data_items) self.record_within_record = False self.file_data = False @@ -1579,6 +1583,7 @@ def __init__(self, dfn_file, path, common, model_file): self.description = "" self.path = path + (self.file_type,) self.model_file = model_file # file belongs to a specific model + self.read_array_grid = False self.read_as_arrays = False self.blocks, self.header = dfn_file.get_block_structure_dict( self.path, @@ -1817,22 +1822,26 @@ def get_data_structure(self, path): else: return None - def _tag_read_as_arrays(self): + def _tag_read_array(self): for pkg_spec in self.pkg_spec.values(): if ( - pkg_spec.get_data_structure(("options", "readasarrays")) - or pkg_spec.get_data_structure(("options", "readarraylayer")) - or pkg_spec.get_data_structure(("options", "readarraygrid")) + pkg_spec.get_data_structure(('options', 'readasarrays')) ): pkg_spec.read_as_arrays = True + elif ( + pkg_spec.get_data_structure(('options', 'readarraygrid')) + ): + pkg_spec.read_array_grid = True for mdl_spec in self.mdl_spec.values(): for pkg_spec in mdl_spec.pkg_spec.values(): if ( - pkg_spec.get_data_structure(("options", "readasarrays")) - or pkg_spec.get_data_structure(("options", "readarraylayer")) - or pkg_spec.get_data_structure(("options", "readarraygrid")) + pkg_spec.get_data_structure(('options', 'readasarrays')) ): pkg_spec.read_as_arrays = True + elif ( + pkg_spec.get_data_structure(('options', 'readarraygrid')) + ): + pkg_spec.read_array_grid = True class MFStructure: @@ -1876,4 +1885,4 @@ def _load(self): ] = entry[1:] # process each package self.sim_spec.register(Dfn(package)) - self.sim_spec._tag_read_as_arrays() + self.sim_spec._tag_read_array() diff --git a/flopy/mf6/mfbase.py b/flopy/mf6/mfbase.py index 27bc070f3..fa66005c1 100644 --- a/flopy/mf6/mfbase.py +++ b/flopy/mf6/mfbase.py @@ -27,6 +27,12 @@ class ReadAsArraysException(Exception): package. """ +class ReadArrayGridException(Exception): + """ + Exception occurs when loading ReadArrayGrid package as non-ReadArrayGrid + package. + """ + # external exceptions for users class FlopyException(Exception): diff --git a/flopy/mf6/mfmodel.py b/flopy/mf6/mfmodel.py index ab2a845f4..846d07db6 100644 --- a/flopy/mf6/mfmodel.py +++ b/flopy/mf6/mfmodel.py @@ -25,6 +25,7 @@ MFFileMgmt, PackageContainer, PackageContainerType, + ReadArrayGridException, ReadAsArraysException, VerbosityLevel, ) @@ -457,6 +458,11 @@ def modelgrid(self): if idomain is None: force_resync = True idomain = self._resolve_idomain(idomain, botm) + crs = self._modelgrid.crs + if crs is None and hasattr(dis, "crs"): + crs = dis.crs.get_data() + if crs is not None: + crs = crs[0][1] self._modelgrid = StructuredGrid( delc=dis.delc.array, delr=dis.delr.array, @@ -464,7 +470,7 @@ def modelgrid(self): botm=botm, idomain=idomain, lenuni=dis.length_units.array, - crs=self._modelgrid.crs, + crs=crs, xoff=self._modelgrid.xoffset, yoff=self._modelgrid.yoffset, angrot=self._modelgrid.angrot, @@ -495,6 +501,11 @@ def modelgrid(self): if idomain is None: force_resync = True idomain = self._resolve_idomain(idomain, botm) + crs = self._modelgrid.crs + if crs is None and hasattr(dis, "crs"): + crs = dis.crs.get_data() + if crs is not None: + crs = crs[0][1] self._modelgrid = VertexGrid( vertices=dis.vertices.array, cell2d=dis.cell2d.array, @@ -502,7 +513,7 @@ def modelgrid(self): botm=botm, idomain=idomain, lenuni=dis.length_units.array, - crs=self._modelgrid.crs, + crs=crs, xoff=self._modelgrid.xoffset, yoff=self._modelgrid.yoffset, angrot=self._modelgrid.angrot, @@ -524,6 +535,11 @@ def modelgrid(self): idomain = dis.idomain.array if idomain is None: idomain = np.ones(dis.nodes.array, dtype=int) + crs = self._modelgrid.crs + if crs is None and hasattr(dis, "crs"): + crs = dis.crs.get_data() + if crs is not None: + crs = crs[0][1] if cell2d is None: if ( self.simulation.simulation_data.verbosity_level.value @@ -556,7 +572,7 @@ def modelgrid(self): idomain=idomain, lenuni=dis.length_units.array, ncpl=ncpl, - crs=self._modelgrid.crs, + crs=crs, xoff=self._modelgrid.xoffset, yoff=self._modelgrid.yoffset, angrot=self._modelgrid.angrot, @@ -589,6 +605,11 @@ def modelgrid(self): if idomain is None: force_resync = True idomain = self._resolve_idomain(idomain, botm) + crs = self._modelgrid.crs + if crs is None and hasattr(dis, "crs"): + crs = dis.crs.get_data() + if crs is not None: + crs = crs[0][1] self._modelgrid = VertexGrid( vertices=dis.vertices.array, cell1d=dis.cell1d.array, @@ -596,7 +617,7 @@ def modelgrid(self): botm=botm, idomain=idomain, lenuni=dis.length_units.array, - crs=self._modelgrid.crs, + crs=crs, xoff=self._modelgrid.xoffset, yoff=self._modelgrid.yoffset, angrot=self._modelgrid.angrot, @@ -627,6 +648,11 @@ def modelgrid(self): if idomain is None: force_resync = True idomain = self._resolve_idomain(idomain, botm) + crs = self._modelgrid.crs + if crs is None and hasattr(dis, "crs"): + crs = dis.crs.get_data() + if crs is not None: + crs = crs[0][1] self._modelgrid = StructuredGrid( delc=dis.delc.array, delr=dis.delr.array, @@ -634,7 +660,7 @@ def modelgrid(self): botm=botm, idomain=idomain, lenuni=dis.length_units.array, - crs=self._modelgrid.crs, + crs=crs, xoff=self._modelgrid.xoffset, yoff=self._modelgrid.yoffset, angrot=self._modelgrid.angrot, @@ -665,6 +691,11 @@ def modelgrid(self): if idomain is None: force_resync = True idomain = self._resolve_idomain(idomain, botm) + crs = self._modelgrid.crs + if crs is None and hasattr(dis, "crs"): + crs = dis.crs.get_data() + if crs is not None: + crs = crs[0][1] self._modelgrid = VertexGrid( vertices=dis.vertices.array, cell2d=dis.cell2d.array, @@ -672,7 +703,7 @@ def modelgrid(self): botm=botm, idomain=idomain, lenuni=dis.length_units.array, - crs=self._modelgrid.crs, + crs=crs, xoff=self._modelgrid.xoffset, yoff=self._modelgrid.yoffset, angrot=self._modelgrid.angrot, @@ -931,6 +962,14 @@ def load_base( # load name file instance.name_file.load(strict) + if hasattr(instance.name_file, "nc_filerecord"): + nc_filerecord = instance.name_file.nc_filerecord.get_data() + if nc_filerecord: + message = ( + "NetCDF input file is currently unsupported " + f"for model load ({modelname})." + ) + raise FlopyException(message) # order packages # FIX: Transport - Priority packages maybe should not be hard coded @@ -1299,7 +1338,11 @@ def _format_data_entry(data_entry): else: return f",{data_entry}\n" - def write(self, ext_file_action=ExtFileAction.copy_relative_paths): + def write( + self, + ext_file_action=ExtFileAction.copy_relative_paths, + netcdf=None, + ): """ Writes out model's package files. @@ -1309,9 +1352,24 @@ def write(self, ext_file_action=ExtFileAction.copy_relative_paths): Defines what to do with external files when the simulation path has changed. defaults to copy_relative_paths which copies only files with relative paths, leaving files defined by absolute paths fixed. - + netcdf : str + ASCII package files will be written as configured for NetCDF input. + 'layered', 'structured' and '' (empty string) are supported arguments. """ + write_netcdf = ( + hasattr(self.name_file, "nc_filerecord") + and netcdf is not None + ) + + if write_netcdf: + # update name file for input even if "" is configured + nc_fname = None + if self.name_file.nc_filerecord.get_data() is None: + # update name file for netcdf input + nc_fname = f"{self.name}.input.nc" + self.name_file.nc_filerecord = nc_fname + # write name file if ( self.simulation_data.verbosity_level.value @@ -1330,6 +1388,9 @@ def write(self, ext_file_action=ExtFileAction.copy_relative_paths): # write packages for pp in self.packagelist: + if write_netcdf: + # set data storage to write ascii for netcdf + pp._set_netcdf_storage() if ( self.simulation_data.verbosity_level.value >= VerbosityLevel.normal.value @@ -1337,6 +1398,17 @@ def write(self, ext_file_action=ExtFileAction.copy_relative_paths): print(f" writing package {pp._get_pname()}...") pp.write(ext_file_action=ext_file_action) + # reset data storage + pp._set_netcdf_storage(reset=True) + + # write netcdf file + if write_netcdf: + if netcdf != "": + self._write_netcdf(mesh=netcdf) + if nc_fname is not None: + self.name_file.nc_filerecord = None + + def get_grid_type(self): """ Return the type of grid used by model 'model_name' in simulation @@ -1997,9 +2069,12 @@ def register_package( pkg_type = package.package_type.upper() if ( package.package_type != "obs" and + (self.structure.pkg_spec[ + package.package_type + ].read_as_arrays or self.structure.pkg_spec[ package.package_type - ].read_as_arrays + ].read_array_grid) ): pkg_type = pkg_type[0:-1] # Model Assumption - assuming all name files have a package @@ -2123,11 +2198,17 @@ def load_package( ) try: package.load(strict) - except ReadAsArraysException: + except (ReadAsArraysException, ReadArrayGridException) as e: # create ReadAsArrays package and load it instead - package_obj = PackageContainer.package_factory( - f"{ftype}a", model_type - ) + if isinstance(e, ReadAsArraysException): + package_obj = PackageContainer.package_factory( + f"{ftype}a", model_type + ) + # create ReadArrayGrid package and load it instead + elif isinstance(e, ReadArrayGridException): + package_obj = PackageContainer.package_factory( + f"{ftype}g", model_type + ) package = package_obj( self, filename=fname, @@ -2194,3 +2275,193 @@ def _resolve_idomain(idomain, botm): else: return np.ones_like(botm) return idomain + + @staticmethod + def netcdf_model(mname, mtype, grid_type, mesh=None): + """Return dictionary of dataset (model) scoped attributes + Parameters + ---------- + mname : str + model name + mtype : str + model type, e.g. GWF6 + grid_type: + DiscretizationType + mesh : str + mesh type if dataset is ugrid compliant + """ + attrs = { + "modflow_grid": "", + "modflow_model": "", + } + if grid_type == DiscretizationType.DIS: + attrs["modflow_grid"] = "STRUCTURED" + elif grid_type == DiscretizationType.DISV: + attrs["modflow_grid"] = "VERTEX" + + attrs["modflow_model"] = f"{mtype.upper()}: {mname.upper()}" + + # supported => LAYERED + if mesh: + attrs["mesh"] = mesh.upper() + + return {"attrs": attrs} + + def netcdf_meta(self, mesh=None): + """Return dictionary of dataset (model) scoped attributes + Parameters + ---------- + mesh : str + mesh type if dataset is ugrid compliant + """ + return MFModel.netcdf_model( + self.name, self.model_type, self.get_grid_type(), mesh + ) + + def update_dataset(self, dataset, netcdf_meta=None, mesh=None, update_data=True): + if netcdf_meta is None: + nc_meta = self.netcdf_meta(mesh=mesh) + else: + nc_meta = netcdf_meta + + if ( + self.simulation.simulation_data.verbosity_level.value + >= VerbosityLevel.normal.value + ): + print(f" updating model dataset...") + + for a in nc_meta["attrs"]: + dataset.attrs[a] = nc_meta["attrs"][a] + + # add all packages and update data + for p in self.packagelist: + # add package var to dataset + if ( + self.simulation.simulation_data.verbosity_level.value + >= VerbosityLevel.normal.value + ): + print(f" updating dataset for package {p._get_pname()}...") + dataset = p.update_dataset(dataset, mesh=mesh, update_data=update_data) + + return dataset + + def _write_netcdf(self, mesh=None): + import datetime + + from ..version import __version__ + if mesh is not None and mesh.upper() == "STRUCTURED": + mesh = None + + config = {} + for pp in self.packagelist: + if pp.package_type == "ncf": + config["shuffle"] = pp.shuffle.get_data() + config["deflate"] = pp.deflate.get_data() + config["chunk_time"] = pp.chunk_time.get_data() + config["chunk_face"] = pp.chunk_face.get_data() + config["chunk_x"] = pp.chunk_x.get_data() + config["chunk_y"] = pp.chunk_y.get_data() + config["chunk_z"] = pp.chunk_z.get_data() + wkt = pp.wkt.get_data() + if wkt is not None: + wkt = wkt[0][1] + config["wkt"] = wkt + config["latitude"] = pp.latitude.get_data() + config["longitude"] = pp.longitude.get_data() + + if ( + self.simulation.simulation_data.verbosity_level.value + >= VerbosityLevel.normal.value + ): + print(f" creating model dataset...") + + ds = self.modelgrid.dataset( + modeltime=self.modeltime, + mesh=mesh, + configuration=config, + ) + + dt = datetime.datetime.now() + timestamp = dt.strftime("%m/%d/%Y %H:%M:%S") + + nc_meta = self.netcdf_meta(mesh=mesh) + nc_meta["attrs"]["title"] = f"{self.name.upper()} input" + nc_meta["attrs"]["source"] = f"flopy {__version__}" + nc_meta["attrs"]["history"] = f"first created {timestamp}" + if mesh is None: + nc_meta["attrs"]["Conventions"] = "CF-1.11" + elif mesh.upper() == "LAYERED": + nc_meta["attrs"]["Conventions"] = "CF-1.11 UGRID-1.0" + + ds = self.update_dataset( + ds, + netcdf_meta=nc_meta, + mesh=mesh, + ) + + chunk = False + chunk_t = False + if mesh is None: + if ( + "chunk_x" in config + and config["chunk_x"] is not None + and "chunk_y" in config + and config["chunk_y"] is not None + and "chunk_z" in config + and config["chunk_z"] is not None + ): + chunk = True + elif mesh.upper() == "LAYERED": + if "chunk_face" in config and config["chunk_face"] is not None: + chunk = True + if "chunk_time" in config and config["chunk_time"] is not None: + chunk_t = True + + base_encode = {} + if "deflate" in config and config["deflate"] is not None: + base_encode["zlib"] = True + base_encode["complevel"] = config["deflate"] + if "shuffle" in config and config["deflate"] is not None: + base_encode["shuffle"] = True + + encoding = {} + chunk_dims = {'time', 'nmesh_face', 'z', 'y', 'x'} + for varname, da in ds.data_vars.items(): + dims = ds.data_vars[varname].dims + encode = dict(base_encode) + if ( + not set(dims).issubset(chunk_dims) + or not chunk or not chunk_t + ): + encoding[varname] = encode + continue + chunksizes = [] + if "time" in dims: + chunksizes.append(config["chunk_time"]) + if mesh is None: + if "z" in dims: + chunksizes.append(config["chunk_z"]) + if "y" in dims: + chunksizes.append(config["chunk_y"]) + if "x" in dims: + chunksizes.append(config["chunk_x"]) + elif mesh.upper() == "LAYERED" and "nmesh_face" in dims: + chunksizes.append(config["chunk_face"]) + if len(chunksizes) > 0: + encode["chunksizes"] = chunksizes + encoding[varname] = encode + + fname = self.name_file.nc_filerecord.get_data()[0][0] + + if ( + self.simulation.simulation_data.verbosity_level.value + >= VerbosityLevel.normal.value + ): + print(f" writing NetCDF file {fname}...") + # write dataset to netcdf + ds.to_netcdf( + os.path.join(self.model_ws, fname), + format="NETCDF4", + engine="netcdf4", + encoding=encoding, + ) diff --git a/flopy/mf6/mfpackage.py b/flopy/mf6/mfpackage.py index 702becfcc..266872df4 100644 --- a/flopy/mf6/mfpackage.py +++ b/flopy/mf6/mfpackage.py @@ -33,6 +33,7 @@ MFInvalidTransientBlockHeaderException, PackageContainer, PackageContainerType, + ReadArrayGridException, ReadAsArraysException, VerbosityLevel, ) @@ -855,6 +856,7 @@ def load(self, block_header, fd, strict=True): # handle special readasarrays case if ( self._container_package.structure.read_as_arrays + or self._container_package.structure.read_array_grid or ( hasattr(self._container_package, "aux") and self._container_package.aux.structure.layered @@ -1132,6 +1134,17 @@ def _find_data_by_keyword(self, line, fd, initial_comment): "package {}".format(self.path) ) raise ReadAsArraysException(error_msg) + elif ( + arr_line[0].lower() == "readarraygrid" + and self.path[-1].lower() == "options" + and self._container_package.structure.read_array_grid is False + ): + error_msg = ( + "ERROR: Attempting to read a ReadArrayGrid " + "package as a non-ReadArrayGrid " + "package {}".format(self.path) + ) + raise ReadArrayGridException(error_msg) else: nothing_found = True @@ -1686,6 +1699,34 @@ def is_valid(self): if dataset.enabled and not dataset.is_valid(): return False + def _set_netcdf_storage(self, reset=False): + """Set the dataset storage to netcdf if supported for the dataset. + + Parameters + ---------- + reset : bool + reset netcdf storage to not set. + + """ + + for key, dataset in self.datasets.items(): + if ( + isinstance(dataset, mfdataarray.MFArray) + or isinstance(dataset, mfdataarray.MFTransientArray) + ): + if dataset.structure.netcdf and dataset.has_data(): + try: + dataset._set_storage_netcdf(reset) + except MFDataException as mfde: + raise MFDataException( + mfdata_except=mfde, + model=self._container_package.model_name, + package=self._container_package._get_pname(), + message="Error setting netcdf storage: " + ' data of dataset "{}" in block ' + '"{}"'.format(dataset.structure.name, self.structure.name), + ) + class MFPackage(PackageInterface): """ @@ -3424,6 +3465,366 @@ def plot(self, **kwargs): axes = PlotUtilities._plot_package_helper(self, **kwargs) return axes + @staticmethod + def _add_netcdf_entries( + entries, mname, pname, data_item, auxiliary=None, mesh=None, nlay=1 + ): + DNODATA = 3.0e30 # MF6 DNODATA constant + FILLNA_INT32 = np.int32(-2147483647) # netcdf-fortran NF90_FILL_INT + FILLNA_DBL = 9.96920996838687e36 # netcdf-fortran NF90_FILL_DOUBLE + + if auxiliary: + auxnames = auxiliary + else: + auxnames = [] + + def _add_entry(tagname, iaux=None, layer=None): + + # netcdf variable dictionary + e = {} + + # set dict key and netcdf variable name + key = tagname + name = f"{pname}" + if iaux is not None: + key = f"{key}/{iaux}" + name = f"{name}_{auxiliary[iaux]}" + else: + name = f"{name}_{tagname}" + if layer is not None: + key = f"{key}/layer{layer}" + name = f"{name}_l{layer}" + + # add non-attrs to dictionary + e["varname"] = name.lower() + if (data_item.type) == DatumType.integer: + e["xarray_type"] = np.int32 + elif (data_item.type) == DatumType.double_precision: + e["xarray_type"] = np.float64 + dims = [] + if data_item.shape[0] == 'nodes': + if data_item.block_name == "griddata": + if mesh is None: + dims += ["x", "y", "z"] + elif mesh.upper() == "LAYERED": + dims += ["nmesh_face"] + elif data_item.block_name == "period": + if mesh is None: + dims += ["x", "y", "z", "time"] + elif mesh.upper() == "LAYERED": + dims += ["nmesh_face", "time"] + elif ( + data_item.block_name == "period" and + 'ncpl' in data_item.shape + ): + if mesh is None: + dims += ["x", "y", "time"] + elif mesh.upper() == "LAYERED": + dims += ["nmesh_face", "time"] + else: + if mesh is None: + dimmap = {"nlay": "z", "nrow": "y", "ncol": "x"} + for s in data_item.shape: + for k, v in dimmap.items(): + s = s.replace(k, v) + dims.append(s) + elif mesh.upper() == "LAYERED": + if ( + len(data_item.shape) == 3 or + len(data_item.shape) == 2 or + data_item.shape[0] == 'ncpl' + ): + dims.append("nmesh_face") + elif data_item.shape[0] == 'ncol': + dims.append("x") + elif data_item.shape[0] == 'nrow': + dims.append("y") + + e["netcdf_shape"] = dims[::-1] + + # add variable attributes dictionary + e["attrs"] = {} + e["attrs"]["modflow_input"] = (f"{mname}/{pname}/{tagname}").upper() + if iaux is not None: + e["attrs"]["modflow_iaux"] = iaux + 1 + if layer is not None: + e["attrs"]["layer"] = layer + if (data_item.type) == DatumType.integer: + e["attrs"]["_FillValue"] = FILLNA_INT32 + elif (data_item.type) == DatumType.double_precision: + if data_item.block_name == "griddata": + e["attrs"]["_FillValue"] = FILLNA_DBL + elif data_item.block_name == "period": + e["attrs"]["_FillValue"] = DNODATA + if data_item.longname is not None: + if layer is not None: + e["attrs"]["longname"] = f"{data_item.longname} layer {layer}" + else: + e["attrs"]["longname"] = data_item.longname + + # set dictionary + entries[key] = e + + if data_item.layered and mesh and mesh.upper() == "LAYERED": + if data_item.name == "aux" or data_item.name == "auxvar": + for n, auxname in enumerate(auxnames): + for l in range(nlay): + _add_entry(data_item.name, n, l + 1) + else: + for l in range(nlay): + _add_entry(data_item.name, layer=l + 1) + else: + if data_item.name == "aux" or data_item.name == "auxvar": + for n, auxname in enumerate(auxnames): + _add_entry(data_item.name, iaux=n) + else: + _add_entry(data_item.name) + + @staticmethod + def netcdf_package(mtype, ptype, auxiliary=None, mesh=None, nlay=1): + from .data.mfstructure import Dfn, MFSimulationStructure + + entries = {} + sim_spec = MFSimulationStructure() + + for package in MFPackage.__subclasses__(): + p = Dfn(package) + c, sc = p.dfn_file_name.split(".")[0].split("-") + if c == mtype.lower() and sc == ptype.lower(): + sim_spec.register(Dfn(package)) + break + + pkg_spec = None + if f"{mtype.lower()}6" in sim_spec.mdl_spec: + mdl_spec = sim_spec.mdl_spec[f"{mtype.lower()}6"] + if f"{ptype.lower()}" in mdl_spec.pkg_spec: + pkg_spec = mdl_spec.pkg_spec[f"{ptype.lower()}"] + if pkg_spec is not None: + if pkg_spec.multi_package_support: + pname = f"<{ptype}name>" + else: + pname = ptype + for key, block in pkg_spec.blocks.items(): + if key != "griddata" and key != "period": + continue + for d in block.data_structures: + if block.data_structures[d].netcdf: + MFPackage._add_netcdf_entries( + entries, + f"<{mtype}name>", + pname, + block.data_structures[d], + auxiliary, + mesh, + nlay, + ) + + return entries + + def netcdf_meta(self, mesh=None): + entries = {} + + if self.dimensions.get_aux_variables(): + auxnames = list(self.dimensions.get_aux_variables()[0]) + if len(auxnames) > 0 and auxnames[0] == "auxiliary": + auxnames.pop(0) + else: + auxnames = [] + + for key, block in self.blocks.items(): + if key != "griddata" and key != "period": + continue + for dataset in block.datasets.values(): + if isinstance(dataset, mfdataarray.MFArray): + for index, data_item in enumerate( + dataset.structure.data_item_structures + ): + if dataset.structure.netcdf and dataset.has_data(): + MFPackage._add_netcdf_entries( + entries, + self.model_name, + self.package_name, + dataset.structure, + auxnames, + mesh, + self.model_or_sim.modelgrid.nlay, + ) + + return entries + + def update_dataset(self, dataset, netcdf_meta=None, mesh=None, update_data=True): + from ..discretization.structuredgrid import StructuredGrid + if netcdf_meta is None: + nc_meta = self.netcdf_meta(mesh=mesh) + else: + nc_meta = netcdf_meta + + modelgrid = self.model_or_sim.modelgrid + modeltime = self.model_or_sim.modeltime + + dimmap = { + "time": sum(modeltime.nstp), + "z": modelgrid.nlay, + "nmesh_face": modelgrid.ncpl, + "ncpl": modelgrid.ncpl, + } + + if isinstance(modelgrid, StructuredGrid): + dimmap["y"] = modelgrid.nrow + dimmap["x"] = modelgrid.ncol + + def _update_layered(key, iaux, dobj=None, data=None): + if "layer" in nc_meta[key]["attrs"]: + layer = nc_meta[key]["attrs"]["layer"] - 1 + else: + layer = -1 + + if not dobj.repeating: + if layer >= 0 and ( + 'nlay' in dobj.structure.shape or + dobj.structure.shape[0] == 'nodes'): + dataset[nc_meta[key]["varname"]].values = ( + data[layer].flatten()) + else: + dataset[nc_meta[key]["varname"]].values = ( + data.flatten()) + return + + if iaux >= 0: + for per in data: + if data[per] is None: + continue + auxdata = data[per][iaux] + istp = sum(modeltime.nstp[0:per]) + if self.structure.read_as_arrays: + dataset[nc_meta[key]["varname"]].values[istp, :] = ( + auxdata.flatten()) + elif self.structure.read_array_grid: + uidx = istp + auxdata[layer].size + if modelgrid.nlay > 1: + dataset[nc_meta[key]["varname"]].values[istp, :] = ( + auxdata[layer].flatten()) + else: + dataset[nc_meta[key]["varname"]].values[istp, :] = ( + auxdata.flatten()) + else: + for per in data: + if data[per] is None: + continue + istp = sum(modeltime.nstp[0:per]) + if layer >= 0 and ( + len(dobj.structure.shape) == 3 or + dobj.structure.shape[0] == 'nodes'): + dataset[nc_meta[key]["varname"]].values[istp, :] = ( + data[per][layer].flatten()) + else: + if ( + dobj.structure.data_item_structures[0].numeric_index or + dobj.structure.data_item_structures[0].is_cellid): + dataset[nc_meta[key]["varname"]].values[istp, :] = ( + data[per].flatten() + 1) + else: + dataset[nc_meta[key]["varname"]].values[istp, :] = ( + data[per].flatten()) + + def _update_structured(key, iaux, dobj=None, data=None): + if not dobj.repeating: + dataset[nc_meta[key]["varname"]].values = data + return + + if iaux >= 0: + for per in data: + if data[per] is None: + continue + istp = sum(modeltime.nstp[0:per]) + auxdata = data[per][iaux] + dataset[nc_meta[key]["varname"]].values[istp, :] = ( + auxdata) + else: + for per in data: + if data[per] is None: + continue + istp = sum(modeltime.nstp[0:per]) + if ( + dobj.structure.data_item_structures[0].numeric_index or + dobj.structure.data_item_structures[0].is_cellid): + dataset[nc_meta[key]["varname"]].values[istp, :] = ( + data[per] + 1) + else: + dataset[nc_meta[key]["varname"]].values[istp, :] = ( + data[per]) + + def _update_data(key, dobj=None, data=None): + if "modflow_iaux" in nc_meta[key]["attrs"]: + iaux = nc_meta[key]["attrs"]["modflow_iaux"] - 1 + else: + iaux = -1 + if mesh == None: + _update_structured(key, iaux, dobj, data) + elif mesh.upper() == "LAYERED": + _update_layered(key, iaux, dobj, data) + + def _data_shape(shape): + dims_l = [] + for d in shape: + dims_l.append(dimmap[d]) + + return dims_l + + projection = "projection" in dataset.data_vars + latlon = "lat" in dataset.data_vars and "lon" in dataset.data_vars + + last_path = '' + pitem = None + pdata = None + for v in nc_meta: + varname = nc_meta[v]["varname"] + data = np.full( + _data_shape(nc_meta[v]["netcdf_shape"]), + nc_meta[v]["attrs"]["_FillValue"], + dtype=nc_meta[v]["xarray_type"], + ) + var_d = {varname: (nc_meta[v]["netcdf_shape"], data)} + dataset = dataset.assign(var_d) + for a in nc_meta[v]["attrs"]: + dataset[varname].attrs[a] = nc_meta[v]["attrs"][a] + dims = dataset[varname].dims + if projection: + if "nmesh_face" in dims or "nmesh_node" in dims: + dataset[varname].attrs["grid_mapping"] = "projection" + dataset[varname].attrs["coordinates"] = "mesh_face_x mesh_face_y" + elif mesh is None and len(dims) > 1: + dataset[varname].attrs["grid_mapping"] = "projection" + dataset[varname].attrs["coordinates"] = "x y" + elif latlon and mesh is None and len(dims) > 1: + dataset[varname].attrs["coordinates"] = "lon lat" + + if update_data: + path = nc_meta[v]["attrs"]["modflow_input"] + tag = path.split("/")[2].lower() + if path != last_path: + pitem = getattr(self, tag) + pdata = pitem.get_data() + last_path = path + _update_data(v, pitem, pdata) + + return dataset + + def _set_netcdf_storage(self, reset=False): + """set array dataset storage to netcdf. + + Parameters + ---------- + reset : bool + reset netcdf storage to not set. + + """ + + # update blocks + for key, block in self.blocks.items(): + if key == "griddata" or key == "period": + block._set_netcdf_storage(reset) + class MFChildPackages: """ diff --git a/flopy/mf6/mfsimbase.py b/flopy/mf6/mfsimbase.py index ae81b91bb..90eaaa2da 100644 --- a/flopy/mf6/mfsimbase.py +++ b/flopy/mf6/mfsimbase.py @@ -1657,7 +1657,10 @@ def set_all_data_internal(self, check_data=True): package.set_all_data_internal(check_data) def write_simulation( - self, ext_file_action=ExtFileAction.copy_relative_paths, silent=False + self, + ext_file_action=ExtFileAction.copy_relative_paths, + silent=False, + netcdf=None, ): """ Write the simulation to files. @@ -1670,6 +1673,9 @@ def write_simulation( by absolute paths fixed. silent : bool Writes out the simulation in silent mode (verbosity_level = 0) + netcdf : str + ASCII package files will be written as configured for NetCDF input. + 'layered', 'structured' and '' (empty string) are supported arguments. """ sim_data = self.simulation_data @@ -1737,7 +1743,10 @@ def write_simulation( >= VerbosityLevel.normal.value ): print(f" writing model {model.name}...") - model.write(ext_file_action=ext_file_action) + model.write( + ext_file_action=ext_file_action, + netcdf=netcdf, + ) self.simulation_data.mfpath.set_last_accessed_path() diff --git a/flopy/mf6/utils/codegen/__init__.py b/flopy/mf6/utils/codegen/__init__.py index e70f86b5e..762fcdba8 100644 --- a/flopy/mf6/utils/codegen/__init__.py +++ b/flopy/mf6/utils/codegen/__init__.py @@ -23,6 +23,7 @@ def _get_template_env(developmode: bool = True): env.filters["base"] = filters.base env.filters["title"] = filters.title env.filters["description"] = filters.description + env.filters["longname"] = filters.longname env.filters["prefix"] = filters.prefix env.filters["parent"] = filters.parent env.filters["skip_init"] = filters.skip_init diff --git a/flopy/mf6/utils/codegen/filters.py b/flopy/mf6/utils/codegen/filters.py index 5851b4604..f08d04a23 100644 --- a/flopy/mf6/utils/codegen/filters.py +++ b/flopy/mf6/utils/codegen/filters.py @@ -102,6 +102,12 @@ def dfn_file_name(component_name: tuple[str, str]) -> str: return f"gwt-{component_name[1]}.dfn" return f"{component_name[0] or 'sim'}-{component_name[1]}.dfn" +def longname(var: dict) -> Any: + _longname = var.get("longname", None) + if _longname is not None: + return _longname + return None + def parent(dfn: dict, component_name: tuple[str, str]) -> str: # TODO should be no longer needed when parents are explicit in dfns """The input context's parent context type, if it can have a parent.""" @@ -320,7 +326,7 @@ def _meta(): def __dfn(): def _var(var: dict) -> List[str]: - exclude = ["longname", "description"] + exclude = ["description"] name = var["name"] subpkg = dfn.get("fkeys", dict()).get(name, None) if subpkg: diff --git a/flopy/utils/datautil.py b/flopy/utils/datautil.py index 011a4323d..e198773d4 100644 --- a/flopy/utils/datautil.py +++ b/flopy/utils/datautil.py @@ -305,6 +305,7 @@ def reset_delimiter_used(): @staticmethod def split_data_line(line, external_file=False, delimiter_conf_length=15): + no_split_keys = ["crs", "wkt"] if PyListUtil.line_num > delimiter_conf_length and PyListUtil.consistent_delim: # consistent delimiter has been found. continue using that # delimiter without doing further checks @@ -358,7 +359,11 @@ def split_data_line(line, external_file=False, delimiter_conf_length=15): max_split_size = len(max_split_list) max_split_type = "combo" - if max_split_type is not None and max_split_size > 1: + if ( + max_split_type is not None + and max_split_size > 1 + and clean_line[0].lower() not in no_split_keys + ): clean_line = max_split_list if PyListUtil.line_num == 0: PyListUtil.delimiter_used = max_split_type diff --git a/pyproject.toml b/pyproject.toml index be5c8da9a..2185126b4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -84,7 +84,8 @@ optional = [ "vtk >=9.4.0", "xmipy", "h5py", - "scikit-learn" + "scikit-learn", + "xarray", ] doc = [ "flopy[optional]",