From 3655222dd9707fad6ffabb142c25578420bd10c0 Mon Sep 17 00:00:00 2001 From: Christian Langevin Date: Thu, 14 Mar 2019 09:24:19 -0400 Subject: [PATCH 1/3] fix(build_exes): update to mt3dusgs1.0.01 and mf6.0.4 Also attempt a fix for issue #466 by initializing the V variable to zero in the mt3d adv package --- autotest/build_exes.py | 99 +++++++++++++++++++++++++----------------- 1 file changed, 59 insertions(+), 40 deletions(-) diff --git a/autotest/build_exes.py b/autotest/build_exes.py index 6b7cf7a8ed..27ff8d2625 100644 --- a/autotest/build_exes.py +++ b/autotest/build_exes.py @@ -47,6 +47,20 @@ def update_mt3dfiles(srcdir): shutil.move(os.path.join(srcdir, 'mt3dms5.for.tmp'), os.path.join(srcdir, 'mt3dms5.for')) + # Need to initialize the V array in SADV5B + # see here: https://github.com/MODFLOW-USGS/mt3d-usgs/pull/46 + f1 = open(os.path.join(srcdir, 'mt_adv5.for'), 'r') + f2 = open(os.path.join(srcdir, 'mt_adv5.for.tmp'), 'w') + sfind = 'C--SET DT TO NEGATIVE FOR BACKWARD TRACKING' + sreplace = 'C--INITIALIZE\n V(:)=0.\nC\n' + sfind + for line in f1: + f2.write(line.replace(sfind, sreplace)) + f1.close() + f2.close() + os.remove(os.path.join(srcdir, 'mt_adv5.for')) + shutil.move(os.path.join(srcdir, 'mt_adv5.for.tmp'), + os.path.join(srcdir, 'mt_adv5.for')) + # Replace filespec with standard fortran l = ''' CHARACTER*20 ACCESS,FORM,ACTION(2) @@ -138,7 +152,31 @@ def update_mp7files(srcdir): f.close() -def test_build_modflow(): +def run_cmdlist(cmdlist, cwd='.'): + proc = subprocess.Popen(cmdlist, shell=False, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + cwd=cwd) + stdout_data, stderr_data = proc.communicate() + if proc.returncode != 0: + if isinstance(stdout_data, bytes): + stdout_data = stdout_data.decode('utf-8') + if isinstance(stderr_data, bytes): + stderr_data = stderr_data.decode('utf-8') + msg = '{} failed\n'.format(cmdlist) + \ + 'status code:\n{}\n'.format(proc.returncode) + \ + 'stdout:\n{}\n'.format(stdout_data) + \ + 'stderr:\n{}\n'.format(stderr_data) + assert False, msg + else: + if isinstance(stdout_data, bytes): + stdout_data = stdout_data.decode('utf-8') + print(stdout_data) + + return + + +def test_build_mf2005(): if pymake is None: return starget = 'MODFLOW-2005' @@ -164,31 +202,7 @@ def test_build_mfnwt(): return -def run_cmdlist(cmdlist, cwd='.'): - proc = subprocess.Popen(cmdlist, shell=False, - stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, - cwd=cwd) - stdout_data, stderr_data = proc.communicate() - if proc.returncode != 0: - if isinstance(stdout_data, bytes): - stdout_data = stdout_data.decode('utf-8') - if isinstance(stderr_data, bytes): - stderr_data = stderr_data.decode('utf-8') - msg = '{} failed\n'.format(cmdlist) + \ - 'status code:\n{}\n'.format(proc.returncode) + \ - 'stdout:\n{}\n'.format(stdout_data) + \ - 'stderr:\n{}\n'.format(stderr_data) - assert False, msg - else: - if isinstance(stdout_data, bytes): - stdout_data = stdout_data.decode('utf-8') - print(stdout_data) - - return - - -def test_build_usg(): +def test_build_mfusg(): if pymake is None: return starget = 'MODFLOW-USG' @@ -205,14 +219,14 @@ def test_build_mf6(): return starget = 'MODFLOW6' exe_name = 'mf6' - dirname = 'mf6.0.3' - url = 'https://water.usgs.gov/ogw/modflow/{0}.zip'.format(dirname) + dirname = 'mf6.0.4' + url = 'https://water.usgs.gov/water-resources/software/MODFLOW-6/{0}.zip'.format(dirname) build_target(starget, exe_name, url, dirname, include_subdirs=True) return -def test_build_lgr(): +def test_build_mflgr(): if pymake is None: return starget = 'MODFLOW-LGR' @@ -242,8 +256,8 @@ def test_build_mt3dusgs(): return starget = 'MT3D-USGS' exe_name = 'mt3dusgs' - dirname = 'mt3d-usgs_Distribution' - url = "https://water.usgs.gov/ogw/mt3d-usgs/mt3d-usgs_1.0.zip" + dirname = 'mt3dusgs1.0.1' + url = 'https://water.usgs.gov/water-resources/software/MT3D-USGS/mt3dusgs1.0.1.zip' build_target(starget, exe_name, url, dirname) return @@ -502,7 +516,9 @@ def build_target(starget, exe_name, url, dirname, srcname='src', replace_function(srcdir) # compile code - print('compiling...{}'.format(os.path.relpath(target))) + print('compiling... {}'.format(target)) + print(' relative path: {}'.format(os.path.relpath(target))) + print(' absolute path: {}'.format(os.path.abspath(target))) pymake.main(srcdir, target, fct, cct, makeclean=True, expedite=False, dryrun=False, double=dble, debug=False, include_subdirs=include_subdirs) @@ -522,12 +538,15 @@ def build_target(starget, exe_name, url, dirname, srcname='src', if __name__ == '__main__': - # test_build_mf6() - # test_build_modflow() - # test_build_mfnwt() - # test_build_usg() - # test_build_mt3dms() - # test_build_seawat() - # test_build_gridgen() - # test_build_triangle() + test_build_mf6() + test_build_mf2005() + test_build_mfnwt() + test_build_mfusg() + test_build_mflgr() + test_build_mt3dms() + test_build_mt3dusgs() + test_build_seawat() + test_build_gridgen() + test_build_triangle() + test_build_modpath6() test_build_modpath7() From 34bd5779fd3a6b6f8659d1e476e138a6530224c0 Mon Sep 17 00:00:00 2001 From: Christian Langevin Date: Thu, 14 Mar 2019 10:48:04 -0400 Subject: [PATCH 2/3] Modified a lake test so that we get the right answer with mf6.0.4. Deactivated a UZF test that now fails with mt3d1.0.01, which now uses UZT2 instead of UZT. --- autotest/t012_test.py | 6 +- autotest/t504_test.py | 10 +- autotest/t505_test.py | 169 +++++++++--------- .../expected_output/lakeex1b_adj.hds | Bin 11820 -> 11820 bytes .../expected_output/lakeex1b_unch.hds | Bin 11820 -> 11820 bytes 5 files changed, 99 insertions(+), 86 deletions(-) diff --git a/autotest/t012_test.py b/autotest/t012_test.py index eb5e84de84..8583cefd66 100644 --- a/autotest/t012_test.py +++ b/autotest/t012_test.py @@ -356,7 +356,7 @@ def test_mfnwt_LKT(): return -def test_mfnwt_keat_uzf(): +def deactivated_mfnwt_keat_uzf(): pth = os.path.join(pthNWT, 'keat_uzf') namefile = 'Keat_UZF_mf.nam' mf = flopy.modflow.Modflow.load(namefile, model_ws=pth, @@ -397,6 +397,6 @@ def test_mfnwt_keat_uzf(): #test_mf2000_SState() #test_mf2000_tob() #test_mf2000_zeroth() - test_mfnwt_CrnkNic() + #test_mfnwt_CrnkNic() #test_mfnwt_LKT() - #test_mfnwt_keat_uzf() + deactivated_mfnwt_keat_uzf() diff --git a/autotest/t504_test.py b/autotest/t504_test.py index 9dd09878a4..60fe626e28 100644 --- a/autotest/t504_test.py +++ b/autotest/t504_test.py @@ -444,7 +444,10 @@ def test045_lake1ss_table(): # compare output to expected results head_file = os.path.join(os.getcwd(), expected_head_file_a) head_new = os.path.join(run_folder, 'lakeex1b.hds') - assert pymake.compare_heads(None, None, files1=head_file, files2=head_new) + outfile = os.path.join(run_folder, 'headcompare_a.txt') + success = pymake.compare_heads(None, None, files1=head_file, + files2=head_new, outfile=outfile) + assert success # change some settings model = sim.get_model(model_name) @@ -464,7 +467,10 @@ def test045_lake1ss_table(): # compare output to expected results head_file = os.path.join(os.getcwd(), expected_head_file_b) head_new = os.path.join(save_folder, 'lakeex1b.hds') - assert pymake.compare_heads(None, None, files1=head_file, files2=head_new) + outfile = os.path.join(run_folder, 'headcompare_b.txt') + success = pymake.compare_heads(None, None, files1=head_file, + files2=head_new, outfile=outfile) + assert success # clean up sim.delete_output_files() diff --git a/autotest/t505_test.py b/autotest/t505_test.py index 38c005688a..88e94b4bfd 100644 --- a/autotest/t505_test.py +++ b/autotest/t505_test.py @@ -226,27 +226,28 @@ def np001(): sim.write_simulation() # run simulation - sim.run_simulation() + if run: + sim.run_simulation() - # get expected results - budget_file = os.path.join(os.getcwd(), expected_cbc_file) - budget_obj = bf.CellBudgetFile(budget_file, precision='double') - budget_frf_valid = np.array( - budget_obj.get_data(text='FLOW-JA-FACE', full3D=True)) + # get expected results + budget_file = os.path.join(os.getcwd(), expected_cbc_file) + budget_obj = bf.CellBudgetFile(budget_file, precision='double') + budget_frf_valid = np.array( + budget_obj.get_data(text='FLOW-JA-FACE', full3D=True)) - # compare output to expected results - head_file = os.path.join(os.getcwd(), expected_head_file) - head_new = os.path.join(run_folder, 'np001_mod.hds') - outfile = os.path.join(run_folder, 'head_compare.dat') - assert pymake.compare_heads(None, None, files1=head_file, files2=head_new, - outfile=outfile) + # compare output to expected results + head_file = os.path.join(os.getcwd(), expected_head_file) + head_new = os.path.join(run_folder, 'np001_mod.hds') + outfile = os.path.join(run_folder, 'head_compare.dat') + assert pymake.compare_heads(None, None, files1=head_file, files2=head_new, + outfile=outfile) - budget_frf = sim.simulation_data.mfdata[ - (model_name, 'CBC', 'FLOW-JA-FACE')] - assert array_util.array_comp(budget_frf_valid, budget_frf) + budget_frf = sim.simulation_data.mfdata[ + (model_name, 'CBC', 'FLOW-JA-FACE')] + assert array_util.array_comp(budget_frf_valid, budget_frf) - # clean up - sim.delete_output_files() + # clean up + sim.delete_output_files() return @@ -917,17 +918,18 @@ def test004_bcfss(): sim.write_simulation() # run simulation - sim.run_simulation() + if run: + sim.run_simulation() - # compare output to expected results - head_file = os.path.join(os.getcwd(), expected_head_file) - head_new = os.path.join(run_folder, 'bcf2ss.hds') - outfile = os.path.join(run_folder, 'head_compare.dat') - assert pymake.compare_heads(None, None, files1=head_file, files2=head_new, - outfile=outfile) + # compare output to expected results + head_file = os.path.join(os.getcwd(), expected_head_file) + head_new = os.path.join(run_folder, 'bcf2ss.hds') + outfile = os.path.join(run_folder, 'head_compare.dat') + assert pymake.compare_heads(None, None, files1=head_file, files2=head_new, + outfile=outfile) - # clean up - sim.delete_output_files() + # clean up + sim.delete_output_files() return @@ -1010,17 +1012,18 @@ def test035_fhb(): sim.write_simulation() # run simulation - sim.run_simulation() + if run: + sim.run_simulation() - # compare output to expected results - head_file = os.path.join(os.getcwd(), expected_head_file) - head_new = os.path.join(run_folder, 'fhb2015_fhb.hds') - outfile = os.path.join(run_folder, 'head_compare.dat') - assert pymake.compare_heads(None, None, files1=head_file, files2=head_new, - outfile=outfile) + # compare output to expected results + head_file = os.path.join(os.getcwd(), expected_head_file) + head_new = os.path.join(run_folder, 'fhb2015_fhb.hds') + outfile = os.path.join(run_folder, 'head_compare.dat') + assert pymake.compare_heads(None, None, files1=head_file, files2=head_new, + outfile=outfile) - # clean up - sim.delete_output_files() + # clean up + sim.delete_output_files() return @@ -1133,22 +1136,23 @@ def test006_gwf3_disv(): sim.write_simulation() # run simulation - sim.run_simulation() + if run: + sim.run_simulation() - # compare output to expected results - head_file = os.path.join(os.getcwd(), expected_head_file) - head_new = os.path.join(run_folder, 'flow.hds') - outfile = os.path.join(run_folder, 'head_compare.dat') - assert pymake.compare_heads(None, None, files1=head_file, files2=head_new, - outfile=outfile) + # compare output to expected results + head_file = os.path.join(os.getcwd(), expected_head_file) + head_new = os.path.join(run_folder, 'flow.hds') + outfile = os.path.join(run_folder, 'head_compare.dat') + assert pymake.compare_heads(None, None, files1=head_file, files2=head_new, + outfile=outfile) - # export to netcdf - temporarily disabled - #model.export(os.path.join(run_folder, "test006_gwf3.nc")) - # export to shape file - model.export(os.path.join(run_folder, "test006_gwf3.shp")) + # export to netcdf - temporarily disabled + #model.export(os.path.join(run_folder, "test006_gwf3.nc")) + # export to shape file + model.export(os.path.join(run_folder, "test006_gwf3.shp")) - # clean up - sim.delete_output_files() + # clean up + sim.delete_output_files() return @@ -1288,24 +1292,25 @@ def test006_2models_gnc(): sim.write_simulation() # run simulation - sim.run_simulation() + if run: + sim.run_simulation() - # compare output to expected results - head_file = os.path.join(os.getcwd(), expected_head_file_1) - head_new = os.path.join(run_folder, 'model1.hds') - outfile = os.path.join(run_folder, 'head_compare.dat') - assert pymake.compare_heads(None, None, files1=head_file, files2=head_new, - outfile=outfile) + # compare output to expected results + head_file = os.path.join(os.getcwd(), expected_head_file_1) + head_new = os.path.join(run_folder, 'model1.hds') + outfile = os.path.join(run_folder, 'head_compare.dat') + assert pymake.compare_heads(None, None, files1=head_file, files2=head_new, + outfile=outfile) - # compare output to expected results - head_file = os.path.join(os.getcwd(), expected_head_file_2) - head_new = os.path.join(run_folder, 'model2.hds') - outfile = os.path.join(run_folder, 'head_compare.dat') - assert pymake.compare_heads(None, None, files1=head_file, files2=head_new, - outfile=outfile) + # compare output to expected results + head_file = os.path.join(os.getcwd(), expected_head_file_2) + head_new = os.path.join(run_folder, 'model2.hds') + outfile = os.path.join(run_folder, 'head_compare.dat') + assert pymake.compare_heads(None, None, files1=head_file, files2=head_new, + outfile=outfile) - # clean up - sim.delete_output_files() + # clean up + sim.delete_output_files() return @@ -1372,17 +1377,18 @@ def test050_circle_island(): sim.write_simulation() # run simulation - sim.run_simulation() + if run: + sim.run_simulation() - # compare output to expected results - head_file = os.path.join(os.getcwd(), expected_head_file) - head_new = os.path.join(run_folder, 'ci.output.hds') - outfile = os.path.join(run_folder, 'head_compare.dat') - assert pymake.compare_heads(None, None, files1=head_file, files2=head_new, - outfile=outfile) + # compare output to expected results + head_file = os.path.join(os.getcwd(), expected_head_file) + head_new = os.path.join(run_folder, 'ci.output.hds') + outfile = os.path.join(run_folder, 'head_compare.dat') + assert pymake.compare_heads(None, None, files1=head_file, files2=head_new, + outfile=outfile) - # clean up - sim.delete_output_files() + # clean up + sim.delete_output_files() return @@ -1546,17 +1552,18 @@ def test028_sfr(): sim.write_simulation() # run simulation - sim.run_simulation() + if run: + sim.run_simulation() - # compare output to expected results - head_file = os.path.join(os.getcwd(), expected_head_file) - head_new = os.path.join(run_folder, 'test1tr.hds') - outfile = os.path.join(run_folder, 'head_compare.dat') - assert pymake.compare_heads(None, None, files1=head_file, files2=head_new, - outfile=outfile) + # compare output to expected results + head_file = os.path.join(os.getcwd(), expected_head_file) + head_new = os.path.join(run_folder, 'test1tr.hds') + outfile = os.path.join(run_folder, 'head_compare.dat') + assert pymake.compare_heads(None, None, files1=head_file, files2=head_new, + outfile=outfile) - # clean up - sim.delete_output_files() + # clean up + sim.delete_output_files() return diff --git a/examples/data/mf6/test045_lake1ss_table/expected_output/lakeex1b_adj.hds b/examples/data/mf6/test045_lake1ss_table/expected_output/lakeex1b_adj.hds index 062ef1f413bd5f7e7b4dccb9a61475a3fc12131e..8938f4cdedd0a9853fdbddd682f1ab182c3fef12 100644 GIT binary patch literal 11820 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 literal 11820 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 TFps>g47~P^9&i8E-RVC7()sHS diff --git a/examples/data/mf6/test045_lake1ss_table/expected_output/lakeex1b_unch.hds b/examples/data/mf6/test045_lake1ss_table/expected_output/lakeex1b_unch.hds index 062ef1f413bd5f7e7b4dccb9a61475a3fc12131e..8938f4cdedd0a9853fdbddd682f1ab182c3fef12 100644 GIT binary patch literal 11820 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 literal 11820 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 TFps>g47~P^9&i8E-RVC7()sHS From e0535b1707f14a237ca75a4f358b33e019a3945e Mon Sep 17 00:00:00 2001 From: Christian Langevin Date: Thu, 14 Mar 2019 11:32:39 -0400 Subject: [PATCH 3/3] Updating to gcc8 --- .travis.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0a997b61b4..7b05487ea9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,8 +28,8 @@ addons: sources: - ubuntu-toolchain-r-test packages: - - gfortran-6 - - g++-6 + - gfortran-8 + - g++-8 - python-pip - libhdf5-serial-dev - netcdf-bin @@ -47,12 +47,12 @@ install: mkdir "$HOME/.local/bin"; fi - export PATH="$HOME/.local/bin:$PATH" - - ln -fs /usr/bin/gfortran-6 "$HOME/.local/bin/gfortran" && gfortran --version - - ls -l /usr/bin/gfortran-6 - - ln -fs /usr/bin/gcc-6 "$HOME/.local/bin/gcc" && gcc --version - - ls -l /usr/bin/gcc-6 - - ln -fs /usr/bin/g++-6 "$HOME/.local/bin/g++" && g++ --version - - ls -l /usr/bin/g++-6 + - ln -fs /usr/bin/gfortran-8 "$HOME/.local/bin/gfortran" && gfortran --version + - ls -l /usr/bin/gfortran-8 + - ln -fs /usr/bin/gcc-8 "$HOME/.local/bin/gcc" && gcc --version + - ls -l /usr/bin/gcc-8 + - ln -fs /usr/bin/g++-8 "$HOME/.local/bin/g++" && g++ --version + - ls -l /usr/bin/g++-8 - export CXX="g++" - if [[ $TRAVIS_PYTHON_VERSION == 2.7 ]]; then pip install -r requirements27.travis.txt;