Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test(test000_setup): fallback for when os.path.relpath throws #45

Merged
merged 1 commit into from
Apr 4, 2019

Conversation

visr
Copy link
Contributor

@visr visr commented Oct 4, 2018

Happens on Windows only. It is only used for logging, so no functional change.

Example of issue:

>>> import os
>>> os.getcwd()[:2]
'D:'
>>> os.path.relpath("C:\\tmp")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\bin\Miniconda3\lib\ntpath.py", line 586, in relpath
    path_drive, start_drive))
ValueError: path is on mount 'C:', start on mount 'D:'
>>> os.path.relpath("D:\\tmp")
'..\\..\\tmp'

And the new behavior:

>>> relpath_fallback("D:\\tmp")
'..\\..\\tmp'
>>> relpath_fallback("C:\\tmp")
'C:\\tmp'

@visr
Copy link
Contributor Author

visr commented Oct 10, 2018

Travis failure is unrelated, perhaps it should be restarted, and hope these packages are properly cached now.

Get:70 http:https://us-central1.gce.archive.ubuntu.com/ubuntu trusty/universe amd64 texlive-fonts-extra all 2013.20140215-2 [172 MB]
No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself.

Happens on Windows only. It is only used for logging, so no functional change.
@visr
Copy link
Contributor Author

visr commented Apr 2, 2019

Rebased. Test are passing now.

@langevin-usgs langevin-usgs merged commit 112f578 into MODFLOW-USGS:develop Apr 4, 2019
@visr visr deleted the relpath branch May 16, 2019 12:47
langevin-usgs added a commit that referenced this pull request Sep 30, 2019
* fix(ci): fix to pre-commit when working on a fork

* fix(update_flopy): there is a new flopy.dfn file that cannot be removed (#112)

* refactor(tests): to work with recent flopy changes (#113)

* refactor(tests): to work with recent flopy changes

* fix(test_gwf_utl02): added the time series filename due to possible bug in flopy

* fix(disvdfn): corrected top shape to (ncpl) (#115)

* refactor(test000_setup.py): cleaning up the build process using new pymake functionality (#117)

* fix(dis/disv):  terminate with error if all IDOMAIN values less than or equal to zero (#124)

* fix(dis/disv):  terminate with error if all IDOMAIN values less than or equal to zero

* couple fixes to get tests running with new flopy code

* refactor(make-release): refactor updates to version numbers (#126)

* test(test000_setup): fallback for when os.path.relpath throws (#45)

Happens on Windows only. It is only used for logging, so no functional change.

* test(idomain): add zero idomain autotest (#129)

* fix(mover): added better error trapping for mover entries (#131)

* fix(mover): added better error trapping for mover entries

* more refactoring to eliminate use of memory manager in the mover object

* added characters to error message line length in memory manager

* Added mover test with a variety of mover options active

* some final cleanups on this mover patch

closes #130 

This required some fairly substantial refactoring of the mover object.  Instead of looking up information in the memory manager, the mover object is now passed packagemover objects, which should be much more efficient.

* test(returncodes): add mf6 return codes and command args autotest (#132)

Add mf6 return codes and command args autotest. Update return codes to
use select case.

* feat(ims): Add no_ptc_option FIRST and ALL to no_ptc options keyword (#134)

Add no_ptc_option FIRST and ALL to no_ptc options keyword. Add autotest
(test_gwf_noptc01.py) to test new option against simulation with PTC.

* docs(gwf.tex): minor fix (#135)

* ci(z01/z02): minor change to look for examples with .git extension (#136)

* fix(z02): correcting mistake from last commit (#139)

* ci(slack): add slack notifications

* fix(auxiliary): corrected advanced package auxiliary variables (#146)

* fix(auxiliary): corrected inconsistencies and bugs advanced package aux variables

Added a new test to make sure the aux variables are being carried correctly into the binary budget files.

* More on the auxiliary fix

* Another fix to get MAW right

* fix(ims): Allow for optional nonlinear and linear block (#147)

* ci(travis): Add simple test of Newton-Raphson with known solution (#149)

* fix(oc): error message causing runtime error (#152)

Close #151

* Update gwf-dis.dfn

Corrected a dfn typo as first reported here: https://github.com/modflowpy/flopy/pull/574/files

* fix(mkdist): error output problem in the make distribution script (#162)

Close #154

* docs(disu.dfn): small typo fix

* fix(evt): fixed error in evapotranspiration rate calculation (#169)

Closes #168

* refact(sync dfns): Disu dfn synced with flopy. (#188)

* refactor(sfr): move SfrDataType members into flat arrays (#194)

* refactor(sfr): converted the first 12 entries of SfrDataType to flat arrays

* refactor(sfr): ustrf flattening

* refactor(sfr): ftotnd flattening

* refactor(sfr): usflow flattening

* refactor(sfr): dsflow flattening

* refactor(sfr): depth flattening

* refactor(sfr): stage and gwflow flattening

* refactor(sfr): simevap flattening

* refactor(sfr): simrunoff flattening

* refactor(sfr): stage0 flattening

* refactor(sfr): flattening usflow0

* refactor(sfr): ndiv flattening

*  refactor(gwf): cleaning up call statements and arguments(#202)

* refactor(gnc): removed mention of iasln as it was not used and named wrong

* refactor(gwf): cleaning up model%ia/ja confusion in gwf

* refactor(gwf): cleaning up call statements and arguments

* refactor(xt3d): minor comment cleanup

This is in preparation to be able to mask a primary connection between two model cells so that an interface model can be used to connect two models
langevin-usgs added a commit that referenced this pull request Dec 12, 2019
* fix(ci): fix to pre-commit when working on a fork

* fix(update_flopy): there is a new flopy.dfn file that cannot be removed (#112)

* refactor(tests): to work with recent flopy changes (#113)

* refactor(tests): to work with recent flopy changes

* fix(test_gwf_utl02): added the time series filename due to possible bug in flopy

* fix(disvdfn): corrected top shape to (ncpl) (#115)

* refactor(test000_setup.py): cleaning up the build process using new pymake functionality (#117)

* fix(dis/disv):  terminate with error if all IDOMAIN values less than or equal to zero (#124)

* fix(dis/disv):  terminate with error if all IDOMAIN values less than or equal to zero

* couple fixes to get tests running with new flopy code

* refactor(make-release): refactor updates to version numbers (#126)

* test(test000_setup): fallback for when os.path.relpath throws (#45)

Happens on Windows only. It is only used for logging, so no functional change.

* test(idomain): add zero idomain autotest (#129)

* fix(mover): added better error trapping for mover entries (#131)

* fix(mover): added better error trapping for mover entries

* more refactoring to eliminate use of memory manager in the mover object

* added characters to error message line length in memory manager

* Added mover test with a variety of mover options active

* some final cleanups on this mover patch

closes #130 

This required some fairly substantial refactoring of the mover object.  Instead of looking up information in the memory manager, the mover object is now passed packagemover objects, which should be much more efficient.

* test(returncodes): add mf6 return codes and command args autotest (#132)

Add mf6 return codes and command args autotest. Update return codes to
use select case.

* feat(ims): Add no_ptc_option FIRST and ALL to no_ptc options keyword (#134)

Add no_ptc_option FIRST and ALL to no_ptc options keyword. Add autotest
(test_gwf_noptc01.py) to test new option against simulation with PTC.

* docs(gwf.tex): minor fix (#135)

* ci(z01/z02): minor change to look for examples with .git extension (#136)

* fix(z02): correcting mistake from last commit (#139)

* ci(slack): add slack notifications

* fix(auxiliary): corrected advanced package auxiliary variables (#146)

* fix(auxiliary): corrected inconsistencies and bugs advanced package aux variables

Added a new test to make sure the aux variables are being carried correctly into the binary budget files.

* More on the auxiliary fix

* Another fix to get MAW right

* fix(ims): Allow for optional nonlinear and linear block (#147)

* ci(travis): Add simple test of Newton-Raphson with known solution (#149)

* fix(oc): error message causing runtime error (#152)

Close #151

* Update gwf-dis.dfn

Corrected a dfn typo as first reported here: https://github.com/modflowpy/flopy/pull/574/files

* fix(mkdist): error output problem in the make distribution script (#162)

Close #154

* docs(disu.dfn): small typo fix

* fix(evt): fixed error in evapotranspiration rate calculation (#169)

Closes #168

* refact(sync dfns): Disu dfn synced with flopy. (#188)

* refactor(sfr): move SfrDataType members into flat arrays (#194)

* refactor(sfr): converted the first 12 entries of SfrDataType to flat arrays

* refactor(sfr): ustrf flattening

* refactor(sfr): ftotnd flattening

* refactor(sfr): usflow flattening

* refactor(sfr): dsflow flattening

* refactor(sfr): depth flattening

* refactor(sfr): stage and gwflow flattening

* refactor(sfr): simevap flattening

* refactor(sfr): simrunoff flattening

* refactor(sfr): stage0 flattening

* refactor(sfr): flattening usflow0

* refactor(sfr): ndiv flattening

*  refactor(gwf): cleaning up call statements and arguments(#202)

* refactor(gnc): removed mention of iasln as it was not used and named wrong

* refactor(gwf): cleaning up model%ia/ja confusion in gwf

* refactor(gwf): cleaning up call statements and arguments

* refactor(xt3d): minor comment cleanup

This is in preparation to be able to mask a primary connection between two model cells so that an interface model can be used to connect two models

* refactor(griddata): refactor grid data to isolate read and constructor (#197)

* fix(gwf3lak8): error trap for outlet lakein incorrectly compared against noutlet instead of nlak (#214)

Addresses issue #200

* fix(npf): reset lastedge to zero (#217)

* fix(npf): reset lastedge to zero

This change addresses issue #216

* test_gwf_npf04_spdis.py updated to multiple stress periods to test this fix

* fix(ListReaderType): initialize attributes in declaration (#220)

close #120

* feat(maxerrors): limit the number of errors stored to maxerrors (#221)

Error messages are stored in memory.  If something goes terribly wrong, the number of errors can be so large that memory runs out.  Limit the number of errors stored, by default, to 1000.  The user can control this maximum number by specifying MAXERRORS in the mfsim.nam options block.  Number of errors and number of errors above maxerrors are not written to mfsim.lst and to terminal.

Closes #106

* test(gwf_errors): new test to make sure mf6 is failing correctly (#222)

* test(gwf_errors): new test to make sure mf6 is failing correctly

* cleanup of model testing script

* feat(cmask): add mask for calculation of amat terms (#215)

* feat(cmask): skip calculation of amat terms in *_fc and *_fn for masked connections

The purpose of this PR is to allow another package or module to shutoff the flow connection between two cells.  A connection can be masked by calling set_mask with the position within the ja and amat arrays of the masked connection.  A value of zero means the connection is masked.  If not used, the masked array points to ja, which has non-zero values for all connections.  The first call to set_mask allocates new memory for the masked array of size nja and initializes all values to one.

* ci(.travis.yml)

Commenting out the "conda update conda" line to see what is causing Travis to fail

* ci(.travis.yml): add back conda update conda

Try adding back the conda update conda command to see if updating the cache fixed the issue.

* ci(.travis.yml): upgrade to xenial, replace miniconda with apt-get (#226)

* reduce repetition in matrix
* remove inactive features like sudo and cache: apt
* install packages with apt-get rather than miniconda

* feat(disu): ensure cell elevations decrease with depth (#224)

Closes #108

* docs(mf6io/ReleaseNotes): updates to describe changes for next release (#227)

* Closes #133.
* Closes #141.
* Closes #184.
* Add summary of issue #145 to ReleaseNotes

* feat(dis): add get_cellxy procedure to DisBaseType #204 (#228)

* Expose cell x,y values for all DIS
- add 'pure virtual' get_cellxy() to DisBaseType plus implementations in DIS, DISV, DISU.

* Expose cell x,y values for all DIS, continue
- redirect to appropriate type-bound procedures

Closes #204.

* fix(dis): cellxy in DIS (#239)

- fixed how celly is determined from column numbers

* ci(.travis.yml): use change branch of modflow6-examples (#242)

if modflow6-examples has a branch with the same name as the modflow6 branch that is being tested, then checkout that branch of modflow6-examples for the z01 autotest

* refactor(fortran): turned on gfortran flags for better error checking (#246)

* refactor(fortran): turned on gfortran flags for better error checking
* Close #182
* removed the min_satthk variable from xt3d as it is not needed

* fix(fortran): turn on gfortran 2008 standard check (#248)

Closes #183
Added -pedantic -std=f2008 flags for gfortran compiling

* test(rch): add test for reported issue #181 (#249)

bug could not be reproduced
close #181

* feat(anistropy): add anisotropy input option for NPF (#253)

* close #34 
* added K22OVERK and K33OVERK NPF options
* added test for anisotropy and updated definition files
* refactored routine in InputOutput.f90 to eliminate antiquated computed goto statement
* updated release notes

* fix(getblock): many of the parser%getblock calls did not have supportopenclose=.true. (#254)

added supportopenclose=.true. to many getblock calls
close #163

* fix(mf5to6): fix converter for multiple mnw2 wells (#256)

* converter had multiple bugs for multiple MNW2 wells that spanned multiple model layers
* closes #185
* added history to converter document

* refactor(dfn): turn off default for maxerrors (#257)

* feat(disu idomain): add support for disu idomain (#261)

* feat(disu): adding idomain capability to disu

* couple of fixes to get disu working for non-reduced grids

* Found another place in disu where a conversion to user node number is required

* change variable name

todo list:
still need to consider converting iac to ia right away
change usr to input for variable names so as not to conflict with iausr/jausr in connections
add more comprehensive test
add idomain validity check
support idomain < 0 values

* more cleanup on disu idomain support

* more disu cleanup and idomain testing

* cleanup comments

* Updated release notes

* docs(version): update doc information and version (#264)

* Updated a couple doc files for DISU IDOMAIN changes
* Updated version to reflect the upcoming 6.1.0 release

* feat(csub): Add csub package to develop (#262)

* refactor(uzf): converting to large vector storage (#265)

* change from UzfBndKinematic to UzfCellGroup
* updated release notes
* deallocate a couple NPF variables
* close #107

This change converts the array of structures implemented for UZF into a structure of arrays (contained in UzfCellGroupType) in order to prevent excessive memory requirements.

* docs(release notes): few small changes to get ready for release (#266)

* ci(mkdist): getting 6.1 distribution ready (#267)
jdhughes-usgs added a commit that referenced this pull request Apr 10, 2020
* Initial changes to address #36. Still need to test and perform clean up.

* Updates to OBS to deallocate internal members with gfortran-8. Clean
up of constants specified in code (DZERO and DONE) instead of relying
on constants module.

* Cleanup of variable definitions. Still more cleaning required.

* Fixed compile issue with mf5to6...added contiguous to vectors/arrays
allocated using the memory manager. Also fixed issue with SEGFAULT in
mf5to6 that was related to a pointer in ChdPackageWriter that was not
pointed to null (=> null()) in definition.

* Proposed fix for denormal results occurring with gfortran-8 and
test016_Keating_disu_250.

* Proposed fix for denormal results occurring with gfortran-8 and
test016_Keating_disu_250. (2)

* Additional cleanup of variable definitions. Modified .travis.yml to
require successful testing of gfortran-7 and gfortran-8 environments.

* docs(ReleaseNotes): Updated release notes

Added section for current release and added header for 6.0.3 version
changes.

* docs: updates and additions

Updated CONTRIBUTING.md and added DEVELOPER.md. DEVELOPER.md probably
still needs additional work.

* fix(ArrayReaders): Fix issue reading binary 2d arrays

Fix issue reading binary 2d arrays. read_binary_header was imbedded
in the row loop of the 2d readers. Modify test_gwf_binaryinput01 to
create binary files for strt, idomain, botm, and icelltype for models
with layered and non-layered cases.

* test(test_gwf_binaryinput01): write discretization top to binary file and read binary file with open/close statement

Reading of the botm discretization array from a binary file had already been tested.  This change now tests the model top array being read from a binary file.

* docs(gwf-sfr.dfn): corrected typo

The SFR Newton-Raphson iteration description had a typo in it.

* docs(gwf-lak.dfn): fixed error in description of rough

The variable rough was incorrectly described in the period block, though it was correct in the outlet block.

* feat(tdis): error check for invalid time step lengths

Added a new error check for very small time steps.  If the value of startime plus the time step length is equal to endtime, then the time step is too small to be differentiated by the program based on the precision of floating point numbers.  The program will terminate with an error in this case.  The program will also terminate if the storage package and a transient stress period has a time step length of zero.   Closes #42.

* test:(test_gwf_utl) : renamed two of the autotests

Renamed the binary file and time series autotests to be of the form test_gwf_utlxx_purpose.  These tests are testing the utility parts of the code, so they are grouped now into a gwf_utl category.  We should continue to name our tests in a consistent manner so that we use wildcards with nosetests to test only the things we are working on.

* docs(readme): fix directory name

* fix(GwfModule): fix to apply ptc to problems with the STO package

Fix to apply ptc during steady-state stress periods to models using
the Newton-Raphson formulation and including the STO package.
Previously ptc was only applied to models using the Newton-Raphson
formulation and no STO package - this is not the intended behaviour.
Also migrated DEV_NO_PTC option to NO_PTC option. Added autotest
(test_gwf_ptc01) that tests that the same results are achieved for
problems with and without the STO packages (this test is identical to
MODFLOW-NWT Problem 3 - low recharge).

closes #47

* refactor(pre-commit.py): use OrderdedDict to load and write code.json

Updated the code.json writer to use an ordered dictionary so that the order is always the same.  This will minimize the number of changes that appear in the changelog due to ordering changes that do not change content.

* refactor(InputOutputModule): refactor dclosetest (#49)

Refactor dclosetest and replace with IS_SAME in GenericUtilities.
Convert IS_SAME to logical function and allow passing of evaluation
value (eps). If eps is not passed then DSAME is used. Modified calls
to dclosetest to IS_SAME but did not pass an eps value (unlike what
was done previously). All tests pass so current tests are not sensitive
to a passed eps value. Need to monitor this for timeseries functionality
which used dclosetest.

* refactor(pre-commit.py): use OrderdedDict to load and write code.json (#50)

Updated the code.json writer to use an ordered dictionary so that the order is always the same.  This will minimize the number of changes that appear in the changelog due to ordering changes that do not change content.

* perf(GwfModule): improvements to ptc (#53)

Small improvements to ptc to reduce the ptcdel value loaded on the
diagonal.

* fix(GwfGwfExchangeModule): specific discharge not updated correctly for LGR

The sign for the face normal needed to be flipped for model 2 so that specific discharge would be calculated correctly.  Added a test to make sure that the velocities are correct.  Addresses #51.

* fix(GwfGwfExchangeModule): specific discharge not updated correctly for LGR

Updated the release notes and added some docstrings to the autotest.

* fix(ObsModule): implemented non-advancing output (#55)

Modified the pbservation process to use non-advancing output instead of
fixed length strings when writing ascii output. The previous use of
fixed length strings resulted in truncation of ascii observation output
when the product of user-specified digits + 7 and the number of
observations exceeded 5000.

Closes #54

* fix(GwfGwfExchangeModule): correct specific discharge calculation for LGR (#56)

* refactor(pre-commit.py): use OrderdedDict to load and write code.json

Updated the code.json writer to use an ordered dictionary so that the order is always the same.  This will minimize the number of changes that appear in the changelog due to ordering changes that do not change content.

* fix(GwfGwfExchangeModule): specific discharge not updated correctly for LGR

The sign for the face normal needed to be flipped for model 2 so that specific discharge would be calculated correctly.  Added a test to make sure that the velocities are correct.  Addresses #51.

* fix(GwfGwfExchangeModule): specific discharge not updated correctly for LGR

Updated the release notes and added some docstrings to the autotest.

* docs(dfn): fix 3 dfn typos (#59)

- `double` → `double precision`
- `valid_values` → `valid`
- `in_record = false` → `in_record false`

* docs(mf6ivar): readme.md needed a description of the valid keyword

* docs(mf6ivar): readme.md updated to include valid keyword (#60)

* refactor(pre-commit.py): use OrderdedDict to load and write code.json

Updated the code.json writer to use an ordered dictionary so that the order is always the same.  This will minimize the number of changes that appear in the changelog due to ordering changes that do not change content.

* fix(GwfGwfExchangeModule): specific discharge not updated correctly for LGR

The sign for the face normal needed to be flipped for model 2 so that specific discharge would be calculated correctly.  Added a test to make sure that the velocities are correct.  Addresses #51.

* fix(GwfGwfExchangeModule): specific discharge not updated correctly for LGR

Updated the release notes and added some docstrings to the autotest.

* docs(mf6ivar): readme.md needed a description of the valid keyword

* Corrected misspelling of execution in the release notes.

* docs(releasenotes): corrected spelling error in release notes (#64)

* refactor(pre-commit.py): use OrderdedDict to load and write code.json

Updated the code.json writer to use an ordered dictionary so that the order is always the same.  This will minimize the number of changes that appear in the changelog due to ordering changes that do not change content.

* fix(GwfGwfExchangeModule): specific discharge not updated correctly for LGR

The sign for the face normal needed to be flipped for model 2 so that specific discharge would be calculated correctly.  Added a test to make sure that the velocities are correct.  Addresses #51.

* fix(GwfGwfExchangeModule): specific discharge not updated correctly for LGR

Updated the release notes and added some docstrings to the autotest.

* docs(mf6ivar): readme.md needed a description of the valid keyword

* Corrected misspelling of execution in the release notes.

* fix(docs): maximum_iterations in gwf-sfr.dfn should be of type integer (#71)

fixes #70.

* fix(inputoutput): columns and width were not be checked properly for the print_format (#72)

Fixes #69.

This patch also includes some changes to the OutputControlData object so that it can be used directly in a package other than the output control package.  This new functionality is being used for the transport model as a way to save immobile domain concentrations in a manner similar to how heads are saved.

* test(test000_setup): download a zip file of modflow executables for testing purposes (#75)

Download a zip file of binary executables from https://github.com/MODFLOW-USGS/executables and unzip into autotest/temp/mfexes.  These binary executables can be used to help with testing, and reduces the amount of build time on Travis.  The getmfexes function will download the correct executables depending on the operating system, which can be either windows, mac, or linux.

* docs(hooks): update pre-commit hook (#76)

Update pre-commit hook to evaluate if repo is a fork of the main
repository. If it is a fork, the branch name is parsed from README.md
rather than using 'git status'. This will make pre-commit hooks work as
expected for fix-branch/pull request approach currently being used.

* fix(typos): fixed a variety of typos throughout project (#82)

* feat(maw): program head limit and rate scaling to work for injection wells

Updated code, added a new test, updated readme and mf6io files.

Also fix a few minor typos in the definition files.  And remove the PRECISION keyword from observation options since it is not supported.

* fix(src_cc): Add SFR convergence check (#85)

Add OUTER_RCLOSEBND variable to IMS that is used when performing final
convergence checks on model packages that solve a separate equation
not solved by the IMS linear solver. Add stage and residual convergence
checks to the SFR package to make sure that stage and upstream flow
changes between successive outer iterations are less than OUTER_HCLOSE
and OUTER_RCLOSEBND, respectively.

Modify the final convergence check for the LAK package to use
OUTER_HCLOSE when evaluating lake stage changes between successive
outer iterations. Modify the final convergence check for the UZF package
to use OUTER_RCLOSEBND when evaluating rejected infiltration,
groundwater recharge, and groundwater seepage changes between successive
outer iterations.

* refactor(mover): refactor and clean up water mover for possible BOUNDNAME support (#86)

This is some minor clean up to the water mover that improves some of the comments, and eliminates storage of a 20-character string for each water mover, and instead replaces it with an integer.  Reading of the reach id is now done using the IO utility, extract_idnum_or_bndname.

* docs(uzf): clarified dfn descriptions for nuzfcells and ivertcon (#90)

closes #84

* docs(dfn): improve description of ANGLDEGX and CDIST (#91)

closes #51

* refactor(autotest): refactor nightly build autotest scripts (#89)

Refactor nightly build autotest scripts to find appropriate directories
rather than having them predefined.

* refactor(MemoryManager): add mem_reassignptr functions and clean up (#92)

* Completed the mem_reassignptr routines so there are versions for int1d, int2d, dbl1d, dbl2d
* Adding optional name and origin arguments to the other array deallocate routines.  In general, we should be passing name and origin to the mem_deallocate routine.  Ultimately, I think we will want to make this mandatory.
* Discovered that rclose was not being deallocated and made the fix.  
* NPF variables K22 and K33 are now reassigned to K11 if they are not specified.  
* The memory manager type now has a new logical attribute called "master".  If true, then this means this this variable is the master version, and should be deallocated.  If this memory type is just a copy to another variable, then master should be set to zero.  This information is used for deallocation and for determining memory usage.
* closes #65

* refactor(BndType): Generalized BndType pointer to NPF ICELLTYPE to be model agnostic (#93)

ICELLTYPE is a member of BndType, which is supposed to be a general package class for GWF and other models.  But ICELLTYPE is an NPF thing.  This PR generalizes the ICELLTYPE member by allowing packages to set the origin of this variable.  For the GWF Boundary packages, the ictorigin value is set to "NPF".  If ictorigin is not set, then BndType will not try to set ICELLTYPE, and it will remain null().

Closes #67

* docs(dfn): update information on when vertices and cell2d information is required (#94)

* Closes issue #52

* refactor(Xt3dAlgorithmModule): reformatted source to look like MF6 source (#95)

* Closes issue #38

* fix(gwf3): correct error message to mention DISV6 (#97)

Close #96

* fix(listreader): corrected two typos to the word exist, which was spelled as exit (#98)

* docs(releasenotes): minor changes for release (#99)

* fix(comarg): exe cannot be in file path with a space (#101)

This is in reference to issue #100.

This PR also contains a small typo fix in uzf dfn

* fix(comarg): restored cexe to be executable basename instead of full exe path (#103)

Also restored the update_flopy script to remove all existing mf6 classes except mfsimulation.py.

Closes #103

* fix(disu): fixed error message for disu connectiondata block (#104)

* feat(compile): added gfortran compile flags to bomb if source code isn't clean

* Updated MODFLOW-USG download link

* removed the character-truncation flag.  Not clear how to get this to work for the fpp file.

* Reverting the size of words in namefile

* Had to turn off extra code error checking; was getting an error on linux that couldn't be resolved.

* small latex change

* Release 6.0.4.

* Fixed small bug in numericalsolution.f90.  Rereleasing this as version 6.0.4.

* small change to distribution script

* feat(release): updated develop with master

* fix(ci): fix to pre-commit when working on a fork

* fix(update_flopy): there is a new flopy.dfn file that cannot be removed (#112)

* refactor(tests): to work with recent flopy changes (#113)

* refactor(tests): to work with recent flopy changes

* fix(test_gwf_utl02): added the time series filename due to possible bug in flopy

* fix(disvdfn): corrected top shape to (ncpl) (#115)

* refactor(test000_setup.py): cleaning up the build process using new pymake functionality (#117)

* fix(dis/disv):  terminate with error if all IDOMAIN values less than or equal to zero (#124)

* fix(dis/disv):  terminate with error if all IDOMAIN values less than or equal to zero

* couple fixes to get tests running with new flopy code

* refactor(make-release): refactor updates to version numbers (#126)

* test(test000_setup): fallback for when os.path.relpath throws (#45)

Happens on Windows only. It is only used for logging, so no functional change.

* test(idomain): add zero idomain autotest (#129)

* fix(mover): added better error trapping for mover entries (#131)

* fix(mover): added better error trapping for mover entries

* more refactoring to eliminate use of memory manager in the mover object

* added characters to error message line length in memory manager

* Added mover test with a variety of mover options active

* some final cleanups on this mover patch

closes #130 

This required some fairly substantial refactoring of the mover object.  Instead of looking up information in the memory manager, the mover object is now passed packagemover objects, which should be much more efficient.

* test(returncodes): add mf6 return codes and command args autotest (#132)

Add mf6 return codes and command args autotest. Update return codes to
use select case.

* feat(ims): Add no_ptc_option FIRST and ALL to no_ptc options keyword (#134)

Add no_ptc_option FIRST and ALL to no_ptc options keyword. Add autotest
(test_gwf_noptc01.py) to test new option against simulation with PTC.

* docs(gwf.tex): minor fix (#135)

* ci(z01/z02): minor change to look for examples with .git extension (#136)

* fix(z02): correcting mistake from last commit (#139)

* ci(slack): add slack notifications

* fix(auxiliary): corrected advanced package auxiliary variables (#146)

* fix(auxiliary): corrected inconsistencies and bugs advanced package aux variables

Added a new test to make sure the aux variables are being carried correctly into the binary budget files.

* More on the auxiliary fix

* Another fix to get MAW right

* fix(ims): Allow for optional nonlinear and linear block (#147)

* ci(travis): Add simple test of Newton-Raphson with known solution (#149)

* fix(oc): error message causing runtime error (#152)

Close #151

* Update gwf-dis.dfn

Corrected a dfn typo as first reported here: https://github.com/modflowpy/flopy/pull/574/files

* fix(mkdist): error output problem in the make distribution script (#162)

Close #154

* docs(disu.dfn): small typo fix

* fix(evt): fixed error in evapotranspiration rate calculation (#169)

Closes #168

* refact(sync dfns): Disu dfn synced with flopy. (#188)

* refactor(sfr): move SfrDataType members into flat arrays (#194)

* refactor(sfr): converted the first 12 entries of SfrDataType to flat arrays

* refactor(sfr): ustrf flattening

* refactor(sfr): ftotnd flattening

* refactor(sfr): usflow flattening

* refactor(sfr): dsflow flattening

* refactor(sfr): depth flattening

* refactor(sfr): stage and gwflow flattening

* refactor(sfr): simevap flattening

* refactor(sfr): simrunoff flattening

* refactor(sfr): stage0 flattening

* refactor(sfr): flattening usflow0

* refactor(sfr): ndiv flattening

* refactor(gwf): cleaning up call statements and arguments(#202)

* refactor(gnc): removed mention of iasln as it was not used and named wrong

* refactor(gwf): cleaning up model%ia/ja confusion in gwf

* refactor(gwf): cleaning up call statements and arguments

* refactor(xt3d): minor comment cleanup

This is in preparation to be able to mask a primary connection between two model cells so that an interface model can be used to connect two models

* refactor(griddata): refactor grid data to isolate read and constructor (#197)

* fix(gwf3lak8): error trap for outlet lakein incorrectly compared against noutlet instead of nlak (#214)

Addresses issue #200

* fix(npf): reset lastedge to zero (#217)

* fix(npf): reset lastedge to zero

This change addresses issue #216

* test_gwf_npf04_spdis.py updated to multiple stress periods to test this fix

* fix(ListReaderType): initialize attributes in declaration (#220)

close #120

* feat(maxerrors): limit the number of errors stored to maxerrors (#221)

Error messages are stored in memory.  If something goes terribly wrong, the number of errors can be so large that memory runs out.  Limit the number of errors stored, by default, to 1000.  The user can control this maximum number by specifying MAXERRORS in the mfsim.nam options block.  Number of errors and number of errors above maxerrors are not written to mfsim.lst and to terminal.

Closes #106

* test(gwf_errors): new test to make sure mf6 is failing correctly (#222)

* test(gwf_errors): new test to make sure mf6 is failing correctly

* cleanup of model testing script

* feat(cmask): add mask for calculation of amat terms (#215)

* feat(cmask): skip calculation of amat terms in *_fc and *_fn for masked connections

The purpose of this PR is to allow another package or module to shutoff the flow connection between two cells.  A connection can be masked by calling set_mask with the position within the ja and amat arrays of the masked connection.  A value of zero means the connection is masked.  If not used, the masked array points to ja, which has non-zero values for all connections.  The first call to set_mask allocates new memory for the masked array of size nja and initializes all values to one.

* ci(.travis.yml)

Commenting out the "conda update conda" line to see what is causing Travis to fail

* ci(.travis.yml): add back conda update conda

Try adding back the conda update conda command to see if updating the cache fixed the issue.

* ci(.travis.yml): upgrade to xenial, replace miniconda with apt-get (#226)

* reduce repetition in matrix
* remove inactive features like sudo and cache: apt
* install packages with apt-get rather than miniconda

* feat(disu): ensure cell elevations decrease with depth (#224)

Closes #108

* docs(mf6io/ReleaseNotes): updates to describe changes for next release (#227)

* Closes #133.
* Closes #141.
* Closes #184.
* Add summary of issue #145 to ReleaseNotes

* feat(dis): add get_cellxy procedure to DisBaseType #204 (#228)

* Expose cell x,y values for all DIS
- add 'pure virtual' get_cellxy() to DisBaseType plus implementations in DIS, DISV, DISU.

* Expose cell x,y values for all DIS, continue
- redirect to appropriate type-bound procedures

Closes #204.

* fix(dis): cellxy in DIS (#239)

- fixed how celly is determined from column numbers

* ci(.travis.yml): use change branch of modflow6-examples (#242)

if modflow6-examples has a branch with the same name as the modflow6 branch that is being tested, then checkout that branch of modflow6-examples for the z01 autotest

* refactor(fortran): turned on gfortran flags for better error checking (#246)

* refactor(fortran): turned on gfortran flags for better error checking
* Close #182
* removed the min_satthk variable from xt3d as it is not needed

* fix(fortran): turn on gfortran 2008 standard check (#248)

Closes #183
Added -pedantic -std=f2008 flags for gfortran compiling

* test(rch): add test for reported issue #181 (#249)

bug could not be reproduced
close #181

* feat(anistropy): add anisotropy input option for NPF (#253)

* close #34 
* added K22OVERK and K33OVERK NPF options
* added test for anisotropy and updated definition files
* refactored routine in InputOutput.f90 to eliminate antiquated computed goto statement
* updated release notes

* fix(getblock): many of the parser%getblock calls did not have supportopenclose=.true. (#254)

added supportopenclose=.true. to many getblock calls
close #163

* fix(mf5to6): fix converter for multiple mnw2 wells (#256)

* converter had multiple bugs for multiple MNW2 wells that spanned multiple model layers
* closes #185
* added history to converter document

* refactor(dfn): turn off default for maxerrors (#257)

* feat(disu idomain): add support for disu idomain (#261)

* feat(disu): adding idomain capability to disu

* couple of fixes to get disu working for non-reduced grids

* Found another place in disu where a conversion to user node number is required

* change variable name

todo list:
still need to consider converting iac to ia right away
change usr to input for variable names so as not to conflict with iausr/jausr in connections
add more comprehensive test
add idomain validity check
support idomain < 0 values

* more cleanup on disu idomain support

* more disu cleanup and idomain testing

* cleanup comments

* Updated release notes

* docs(version): update doc information and version (#264)

* Updated a couple doc files for DISU IDOMAIN changes
* Updated version to reflect the upcoming 6.1.0 release

* feat(csub): Add csub package to develop (#262)

* refactor(uzf): converting to large vector storage (#265)

* change from UzfBndKinematic to UzfCellGroup
* updated release notes
* deallocate a couple NPF variables
* close #107

This change converts the array of structures implemented for UZF into a structure of arrays (contained in UzfCellGroupType) in order to prevent excessive memory requirements.

* docs(release notes): few small changes to get ready for release (#266)

* ci(mkdist): getting 6.1 distribution ready (#267)

* docs(csub): corrected a few typos and updated date (#270)

* 6.1.0 release

* merge master into develop and update version to 6.1.1

* fix(uzf): fix indexing error in UZF (#274)

* Error introduced as part of recent UZF refactoring
* Closes #273

* fix(memory): some variables not deallocated (#278)

Implemented new check in develop mode so code bombs with error if memory manager variable not deallocated

* refactor(budobj): new budget object for advanced packages (#279)

* single code base for writing binary budget files for advanced packages
* single code base for creating and writing budget tables to list file for advanced packages
* implemented for MAW, UZF, LAK, SFR, and MVR
* closes #277
* update mf6exes from 2.0 to 3.0
* will allow generalized transport calculations for advanced packages

* refactor(advanced packages): read static data as part of df() (#281)

* refactor(advanced packages): modify advanced packages to read all static data as part of df()
* modify setup_budobj to include the connectivity so that it is available to other models

* fix(budterm): initialize nlist to zero (#283)

* initialize nlist to zero (#284)

* fix(lak): initialize chdratin and chdratout to zero (#286)

* fix(lak): added sign checks for user specified lak flow terms (#288)

* User-specified values for RAINFALL, EVAPORATION, RUNOFF, INFLOW, and WITHDRAWAL must be positive.  The program worked if these values were negative, but that doesn't necessarily make sense and is probably an input error.
* Updated definition file to reflect these changes
* Corrected minor typo in lake definition file
* Updated release notes to reflect this change
* Close #287

* feat(sfr): add storage term to sfr budget (#293)

* Also includes a reach volume term written as an aux variable.  This is needed for transport.
* initialize str so non-ascii characters don't show up in output files
* updated notes for these changes

* * fix(csub): Fix CSUB binary budget data saved as IMETH=6 datatype

closes #290

* refactor(sfr): Refactor SFR Package to remove use of Geometry objects (#296)

* refactor(sfr): Refactor SFR Package to remove use of Geometry objects

* doc(pak-ts): update description of package timeseries variables. 

* ci(yml): update yml to clone shallow copy of flopy and pymake repos

* doc(release): Update release notes

* Closes #276, and #289

* refactor(xt3d): accumulate flowja instead of set (#306)

This change is required for transport, which accumulates terms in flowja

* fix(dis): corrected connection vector error in DIS package (#308)

Code was incorrectly calculating cell center elevations when nozee was .false.  This error would have affected XT3D simulations with unconfined flow and non-zero values specified for ANGLE2 in the NPF Package.  It also would affect dispersive transport with XT3D for unconfined conditions.

* Update sln-ims-example.dat

* refactor(maw): refactor MAW conductance calculation for issue 305 (#310)

Add traps to catch 1) skin factors that are <= 0 when using the SKIN
conductance equation and 2) and negative saturated conductances values.

Closes #305

* feat(tableobj): Add a generic table object for lst file output (#303)

Full implementation for SFR package. Partial implementation for LAK, MAW, and UZF packages.

* feat(tableobj): update MAW package to use tableobj for data output (#315)

Also fix some budget reporting issues in the MAW package

* fix(auxmult): auxmult fix when auxmult and bound are in time series (#316)

* change order of time series interpolation so aux is done first in case it is an auxmult column
* partially addresses #314
* updated release notes

* refactor(BoundaryPackage): Add use of TableObject for print_flows option (#317)

* feat(lnf): update n-point geometry package data

* Revert "feat(lnf): update n-point geometry package data"

This reverts commit 3460cfb.

* fix(lak): revise the way outlet to-mvr flows are stored in budobj (#321)

* fix(lak): revise the way outlet to-mvr flows are stored in budobj

* updated release notes

* refactor(lak/maw/sfr): for CONSTANT features write fixed value instead of DHNOFLO to binary file (#329)

* refactor(lak/maw/sfr): for CONSTANT features write fixed value instead of DHNOFLO to binary file

* update release notes

* fix(maw): new headtable corrected to have mawwells rows instead of maxbound (#332)

* fix(sfr): Remove upstream_fraction check from PACKAGEDATA block (#334)

closes #324

* feat(transport): update develop with some general routines needed for transport (#339)

* feat(transport): update develop with some general routines needed for transport
* fix(mover): correct typo in error message
* closes #336
* refactor(disu): correct type in disu error message
* closes #635

* fix(csub): Allow interbed observations when no interbeds specified (#338)

DNODATA values reported if 1) delay interbed observations are specified
and no delay interbeds are specified and 2) interbed observations are
specified and the number of interbeds is zero. Added test of all
observation types to test_gwf_csub_sk01.py which has no interbeds.

closes #298

* ci(travis): update travis.yml to install miniconda instead of apt python (#346)

* refactor(mf6): standardize output to STDOUT to use istdout variable

* refactor(mf6): standardize output to STDOUT to use istdout variable

Modify mf5to6 to use standard SimVariables.f90 in mf6 src and add
ListType variables in original mf5to6 SimVariables.f90 file to
SimListVariables.f90 and update use statements.

* feat(npf): add save saturation option to NPF (#351)

* changed some things to public in lak, uzf, sfr
* fixed minor bug in uzf
* updated release notes and dfn files
* modified lak to store hlak and clak in the bound array

* refactor(sim_message): Refactor to have independent sim_message (#353)

* bug(csub): Write better cellid format to strain csv files (#355)

Write integer cellids to csv files instead of string. Add method
to discretization classes to return array of user indices. Refactored
table output to use table object instead of UWWORD.

closes #299

* fix(csub): Add additional inelastic- and elastic-compaction-cell obs. (#356)

Closes #302

* fix(csub): Report NODATA for CSUB observ. not calculated in steady-state (#359)

CSUB source has been modified to report NODATA values for observations
that are not calculated during steady-state stress periods.
Observations that are not calculated for steady-state stress
periods include SKE, SK, SKE-CELL, SK-CELL, DELAY-HEAD,
DELAY-PRECONSTRESS, DELAY-GSTRESS, DELAY-ESTRESS, PRECONSTRESS-CELL.
Update mfio to reflect these changes.

Also modified CSUB observations so that thick-cell observation is
correctly calculated during steady-state stress periods.

Closes #300

* Merge refactor-src into develop (#361)

* refactor(ListReader): Refactor ListReader to use table object (#362)

* fix(npf): remove isavsat hardwire (#364)

* refactor(src): remove unused variables (#366)

* update mkdist.py to copy additional MSVS solutions and projects

* refactor(uzf): refactor uzf to use table object instead of UWWORD (#367)

* refactor(uzf): refactor uzf to use table object instead of UWWORD

Also simplify table object to write tables of unknown length.

* refactor(uzf): refactor uzf to use table object instead of UWWORD

Simplify table object to write tables of unknown length. Update
observations to use table object when PRINT_INPUT (iprpak=1) is
specified to write input observation data.

* fix(uzf): flowjaface is not ordered for uzf (#372)

* fix(bnd_cf): make another call to bnd_cf routines in gwf bnd_bd (#378)

* boundary budgets were being calculated using hcof and rhs values from the previous iteration.  This could cause drain flows to be into the aquifer, for example. This fix recalculates the package hcof and rhs values in bd using the final head solution.

* update release notes to reflect this change

* docs(sfr/lak): couple minor doc changes (#380)

* refactor(src): remove unused variables

* update mkdist.py to copy additional MSVS solutions and projects

* docs(sfr/lak): couple minor doc changes

* feature(ims): add additional solver output (#375)

Closes #375

* refactor(lak package dfn - perioddata): combined all perioddata into one recarray (#381)

* refactor(lak package dfn - perioddata): combined lakeperioddata and outletperioddata into perioddata

* refactor(lak stress period data): updated dfn

* feature(ims): refactor package convergence check (#382)

* Introduce end-of-line normalization (#386)

* refactor(xt3d): update develop with minor changes needed for transport (#388)

* feature(ims): update inner iteration summary (#389)

* Add .gitattributes

* Introduce end-of-line normalization

* update to mfio data

Co-authored-by: langevin-usgs <[email protected]>
Co-authored-by: Martijn Visser <[email protected]>
Co-authored-by: Mike Taves <[email protected]>
Co-authored-by: spaulins-usgs <[email protected]>
Co-authored-by: mjr-deltares <[email protected]>
langevin-usgs added a commit that referenced this pull request Apr 14, 2020
* Initial changes to address #36. Still need to test and perform clean up.

* Updates to OBS to deallocate internal members with gfortran-8. Clean
up of constants specified in code (DZERO and DONE) instead of relying
on constants module.

* Cleanup of variable definitions. Still more cleaning required.

* Fixed compile issue with mf5to6...added contiguous to vectors/arrays
allocated using the memory manager. Also fixed issue with SEGFAULT in
mf5to6 that was related to a pointer in ChdPackageWriter that was not
pointed to null (=> null()) in definition.

* Proposed fix for denormal results occurring with gfortran-8 and
test016_Keating_disu_250.

* Proposed fix for denormal results occurring with gfortran-8 and
test016_Keating_disu_250. (2)

* Additional cleanup of variable definitions. Modified .travis.yml to
require successful testing of gfortran-7 and gfortran-8 environments.

* docs(ReleaseNotes): Updated release notes

Added section for current release and added header for 6.0.3 version
changes.

* docs: updates and additions

Updated CONTRIBUTING.md and added DEVELOPER.md. DEVELOPER.md probably
still needs additional work.

* fix(ArrayReaders): Fix issue reading binary 2d arrays

Fix issue reading binary 2d arrays. read_binary_header was imbedded
in the row loop of the 2d readers. Modify test_gwf_binaryinput01 to
create binary files for strt, idomain, botm, and icelltype for models
with layered and non-layered cases.

* test(test_gwf_binaryinput01): write discretization top to binary file and read binary file with open/close statement

Reading of the botm discretization array from a binary file had already been tested.  This change now tests the model top array being read from a binary file.

* docs(gwf-sfr.dfn): corrected typo

The SFR Newton-Raphson iteration description had a typo in it.

* docs(gwf-lak.dfn): fixed error in description of rough

The variable rough was incorrectly described in the period block, though it was correct in the outlet block.

* feat(tdis): error check for invalid time step lengths

Added a new error check for very small time steps.  If the value of startime plus the time step length is equal to endtime, then the time step is too small to be differentiated by the program based on the precision of floating point numbers.  The program will terminate with an error in this case.  The program will also terminate if the storage package and a transient stress period has a time step length of zero.   Closes #42.

* test:(test_gwf_utl) : renamed two of the autotests

Renamed the binary file and time series autotests to be of the form test_gwf_utlxx_purpose.  These tests are testing the utility parts of the code, so they are grouped now into a gwf_utl category.  We should continue to name our tests in a consistent manner so that we use wildcards with nosetests to test only the things we are working on.

* docs(readme): fix directory name

* fix(GwfModule): fix to apply ptc to problems with the STO package

Fix to apply ptc during steady-state stress periods to models using
the Newton-Raphson formulation and including the STO package.
Previously ptc was only applied to models using the Newton-Raphson
formulation and no STO package - this is not the intended behaviour.
Also migrated DEV_NO_PTC option to NO_PTC option. Added autotest
(test_gwf_ptc01) that tests that the same results are achieved for
problems with and without the STO packages (this test is identical to
MODFLOW-NWT Problem 3 - low recharge).

closes #47

* refactor(pre-commit.py): use OrderdedDict to load and write code.json

Updated the code.json writer to use an ordered dictionary so that the order is always the same.  This will minimize the number of changes that appear in the changelog due to ordering changes that do not change content.

* refactor(InputOutputModule): refactor dclosetest (#49)

Refactor dclosetest and replace with IS_SAME in GenericUtilities.
Convert IS_SAME to logical function and allow passing of evaluation
value (eps). If eps is not passed then DSAME is used. Modified calls
to dclosetest to IS_SAME but did not pass an eps value (unlike what
was done previously). All tests pass so current tests are not sensitive
to a passed eps value. Need to monitor this for timeseries functionality
which used dclosetest.

* refactor(pre-commit.py): use OrderdedDict to load and write code.json (#50)

Updated the code.json writer to use an ordered dictionary so that the order is always the same.  This will minimize the number of changes that appear in the changelog due to ordering changes that do not change content.

* perf(GwfModule): improvements to ptc (#53)

Small improvements to ptc to reduce the ptcdel value loaded on the
diagonal.

* fix(GwfGwfExchangeModule): specific discharge not updated correctly for LGR

The sign for the face normal needed to be flipped for model 2 so that specific discharge would be calculated correctly.  Added a test to make sure that the velocities are correct.  Addresses #51.

* fix(GwfGwfExchangeModule): specific discharge not updated correctly for LGR

Updated the release notes and added some docstrings to the autotest.

* fix(ObsModule): implemented non-advancing output (#55)

Modified the pbservation process to use non-advancing output instead of
fixed length strings when writing ascii output. The previous use of
fixed length strings resulted in truncation of ascii observation output
when the product of user-specified digits + 7 and the number of
observations exceeded 5000.

Closes #54

* fix(GwfGwfExchangeModule): correct specific discharge calculation for LGR (#56)

* refactor(pre-commit.py): use OrderdedDict to load and write code.json

Updated the code.json writer to use an ordered dictionary so that the order is always the same.  This will minimize the number of changes that appear in the changelog due to ordering changes that do not change content.

* fix(GwfGwfExchangeModule): specific discharge not updated correctly for LGR

The sign for the face normal needed to be flipped for model 2 so that specific discharge would be calculated correctly.  Added a test to make sure that the velocities are correct.  Addresses #51.

* fix(GwfGwfExchangeModule): specific discharge not updated correctly for LGR

Updated the release notes and added some docstrings to the autotest.

* docs(dfn): fix 3 dfn typos (#59)

- `double` → `double precision`
- `valid_values` → `valid`
- `in_record = false` → `in_record false`

* docs(mf6ivar): readme.md needed a description of the valid keyword

* docs(mf6ivar): readme.md updated to include valid keyword (#60)

* refactor(pre-commit.py): use OrderdedDict to load and write code.json

Updated the code.json writer to use an ordered dictionary so that the order is always the same.  This will minimize the number of changes that appear in the changelog due to ordering changes that do not change content.

* fix(GwfGwfExchangeModule): specific discharge not updated correctly for LGR

The sign for the face normal needed to be flipped for model 2 so that specific discharge would be calculated correctly.  Added a test to make sure that the velocities are correct.  Addresses #51.

* fix(GwfGwfExchangeModule): specific discharge not updated correctly for LGR

Updated the release notes and added some docstrings to the autotest.

* docs(mf6ivar): readme.md needed a description of the valid keyword

* Corrected misspelling of execution in the release notes.

* docs(releasenotes): corrected spelling error in release notes (#64)

* refactor(pre-commit.py): use OrderdedDict to load and write code.json

Updated the code.json writer to use an ordered dictionary so that the order is always the same.  This will minimize the number of changes that appear in the changelog due to ordering changes that do not change content.

* fix(GwfGwfExchangeModule): specific discharge not updated correctly for LGR

The sign for the face normal needed to be flipped for model 2 so that specific discharge would be calculated correctly.  Added a test to make sure that the velocities are correct.  Addresses #51.

* fix(GwfGwfExchangeModule): specific discharge not updated correctly for LGR

Updated the release notes and added some docstrings to the autotest.

* docs(mf6ivar): readme.md needed a description of the valid keyword

* Corrected misspelling of execution in the release notes.

* fix(docs): maximum_iterations in gwf-sfr.dfn should be of type integer (#71)

fixes #70.

* fix(inputoutput): columns and width were not be checked properly for the print_format (#72)

Fixes #69.

This patch also includes some changes to the OutputControlData object so that it can be used directly in a package other than the output control package.  This new functionality is being used for the transport model as a way to save immobile domain concentrations in a manner similar to how heads are saved.

* test(test000_setup): download a zip file of modflow executables for testing purposes (#75)

Download a zip file of binary executables from https://github.com/MODFLOW-USGS/executables and unzip into autotest/temp/mfexes.  These binary executables can be used to help with testing, and reduces the amount of build time on Travis.  The getmfexes function will download the correct executables depending on the operating system, which can be either windows, mac, or linux.

* docs(hooks): update pre-commit hook (#76)

Update pre-commit hook to evaluate if repo is a fork of the main
repository. If it is a fork, the branch name is parsed from README.md
rather than using 'git status'. This will make pre-commit hooks work as
expected for fix-branch/pull request approach currently being used.

* fix(typos): fixed a variety of typos throughout project (#82)

* feat(maw): program head limit and rate scaling to work for injection wells

Updated code, added a new test, updated readme and mf6io files.

Also fix a few minor typos in the definition files.  And remove the PRECISION keyword from observation options since it is not supported.

* fix(src_cc): Add SFR convergence check (#85)

Add OUTER_RCLOSEBND variable to IMS that is used when performing final
convergence checks on model packages that solve a separate equation
not solved by the IMS linear solver. Add stage and residual convergence
checks to the SFR package to make sure that stage and upstream flow
changes between successive outer iterations are less than OUTER_HCLOSE
and OUTER_RCLOSEBND, respectively.

Modify the final convergence check for the LAK package to use
OUTER_HCLOSE when evaluating lake stage changes between successive
outer iterations. Modify the final convergence check for the UZF package
to use OUTER_RCLOSEBND when evaluating rejected infiltration,
groundwater recharge, and groundwater seepage changes between successive
outer iterations.

* refactor(mover): refactor and clean up water mover for possible BOUNDNAME support (#86)

This is some minor clean up to the water mover that improves some of the comments, and eliminates storage of a 20-character string for each water mover, and instead replaces it with an integer.  Reading of the reach id is now done using the IO utility, extract_idnum_or_bndname.

* docs(uzf): clarified dfn descriptions for nuzfcells and ivertcon (#90)

closes #84

* docs(dfn): improve description of ANGLDEGX and CDIST (#91)

closes #51

* refactor(autotest): refactor nightly build autotest scripts (#89)

Refactor nightly build autotest scripts to find appropriate directories
rather than having them predefined.

* refactor(MemoryManager): add mem_reassignptr functions and clean up (#92)

* Completed the mem_reassignptr routines so there are versions for int1d, int2d, dbl1d, dbl2d
* Adding optional name and origin arguments to the other array deallocate routines.  In general, we should be passing name and origin to the mem_deallocate routine.  Ultimately, I think we will want to make this mandatory.
* Discovered that rclose was not being deallocated and made the fix.  
* NPF variables K22 and K33 are now reassigned to K11 if they are not specified.  
* The memory manager type now has a new logical attribute called "master".  If true, then this means this this variable is the master version, and should be deallocated.  If this memory type is just a copy to another variable, then master should be set to zero.  This information is used for deallocation and for determining memory usage.
* closes #65

* refactor(BndType): Generalized BndType pointer to NPF ICELLTYPE to be model agnostic (#93)

ICELLTYPE is a member of BndType, which is supposed to be a general package class for GWF and other models.  But ICELLTYPE is an NPF thing.  This PR generalizes the ICELLTYPE member by allowing packages to set the origin of this variable.  For the GWF Boundary packages, the ictorigin value is set to "NPF".  If ictorigin is not set, then BndType will not try to set ICELLTYPE, and it will remain null().

Closes #67

* docs(dfn): update information on when vertices and cell2d information is required (#94)

* Closes issue #52

* refactor(Xt3dAlgorithmModule): reformatted source to look like MF6 source (#95)

* Closes issue #38

* fix(gwf3): correct error message to mention DISV6 (#97)

Close #96

* fix(listreader): corrected two typos to the word exist, which was spelled as exit (#98)

* docs(releasenotes): minor changes for release (#99)

* fix(comarg): exe cannot be in file path with a space (#101)

This is in reference to issue #100.

This PR also contains a small typo fix in uzf dfn

* fix(comarg): restored cexe to be executable basename instead of full exe path (#103)

Also restored the update_flopy script to remove all existing mf6 classes except mfsimulation.py.

Closes #103

* fix(disu): fixed error message for disu connectiondata block (#104)

* feat(compile): added gfortran compile flags to bomb if source code isn't clean

* Updated MODFLOW-USG download link

* removed the character-truncation flag.  Not clear how to get this to work for the fpp file.

* Reverting the size of words in namefile

* Had to turn off extra code error checking; was getting an error on linux that couldn't be resolved.

* small latex change

* Release 6.0.4.

* Fixed small bug in numericalsolution.f90.  Rereleasing this as version 6.0.4.

* small change to distribution script

* feat(release): updated develop with master

* fix(ci): fix to pre-commit when working on a fork

* fix(update_flopy): there is a new flopy.dfn file that cannot be removed (#112)

* refactor(tests): to work with recent flopy changes (#113)

* refactor(tests): to work with recent flopy changes

* fix(test_gwf_utl02): added the time series filename due to possible bug in flopy

* fix(disvdfn): corrected top shape to (ncpl) (#115)

* refactor(test000_setup.py): cleaning up the build process using new pymake functionality (#117)

* fix(dis/disv):  terminate with error if all IDOMAIN values less than or equal to zero (#124)

* fix(dis/disv):  terminate with error if all IDOMAIN values less than or equal to zero

* couple fixes to get tests running with new flopy code

* refactor(make-release): refactor updates to version numbers (#126)

* test(test000_setup): fallback for when os.path.relpath throws (#45)

Happens on Windows only. It is only used for logging, so no functional change.

* test(idomain): add zero idomain autotest (#129)

* fix(mover): added better error trapping for mover entries (#131)

* fix(mover): added better error trapping for mover entries

* more refactoring to eliminate use of memory manager in the mover object

* added characters to error message line length in memory manager

* Added mover test with a variety of mover options active

* some final cleanups on this mover patch

closes #130 

This required some fairly substantial refactoring of the mover object.  Instead of looking up information in the memory manager, the mover object is now passed packagemover objects, which should be much more efficient.

* test(returncodes): add mf6 return codes and command args autotest (#132)

Add mf6 return codes and command args autotest. Update return codes to
use select case.

* feat(ims): Add no_ptc_option FIRST and ALL to no_ptc options keyword (#134)

Add no_ptc_option FIRST and ALL to no_ptc options keyword. Add autotest
(test_gwf_noptc01.py) to test new option against simulation with PTC.

* docs(gwf.tex): minor fix (#135)

* ci(z01/z02): minor change to look for examples with .git extension (#136)

* fix(z02): correcting mistake from last commit (#139)

* ci(slack): add slack notifications

* fix(auxiliary): corrected advanced package auxiliary variables (#146)

* fix(auxiliary): corrected inconsistencies and bugs advanced package aux variables

Added a new test to make sure the aux variables are being carried correctly into the binary budget files.

* More on the auxiliary fix

* Another fix to get MAW right

* fix(ims): Allow for optional nonlinear and linear block (#147)

* ci(travis): Add simple test of Newton-Raphson with known solution (#149)

* fix(oc): error message causing runtime error (#152)

Close #151

* Update gwf-dis.dfn

Corrected a dfn typo as first reported here: https://github.com/modflowpy/flopy/pull/574/files

* fix(mkdist): error output problem in the make distribution script (#162)

Close #154

* docs(disu.dfn): small typo fix

* fix(evt): fixed error in evapotranspiration rate calculation (#169)

Closes #168

* refact(sync dfns): Disu dfn synced with flopy. (#188)

* refactor(sfr): move SfrDataType members into flat arrays (#194)

* refactor(sfr): converted the first 12 entries of SfrDataType to flat arrays

* refactor(sfr): ustrf flattening

* refactor(sfr): ftotnd flattening

* refactor(sfr): usflow flattening

* refactor(sfr): dsflow flattening

* refactor(sfr): depth flattening

* refactor(sfr): stage and gwflow flattening

* refactor(sfr): simevap flattening

* refactor(sfr): simrunoff flattening

* refactor(sfr): stage0 flattening

* refactor(sfr): flattening usflow0

* refactor(sfr): ndiv flattening

* refactor(gwf): cleaning up call statements and arguments(#202)

* refactor(gnc): removed mention of iasln as it was not used and named wrong

* refactor(gwf): cleaning up model%ia/ja confusion in gwf

* refactor(gwf): cleaning up call statements and arguments

* refactor(xt3d): minor comment cleanup

This is in preparation to be able to mask a primary connection between two model cells so that an interface model can be used to connect two models

* refactor(griddata): refactor grid data to isolate read and constructor (#197)

* fix(gwf3lak8): error trap for outlet lakein incorrectly compared against noutlet instead of nlak (#214)

Addresses issue #200

* fix(npf): reset lastedge to zero (#217)

* fix(npf): reset lastedge to zero

This change addresses issue #216

* test_gwf_npf04_spdis.py updated to multiple stress periods to test this fix

* fix(ListReaderType): initialize attributes in declaration (#220)

close #120

* feat(maxerrors): limit the number of errors stored to maxerrors (#221)

Error messages are stored in memory.  If something goes terribly wrong, the number of errors can be so large that memory runs out.  Limit the number of errors stored, by default, to 1000.  The user can control this maximum number by specifying MAXERRORS in the mfsim.nam options block.  Number of errors and number of errors above maxerrors are not written to mfsim.lst and to terminal.

Closes #106

* test(gwf_errors): new test to make sure mf6 is failing correctly (#222)

* test(gwf_errors): new test to make sure mf6 is failing correctly

* cleanup of model testing script

* feat(cmask): add mask for calculation of amat terms (#215)

* feat(cmask): skip calculation of amat terms in *_fc and *_fn for masked connections

The purpose of this PR is to allow another package or module to shutoff the flow connection between two cells.  A connection can be masked by calling set_mask with the position within the ja and amat arrays of the masked connection.  A value of zero means the connection is masked.  If not used, the masked array points to ja, which has non-zero values for all connections.  The first call to set_mask allocates new memory for the masked array of size nja and initializes all values to one.

* ci(.travis.yml)

Commenting out the "conda update conda" line to see what is causing Travis to fail

* ci(.travis.yml): add back conda update conda

Try adding back the conda update conda command to see if updating the cache fixed the issue.

* ci(.travis.yml): upgrade to xenial, replace miniconda with apt-get (#226)

* reduce repetition in matrix
* remove inactive features like sudo and cache: apt
* install packages with apt-get rather than miniconda

* feat(disu): ensure cell elevations decrease with depth (#224)

Closes #108

* docs(mf6io/ReleaseNotes): updates to describe changes for next release (#227)

* Closes #133.
* Closes #141.
* Closes #184.
* Add summary of issue #145 to ReleaseNotes

* feat(dis): add get_cellxy procedure to DisBaseType #204 (#228)

* Expose cell x,y values for all DIS
- add 'pure virtual' get_cellxy() to DisBaseType plus implementations in DIS, DISV, DISU.

* Expose cell x,y values for all DIS, continue
- redirect to appropriate type-bound procedures

Closes #204.

* fix(dis): cellxy in DIS (#239)

- fixed how celly is determined from column numbers

* ci(.travis.yml): use change branch of modflow6-examples (#242)

if modflow6-examples has a branch with the same name as the modflow6 branch that is being tested, then checkout that branch of modflow6-examples for the z01 autotest

* refactor(fortran): turned on gfortran flags for better error checking (#246)

* refactor(fortran): turned on gfortran flags for better error checking
* Close #182
* removed the min_satthk variable from xt3d as it is not needed

* fix(fortran): turn on gfortran 2008 standard check (#248)

Closes #183
Added -pedantic -std=f2008 flags for gfortran compiling

* test(rch): add test for reported issue #181 (#249)

bug could not be reproduced
close #181

* feat(anistropy): add anisotropy input option for NPF (#253)

* close #34 
* added K22OVERK and K33OVERK NPF options
* added test for anisotropy and updated definition files
* refactored routine in InputOutput.f90 to eliminate antiquated computed goto statement
* updated release notes

* fix(getblock): many of the parser%getblock calls did not have supportopenclose=.true. (#254)

added supportopenclose=.true. to many getblock calls
close #163

* fix(mf5to6): fix converter for multiple mnw2 wells (#256)

* converter had multiple bugs for multiple MNW2 wells that spanned multiple model layers
* closes #185
* added history to converter document

* refactor(dfn): turn off default for maxerrors (#257)

* feat(disu idomain): add support for disu idomain (#261)

* feat(disu): adding idomain capability to disu

* couple of fixes to get disu working for non-reduced grids

* Found another place in disu where a conversion to user node number is required

* change variable name

todo list:
still need to consider converting iac to ia right away
change usr to input for variable names so as not to conflict with iausr/jausr in connections
add more comprehensive test
add idomain validity check
support idomain < 0 values

* more cleanup on disu idomain support

* more disu cleanup and idomain testing

* cleanup comments

* Updated release notes

* docs(version): update doc information and version (#264)

* Updated a couple doc files for DISU IDOMAIN changes
* Updated version to reflect the upcoming 6.1.0 release

* feat(csub): Add csub package to develop (#262)

* refactor(uzf): converting to large vector storage (#265)

* change from UzfBndKinematic to UzfCellGroup
* updated release notes
* deallocate a couple NPF variables
* close #107

This change converts the array of structures implemented for UZF into a structure of arrays (contained in UzfCellGroupType) in order to prevent excessive memory requirements.

* docs(release notes): few small changes to get ready for release (#266)

* ci(mkdist): getting 6.1 distribution ready (#267)

* docs(csub): corrected a few typos and updated date (#270)

* 6.1.0 release

* merge master into develop and update version to 6.1.1

* fix(uzf): fix indexing error in UZF (#274)

* Error introduced as part of recent UZF refactoring
* Closes #273

* fix(memory): some variables not deallocated (#278)

Implemented new check in develop mode so code bombs with error if memory manager variable not deallocated

* refactor(budobj): new budget object for advanced packages (#279)

* single code base for writing binary budget files for advanced packages
* single code base for creating and writing budget tables to list file for advanced packages
* implemented for MAW, UZF, LAK, SFR, and MVR
* closes #277
* update mf6exes from 2.0 to 3.0
* will allow generalized transport calculations for advanced packages

* refactor(advanced packages): read static data as part of df() (#281)

* refactor(advanced packages): modify advanced packages to read all static data as part of df()
* modify setup_budobj to include the connectivity so that it is available to other models

* fix(budterm): initialize nlist to zero (#283)

* initialize nlist to zero (#284)

* fix(lak): initialize chdratin and chdratout to zero (#286)

* fix(lak): added sign checks for user specified lak flow terms (#288)

* User-specified values for RAINFALL, EVAPORATION, RUNOFF, INFLOW, and WITHDRAWAL must be positive.  The program worked if these values were negative, but that doesn't necessarily make sense and is probably an input error.
* Updated definition file to reflect these changes
* Corrected minor typo in lake definition file
* Updated release notes to reflect this change
* Close #287

* feat(sfr): add storage term to sfr budget (#293)

* Also includes a reach volume term written as an aux variable.  This is needed for transport.
* initialize str so non-ascii characters don't show up in output files
* updated notes for these changes

* * fix(csub): Fix CSUB binary budget data saved as IMETH=6 datatype

closes #290

* refactor(sfr): Refactor SFR Package to remove use of Geometry objects (#296)

* refactor(sfr): Refactor SFR Package to remove use of Geometry objects

* doc(pak-ts): update description of package timeseries variables. 

* ci(yml): update yml to clone shallow copy of flopy and pymake repos

* doc(release): Update release notes

* Closes #276, and #289

* refactor(xt3d): accumulate flowja instead of set (#306)

This change is required for transport, which accumulates terms in flowja

* fix(dis): corrected connection vector error in DIS package (#308)

Code was incorrectly calculating cell center elevations when nozee was .false.  This error would have affected XT3D simulations with unconfined flow and non-zero values specified for ANGLE2 in the NPF Package.  It also would affect dispersive transport with XT3D for unconfined conditions.

* Update sln-ims-example.dat

* refactor(maw): refactor MAW conductance calculation for issue 305 (#310)

Add traps to catch 1) skin factors that are <= 0 when using the SKIN
conductance equation and 2) and negative saturated conductances values.

Closes #305

* feat(tableobj): Add a generic table object for lst file output (#303)

Full implementation for SFR package. Partial implementation for LAK, MAW, and UZF packages.

* feat(tableobj): update MAW package to use tableobj for data output (#315)

Also fix some budget reporting issues in the MAW package

* fix(auxmult): auxmult fix when auxmult and bound are in time series (#316)

* change order of time series interpolation so aux is done first in case it is an auxmult column
* partially addresses #314
* updated release notes

* refactor(BoundaryPackage): Add use of TableObject for print_flows option (#317)

* feat(lnf): update n-point geometry package data

* Revert "feat(lnf): update n-point geometry package data"

This reverts commit 3460cfb.

* fix(lak): revise the way outlet to-mvr flows are stored in budobj (#321)

* fix(lak): revise the way outlet to-mvr flows are stored in budobj

* updated release notes

* refactor(lak/maw/sfr): for CONSTANT features write fixed value instead of DHNOFLO to binary file (#329)

* refactor(lak/maw/sfr): for CONSTANT features write fixed value instead of DHNOFLO to binary file

* update release notes

* fix(maw): new headtable corrected to have mawwells rows instead of maxbound (#332)

* fix(sfr): Remove upstream_fraction check from PACKAGEDATA block (#334)

closes #324

* feat(transport): update develop with some general routines needed for transport (#339)

* feat(transport): update develop with some general routines needed for transport
* fix(mover): correct typo in error message
* closes #336
* refactor(disu): correct type in disu error message
* closes #635

* fix(csub): Allow interbed observations when no interbeds specified (#338)

DNODATA values reported if 1) delay interbed observations are specified
and no delay interbeds are specified and 2) interbed observations are
specified and the number of interbeds is zero. Added test of all
observation types to test_gwf_csub_sk01.py which has no interbeds.

closes #298

* ci(travis): update travis.yml to install miniconda instead of apt python (#346)

* refactor(mf6): standardize output to STDOUT to use istdout variable

* refactor(mf6): standardize output to STDOUT to use istdout variable

Modify mf5to6 to use standard SimVariables.f90 in mf6 src and add
ListType variables in original mf5to6 SimVariables.f90 file to
SimListVariables.f90 and update use statements.

* feat(npf): add save saturation option to NPF (#351)

* changed some things to public in lak, uzf, sfr
* fixed minor bug in uzf
* updated release notes and dfn files
* modified lak to store hlak and clak in the bound array

* refactor(sim_message): Refactor to have independent sim_message (#353)

* bug(csub): Write better cellid format to strain csv files (#355)

Write integer cellids to csv files instead of string. Add method
to discretization classes to return array of user indices. Refactored
table output to use table object instead of UWWORD.

closes #299

* fix(csub): Add additional inelastic- and elastic-compaction-cell obs. (#356)

Closes #302

* fix(csub): Report NODATA for CSUB observ. not calculated in steady-state (#359)

CSUB source has been modified to report NODATA values for observations
that are not calculated during steady-state stress periods.
Observations that are not calculated for steady-state stress
periods include SKE, SK, SKE-CELL, SK-CELL, DELAY-HEAD,
DELAY-PRECONSTRESS, DELAY-GSTRESS, DELAY-ESTRESS, PRECONSTRESS-CELL.
Update mfio to reflect these changes.

Also modified CSUB observations so that thick-cell observation is
correctly calculated during steady-state stress periods.

Closes #300

* Merge refactor-src into develop (#361)

* refactor(ListReader): Refactor ListReader to use table object (#362)

* fix(npf): remove isavsat hardwire (#364)

* refactor(src): remove unused variables (#366)

* update mkdist.py to copy additional MSVS solutions and projects

* refactor(uzf): refactor uzf to use table object instead of UWWORD (#367)

* refactor(uzf): refactor uzf to use table object instead of UWWORD

Also simplify table object to write tables of unknown length.

* refactor(uzf): refactor uzf to use table object instead of UWWORD

Simplify table object to write tables of unknown length. Update
observations to use table object when PRINT_INPUT (iprpak=1) is
specified to write input observation data.

* fix(uzf): flowjaface is not ordered for uzf (#372)

* fix(bnd_cf): make another call to bnd_cf routines in gwf bnd_bd (#378)

* boundary budgets were being calculated using hcof and rhs values from the previous iteration.  This could cause drain flows to be into the aquifer, for example. This fix recalculates the package hcof and rhs values in bd using the final head solution.

* update release notes to reflect this change

* docs(sfr/lak): couple minor doc changes (#380)

* refactor(src): remove unused variables

* update mkdist.py to copy additional MSVS solutions and projects

* docs(sfr/lak): couple minor doc changes

* feature(ims): add additional solver output (#375)

Closes #375

* refactor(lak package dfn - perioddata): combined all perioddata into one recarray (#381)

* refactor(lak package dfn - perioddata): combined lakeperioddata and outletperioddata into perioddata

* refactor(lak stress period data): updated dfn

* feature(ims): refactor package convergence check (#382)

* Introduce end-of-line normalization (#386)

* refactor(xt3d): update develop with minor changes needed for transport (#388)

* feature(ims): update inner iteration summary (#389)

* refactor(NumericalSolution): refactor csv output (#395)

* refactor(NumericalSolution): refactor csv output

Refactor csv output to save at the end of the each outer iteration. Add
options to save separate outer and inner iteration data.

closes #172

* refactor(NumericalSolution): refactor *_cc() methods (#396)

Refactor *_cc() methods to pass package integer (ipak) location
information and the total number of inner iterations. The ipak
variable simplifies construction of the solution outer iteration
information for the csv file. The total number of inner iterations
makes package convergence csv files consistent with the outer iteration
csv file.

Update the release notes to reflect recent changes to csv convergence
output. Also moved changes for previous versions to release notes
appendix (Appendix A).

Co-authored-by: jdhughes-usgs <[email protected]>
Co-authored-by: Martijn Visser <[email protected]>
Co-authored-by: Mike Taves <[email protected]>
Co-authored-by: spaulins-usgs <[email protected]>
Co-authored-by: mjr-deltares <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants