-
Notifications
You must be signed in to change notification settings - Fork 117
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
fix(gwf-npf.f90): leave k22 and k33 allocated if tvk active #1012
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2nd test of this bug fix specifies alternate values of k33 in TVK, but they should have no effect on flows between stress periods 1 and 2. The test asserts that this condition holds true |
…ot make any changes).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good overall. Thanks for tackling this.
langevin-usgs
added a commit
to langevin-usgs/modflow6
that referenced
this pull request
Sep 5, 2022
mjr-deltares
pushed a commit
that referenced
this pull request
Sep 6, 2022
* refactor(npf): always allocate and store k22 and k33 * Prior to this PR k22 and k33 would point to k11 if they weren't specified by the user in order to save memory * With this PR, k22 and k33 are always allocated and stored, even if they aren't specified by the user * This simplifies the code and makes API access to k22 and k33 more straightforward, at the memory cost of two grid-sized arrays in some cases * Closes #1000 * add two new tests from Eric Morway's previous pull request (#1012)
Replaced by #1031 |
langevin-usgs
added a commit
that referenced
this pull request
Dec 1, 2022
* ci(release): reinitialize develop for next release * docs(releasenotes): reinitialize release notes for next release (#922) * feat(maw-mfrcsv): add option to write MAW flow reduction to csv (#925) add option to write MAW extraction and injection flow reductions to csv. Co-authored-by: kzeiler <kkzeiler@gsi-net.com> * fix(openfile): report file that could not be opened (#932) Start adding doxygen comments and reformatting older code. Closes #931 * fix(flopy interface change): updated dfn files and test cases to work with flopy's new interface (#933) * feat(dfn): Move information from flopy.dfn into the header of the package dfns. * fix(test cases): test cases changed to work with new flopy interface * testing * remove test * fix(GwfGwtExchange): update indexing variable when MVR is active (#934) Fixed indexing error for flow/transport model when MVR is active and aux variables are used for concentrations. Two new autotests patterned after the test_gwt_ssm01FMI autotest drop RIV, add SFR, and add MVR and MVT to transfer water and solute from a WEL to SFR. This condition resulted in an error message that not should have been printed to the screen. However, the error condition only happened when the flow and transport simulations were run simultaneously (the 2nd of the two new autotests). The first autotest runs the models separately and has been added for completeness (tests the same configuration that runs GWF & GWT simultaneously). Both autotests use auxiliary variables and mover in the WEL package, the condition condition that previously triggered an error msg that shouldn't have been triggered (see below). * ci(compiler): specify FC env var in CI (#921) * Not strictly needed, but why shouldn't we be explicit about it. * Failure is know sporadic failure on macOS * fix(xt3d): array access error for highly refined nested gwf or gwt model (#939) * The xt3d procedure for storing and adding matrix coefficients for extended xt3d connections did not work for lgr configurations in which a highly refined child model was nested inside a coarser parent model. The logic was improved so that matrix terms added by exchanges were properly handled by the internal calculations used by xt3d. Prior to this fix, the xt3d logic assumed that any matrix terms added to the local model space of the solution were because of xt3d. This can no longer be assumed for lgr configurations. * refactor(GwfMvr): store mover variables in memory manager (#940) * create new GwfMvrPeriodData object for reading and storing mover stress period data * store mover stress period data as vectors in the memory manager * revise the low-level mover object to point into the input data * update makefile * doxygenate * fix(evt): check to ensure pxdp is specified correctly (#941) * implementation assumes user specifies pxdp in order from low to high and that values are between zero and 1.0. * Addresses #938 and #930 * fix duplication of final error message upon termination * update release notes * Improve vscode meson integration (#945) - Removes compile call. This is already done by install. Now it doesn't give a confusing message anymore. - Print the commands it runs * refactor(gwt): Create generalized transport base class for gwe (#942) * refactor(gwt): set hooks to prepare for for gwe * Update header comments * Add new generalized transport module to meson.build * amendment needed in another makefile as well. * Add issue templates * fix(api): fix memory path case for IMSLINEAR (#952) * refactor(CSUB): refactor CSUB to make tridiagonal solve generic subroutine (#954) * style: apply fprettify formatting (#956) * ci(disu): add disu transport test (#958) * style(exchanges): apply fprettify formatting (#957) * working toward consistent code formatting * (fix) small mf6core style issues (#949) * style(connections): apply fprettify formatting (#960) * working toward consistent code formatting * style(geometry): apply fprettify formatting (#961) * working toward consistent code formatting * feat(api): add get_version routine to modflow api (xmi) (#936) * add get_version routine to modflow api (xmi) * update xmi get_version * docs(developer): require Python3.8 per xmipy dependency (#964) * style: convert python scripts to use f-strings (#965) Downgrade GitHub Actions windows VM to use server-2019. Black formatting and isort on python scripts. * docs: Fix vscode instructions (#962) * docs: Fix vscode instructions Fixes #959 * docs: Improve instructions * Update .vscode/README.md Co-authored-by: langevin-usgs <langevin@usgs.gov> Co-authored-by: langevin-usgs <langevin@usgs.gov> * style(gwf): apply fprettify formatting (#963) * working toward consistent code formatting * feat(memory): fully implement storing of strings and 1d string arrays (#966) * style(gwt): apply fprettify formatting (#969) * working toward consistent code formatting * ci: update scripts to use meson to build instead of pymake (#967) * ci: test build_nightly script (#970) * ci: update build_nightly script (#971) * fix(ci): workaround for windows-2022 gfortran executable run failures (#968) * fix(util): remove rogue file (#972) * ci: update Intel OneAPI version (#973) * style(model): apply fprettify formatting (#974) * working toward consistent code formatting * add enable-decl and strip-comments to fprettify configuration * test(gwf_disv_uzf): New autotest checks uzet and gwet results (#947) * ci: fix Intel OneAPI build on Windows (#978) The issue is caused by the latest meson release. Exclude meson version 0.63.0. Update meson.build with additional compiler switches to make consistent with pymake builds. * style(exchange, solution): apply fprettify formatting (#975) * working toward consistent code formatting * fix(util-sparse): fix stack overflow exception in overloaded sparse init (#979) * style(sim, timing, util): apply fprettify formatting (#980) * working toward consistent code formatting * does not include InputOutput.f90 which requires more significant restructuring * ci(actions): add ci action to check fortran source formatting (#982) * fix(compilerversion): fix format statement (#983) * style(srcbmi): apply fprettify formatting (#984) * working toward consistent code formatting * docs(formatting): add fortran source formatting to documentation (#981) * docs(formatting): add fortran source formatting to documentation * reorganize vscode README and include fprettify integration * update DEVELOPER and CONTRIBUTING docs to describe tools and standard * docs(formatting): add fortran source formatting to documentation * reorganize vscode README and include fprettify integration * update DEVELOPER and CONTRIBUTING docs to describe tools and standard * docs(formatting): add fortran source formatting to documentation * reorganize vscode README and include fprettify integration * update DEVELOPER and CONTRIBUTING docs to describe tools and standard * docs(formatting): add fortran source formatting to documentation * reorganize vscode README and include fprettify integration * update DEVELOPER and CONTRIBUTING docs to describe tools and standard * Add conda `environment.yml` (#977) This commit adds an `environment.yml` which should make it easier to keep docs and CI in sync. It also changes the behavior of the vscode tasks. It expects an environment called `modflow6` created with the following command. ``` conda env create --force -f environment.yml ``` You might also want to change your `"fortran.fortls.path"` setting to the `fortls` in your `modflow6` environment. Ideally, you would use this environment for your daily development work as well and adapt it if our dependencies change. * style(zonebudget): apply fprettify formatting (#985) * working toward consistent code formatting * ci: update ubuntu VM to latest for previous gfortran versions (#986) Make workflow for gfortran versions (5 & 6) that are not available on ubuntu-latest VM. Cleanup workflows to use mamba instead of pip where possible. Update rtd to use myst_parser instead of reconnmark to convert markdown tables to html. * ci(actions): cache mamba conda downloads and environment (#988) * fix(npf: k33/k11 error (GitHub issue #989) (#990) Close #989 * docs(DEVELOPER.md): Visual Studio for ifort (#991) * Update DEVELOPER.md I removed the Visual Studio installation on my Windows laptop (because I'm using VSCode), and then I found out ifort wouldn't compile anymore. I reinstalled Visual Studio, but still got a confusing error: "visual studio 2017 or 2019 is not found in c:\program files (x86)\microsoft visual studio\<2017 or 2019>\<edition>, please set vs2017installdir or vs2019installdir". This is resolved by installing the C++ Desktop Development components. Apparently, the ifort compilers rely on some of the C++ parts. I'm quite confident some parts aren't required (E.g. Test Adapter for Boost.Test), but I haven't done the research to find which parts are required and not. At the least, just checking the "Desktop Development with C++" checkbox does the trick. * Update DEVELOPER.md * fix(timeseries): ensure METHOD/METHODS specified in ATTRIBUTES block (#993) * fix(gwfgwt): ensure GWF and GWT are in different IMS (#994) * close #946 * GWF must be in a separate IMS that is solved before GWT * fprettify * ci: downgrade rtd python version to 3.8 * ci(rtd): remove pinned markdown version (#997) * docs(gwf-buy.dfn): variable description refers to block that does not exist (#1004) * fix(disv): check for zero cell area (#1010) Close #1009 * fix(gwtgwt): allow exchange to work without XT3D active for dispersion (#1008) * ci: update path for rtd requirements * ci(z03): prevent regression on gwtgwt example since keyword changed (#1011) * fix(gwt): LKT fix for outlet flows (#1015) * When the LAK Package was used with a combination of outlets that routed water to another lake and outlets that did not, then the budget information stored for the LAK Package had uninitialized records for LAK to LAK flows. These uninitialized records were used by the LKT Package and possibly other programs. The LAK to LAK budget information was modified to include only valid records. * Close #1006 * Close #1007 * fix(ci): remove gfortran end of life 5 and 6 (#1017) * remove workflow * fix z03 test to not run comparison model if make_comparison == False * feat(string): implement CharacterStringType (#1013) * new CharacterStringType can be used for storing jagged array; however, MemoryManager implementation stores only non-jagged character arrays * Related to #987, #996, and #856 * implemented new character string array for boundname (called boundname_cst) * implemented new character string array for auxname (called auxname_cst) * auxname_cst and boundname_cst will be available through API, but only as a copy * a follow up pull request by @mjr-deltares will support string access through the MODFLOW API * additional PRs are needed to add strings to the memory manager * additional PRs are needed to check for other auxname and boundname uses (for example, csub) and implement memory manager copies of them for API access * feat(API string support): support string access through API (#1023) * doc(gwt-uztobs.tex): fix typo in uzt obs type (#1026) fixes #1025 * fix(gwt obs): refactor GWT obs for LKT, SFT, MWT, and UZT (#1024) * Close #1019 * Close #1021 * Add GWT OBS tests to test_gwt_prudic2004t2.py and to MWT and UZT tests * Update release notes * Update erroneous observation text in mf6io * fix(npf): sat thickness fix for vertically staggered confined cells (#1027) * Close #1022 * Introducing the concept of distributed data without functional changes (#1029) * First working version (GWF) of syncing distributed model data * Distributed data in progress (contains floating point exception) * fixed gwfflowja mapping for gwtgwt * add space * minor tweak for readability * bug fix: removed pointer attribute from input arg * add porosity to dist. variables * add new files to vs * change to list of dist vars * WIP: last test failing: *mult_exg * fix test (interface corner cases) * "fprettify the world" * cleaning up * move fmi variables to interface model * a bit more cleanup * add primary exchange to interfacemap, getting rid of the lookup operation in setFlowToExchanges * update makefile * fprettify some more * we cannot use findloc (yet) * removed unused variable * fix(stringlist): allocate string before assignment (#1030) * refactor(npf): always allocate and store k22 and k33 (#1031) * refactor(npf): always allocate and store k22 and k33 * Prior to this PR k22 and k33 would point to k11 if they weren't specified by the user in order to save memory * With this PR, k22 and k33 are always allocated and stored, even if they aren't specified by the user * This simplifies the code and makes API access to k22 and k33 more straightforward, at the memory cost of two grid-sized arrays in some cases * Closes #1000 * add two new tests from Eric Morway's previous pull request (#1012) * docs: Add vsdbg to vscode docs (#1032) Turns out you need to run vsdbg to debug with ifort compiled binaries on Windows. * fix(budgetcsv): fix intermittent failure with budgetcsv option (#1035) * Close #1033 * patch(apt): add variables to memory manager (#1036) * arrays used for indexing locations in the numerical solution array are now stored in memory manager * revise the way iasym is set for the GWT model * feat(context): increase mempath to allow for context (#1037) The memory path has been increased in size by LENCONTEXT plus a memory path separator to allow for an optional context to be supplied. * fix(exg): cellid not correct in error message (#1040) * If cellid in exchange is in IDOMAIN<1 cell, then the cellid written to the error message was wrong * Close #1038 * docs(mf6io): fix discrepancy in EVT example (#1041) * data in the period block contains pxpd1 and pxpd2, implying nseg=3, but nseg not specified which suggests a default value of 1 * cleanup variable names * fix(lak): withdrawal and budget errors (#1045) * Close #1043 * When a WITHDRAWAL value was specified for lakes, only the withdrawal value for the last lake would be reported in budget files, lake budget tables, and in lake withdrawal observations. This error would also be propagated to the GWT Lake Transport (LKT) Package, if active. This error would only show up for models with more than one lake and if the lake withdrawal term was included. * When lakes were assigned with the STATUS CONSTANT setting to prescribe the lake stage, the CONSTANT term used in the lake budget table was tabulated using an incorrect sign for aquifer leakage. This error would result in inaccurate budget tables. The program modified to use the correct leakage values for calculating the CONSTANT term. * The BUDGETCSV option was activated to work for the GWT advanced packages; although the keyword option was read, the file remained empty. * A new test was added for LAK and LKT * The bedleak entry in gwf-lak.dfn support was specified as DOUBLE PRECISION even though NONE could be specified. This meant that lake packages could not be loaded by flopy if bedleak was specified as NONE. * The description for the SS_CONFINED_ONLY option in the GWF Storage Package was improved. * The release notes were updated to reflect these changes. * ci: use fortran compiler cache/install actions (#1042) * fix(evt): model crashes with option SURF_RATE_SPECIFIED and nseg=1 (#1047) * fix model crash with option SURF_RATE_SPECIFIED and nseg=1 * add a brief description in the release notes * docs(releasenotes): hotfix to escape underscore in release notes (#1049) * release notes was updated in #1047 and broke nightly build * minor change to npf * feat(NumericalPackage): store the package type in the memory manager (#1055) * store package_type as a string variable stored in the memory manager * duplicates this%filtyp * More extensive refactoring can be done to store name_model and package_name in memory manager * refactor(dis): remove unused DIS code and change NPF array initialization (#1056) * remove dis_init_mem routines as they were not being used * change size of unspecified NPF arrays to be zero instead of 1, which will help support a forthcoming interface model pull request * update some tex files that had not been updated based on changes to the dfn files * rfct(npf/dsp): move read grid data from ar to df (#1057) * moved npf array allocation and grid data reading up to npf_df * this is preparatory work for the synchronization in interface model (towards parallelization) * rfct(dis): add xc, yc to DIS as cell center coordinates (#1060) * prep. refactoring for the interface model: - introduced cell center coordinate arrays for all DIS, getting rid of get_cellxy subroutine - transform_xy is now stateless * rfct(ifmod): introducing concept of distributed data (#1059) * move allocate_arrays up to _df for dsp and npf * - add BEFORE_AR stage to synchronization - adding some npf vars (K11, K22, K33, ICELLTYPE) - introduced delayed retrieval of memory items in sync, others (and for dsp too) are awaiting input data model * first test with dist data access: tests green * Further reduction of using (numerical) model pointers in the interface model framework * moved npf array allocation and grid data reading up to npf_df * undoing this temporarily * fix: remnant causing double allocation * save progress: full npf synchronization is working now * npf data in interface is now fully synchronized * move allocate arrays and reading grid data up to define for dsp * interface model dsp synchronization implemented too * update makefile * update msvs * fprettify * fixing merge error * load ia and ja instead of pointer * prep. refactoring for the interface model: - introduced cell center coordinate arrays for all DIS, getting rid of get_cellxy subroutine - transform_xy is now stateless * replacing more pointers with load from memory * fixing typo in disv * fix: DISU does not always have cellxy data * fprettify * Regional lookup table converted to using DistributedModelType too * Fully removed model pointer from global cell data structure * fix(maw): patch-up relatively minor typo (#1063) * fix(getblock): add error message if block not found (#1065) * uget_block did not terminate with an error when looking for a required block and found end of file instead * update release notes * Close #148 * ci: add meson test for installation success (#1062) * feature(input-data-model): add idm core with initial package use (#1064) * introduce dfn derived fortran input definition format * add script to generate input definitions * add generic input loader for mf6 file types * add mem_set_value interface * update dis, disv, disu, npf, dsp to source input from input data path * pass invalid npf,dsp inunit number from interface model * add doxygen comments for IDM routines * fprettify Co-authored-by: mjreno <mreno@IGSAAA071L00066.gs.doi.net> Co-authored-by: Langevin, Christian D <langevin@usgs.gov> * refactor(arrayreader): working on object-based array reader (#1067) * refactor(input-data-model): rework found construct for readability and maintainability (#1072) Co-authored-by: mjreno <mreno@IGSAAA071L00066.gs.doi.net> * refactor(io): miscellaneous io cleanup (#1073) * fix(buy): add missing else; switch messaging to lowercase (#1077) * ci: refactor/update miscellaneous (#1076) * switch from modflowpy/install-gfortran-action to awvwgk/setup-fortran for gfortran setup * rename test_z03_largetests.py to test_z03_largetestmodels.py (allows cleaner CI config) * bump latest gfortran tests, nightly build tests and large/example model tests to GCC/gfortran 12 * colocate push-triggered CI jobs in ci.yml * update CI badges in readme * mark get_exes tests as flaky to retry download on failure (and add flaky to environment.yml) * add ci-diagnose* to branches triggering CI * feat(vsc): New viscosity package for GWF model type (#1071) Addition of new viscosity package for the GWT Model * fix(uzf): uzf not routing properly (#1082) * uzf did not route water to water table unless there was an underlying uzf cell * Close #1075 * add test for uzf fix * update release notes for next release * doc(suptechinfo): Update MF6 enhancements table in Ch. 1 (#1083) * fix(zbud): fix zonebudget for spaces in path (#1085) * fix(zbud): fix zonebudget for spaces in path * update release notes * typo * fix(autotest): resolve inconsistent length units in Prudic model (#1058) * close #1053 * fix(mf5to6msvs): update Visual Studio file for mf5to6 (#1086) * docs(release): preparation for 6.4.0 release (#1089) * fix(vsc): issue error if VSC used in GWF-GWF model (#1090) * update release notes * issue error if more than one VSC6/BUY6 package active * convert to lower case error messages * create 6.4.0 release * fprettify and use 11/30/22 release date Co-authored-by: kzeiler <80273038+kzeiler@users.noreply.github.com> Co-authored-by: kzeiler <kkzeiler@gsi-net.com> Co-authored-by: jdhughes-usgs <jdhughes@usgs.gov> Co-authored-by: spaulins-usgs <spaulinski@usgs.gov> Co-authored-by: Eric Morway <emorway@usgs.gov> Co-authored-by: Hofer-Julian <30049909+Hofer-Julian@users.noreply.github.com> Co-authored-by: mjreno <renomik@gmail.com> Co-authored-by: mjreno <mjreno@ncsu.edu> Co-authored-by: mjr-deltares <45555666+mjr-deltares@users.noreply.github.com> Co-authored-by: w-bonelli <wbonelli@uga.edu> Co-authored-by: damianmerrick <damian.merrick@hydroalgorithmics.com> Co-authored-by: Huite <huitebootsma@gmail.com> Co-authored-by: w-bonelli <wesbonelli@gmail.com> Co-authored-by: mjreno <mreno@IGSAAA071L00066.gs.doi.net>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Includes new test that does not specify K33 in NPF; however, TVK then modifies K33 in the second stress period which would previously stomp on K11.
Fixes #1000