Skip to content

Commit 103793f

Browse files
authored
refactor(dfn2f90): factor out paths (MODFLOW-ORG#1456)
1 parent d93ad1f commit 103793f

File tree

1 file changed

+60
-67
lines changed

1 file changed

+60
-67
lines changed

utils/idmloader/scripts/dfn2f90.py

Lines changed: 60 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import os
21
import sys
3-
import json
42
from pathlib import Path
5-
from enum import Enum
63

74
MF6_LENVARNAME = 16
85
F90_LINELEN = 82
6+
PROJ_ROOT = Path(__file__).parents[3]
7+
DFN_PATH = PROJ_ROOT / "doc" / "mf6io" / "mf6ivar" / "dfn"
8+
SRC_PATH = PROJ_ROOT / "src"
99

1010

1111
class Dfn2F90:
@@ -46,7 +46,6 @@ def add_dfn_entry(self, dfn_d=None):
4646

4747
def write_f90(self, ofspec=None):
4848
with open(ofspec, "w") as f:
49-
5049
# file header
5150
f.write(self._source_file_header(self.component, self.subcomponent))
5251

@@ -138,7 +137,6 @@ def _set_var_d(self):
138137
vd = {}
139138

140139
for line in lines:
141-
142140
# skip blank lines
143141
if len(line.strip()) == 0:
144142
if len(vd) > 0:
@@ -303,7 +301,6 @@ def _set_blk_param_strs(self, blockname, component, subcomponent):
303301
r = ".false."
304302

305303
for k in self._var_d:
306-
307304
varname, bname = k
308305
if bname != blockname:
309306
continue
@@ -341,7 +338,7 @@ def _set_blk_param_strs(self, blockname, component, subcomponent):
341338
shape = shape.replace(")", "")
342339
shape = shape.replace(",", "")
343340
shape = shape.upper()
344-
if (shape == "NCOL*NROW; NCPL"):
341+
if shape == "NCOL*NROW; NCPL":
345342
# grid array input syntax
346343
if mf6vn == "AUXVAR":
347344
# for grid, set AUX as DOUBLE2D
@@ -534,7 +531,7 @@ def write(self):
534531
self._write_master()
535532

536533
def _write_master(self):
537-
ofspec = f"../../../src/Utilities/Idm/selector/IdmDfnSelector.f90"
534+
ofspec = SRC_PATH / "Utilities" / "Idm" / "selector" / "IdmDfnSelector.f90"
538535
with open(ofspec, "w") as fh:
539536
self._write_master_decl(fh)
540537
self._write_master_defn(fh, defn="param", dtype="param")
@@ -548,7 +545,11 @@ def _write_master(self):
548545
def _write_selectors(self):
549546
for c in self._d:
550547
ofspec = (
551-
f"../../../src/Utilities/Idm/selector/Idm{c.title()}DfnSelector.f90"
548+
SRC_PATH
549+
/ "Utilities"
550+
/ "Idm"
551+
/ "selector"
552+
/ f"Idm{c.title()}DfnSelector.f90"
552553
)
553554
with open(ofspec, "w") as fh:
554555
self._write_selector_decl(fh, component=c, sc_list=self._d[c])
@@ -584,9 +585,7 @@ def _write_selector_decl(self, fh=None, component=None, sc_list=None):
584585
len_sc = len(sc)
585586
spacer = space * (len_c + len_sc)
586587

587-
s += (
588-
f" use {c.title()}{sc.title()}InputModule\n"
589-
)
588+
s += f" use {c.title()}{sc.title()}InputModule\n"
590589

591590
s += (
592591
f"\n implicit none\n"
@@ -597,7 +596,7 @@ def _write_selector_decl(self, fh=None, component=None, sc_list=None):
597596
f" public :: {c.lower()}_idm_multi_package\n"
598597
f" public :: {c.lower()}_idm_integrated\n\n"
599598
)
600-
s += (f"contains\n\n")
599+
s += f"contains\n\n"
601600

602601
fh.write(s)
603602

@@ -727,9 +726,7 @@ def _write_master_decl(self, fh=None):
727726
for c in self._d:
728727
len_c = len(c)
729728
spacer = space * (len_c)
730-
s += (
731-
f" use Idm{c.title()}DfnSelectorModule\n"
732-
)
729+
s += f" use Idm{c.title()}DfnSelectorModule\n"
733730

734731
s += (
735732
f"\n implicit none\n"
@@ -841,10 +838,7 @@ def _write_master_component(self, fh=None):
841838
)
842839

843840
for c in dfn_d:
844-
s += (
845-
f" case ('{c}')\n"
846-
f" integrated = .true.\n"
847-
)
841+
s += f" case ('{c}')\n" f" integrated = .true.\n"
848842

849843
s += (
850844
f" case default\n"
@@ -857,101 +851,100 @@ def _write_master_component(self, fh=None):
857851

858852

859853
if __name__ == "__main__":
860-
861854
dfns = [
862855
# ** Add a new dfn parameter set to MODFLOW 6 by adding a new entry to this list **
863856
# [relative path of input dnf, relative path of output f90 definition file]
864857
[
865-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwf-chd.dfn"),
866-
Path("../../../src/Model/GroundWaterFlow", "gwf3chd8idm.f90"),
858+
DFN_PATH / "gwf-chd.dfn",
859+
SRC_PATH / "Model" / "GroundWaterFlow" / "gwf3chd8idm.f90",
867860
],
868861
[
869-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwf-dis.dfn"),
870-
Path("../../../src/Model/GroundWaterFlow", "gwf3dis8idm.f90"),
862+
DFN_PATH / "gwf-dis.dfn",
863+
SRC_PATH / "Model" / "GroundWaterFlow" / "gwf3dis8idm.f90",
871864
],
872865
[
873-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwf-disu.dfn"),
874-
Path("../../../src/Model/GroundWaterFlow", "gwf3disu8idm.f90"),
866+
DFN_PATH / "gwf-disu.dfn",
867+
SRC_PATH / "Model" / "GroundWaterFlow" / "gwf3disu8idm.f90",
875868
],
876869
[
877-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwf-disv.dfn"),
878-
Path("../../../src/Model/GroundWaterFlow", "gwf3disv8idm.f90"),
870+
DFN_PATH / "gwf-disv.dfn",
871+
SRC_PATH / "Model" / "GroundWaterFlow" / "gwf3disv8idm.f90",
879872
],
880873
[
881-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwf-drn.dfn"),
882-
Path("../../../src/Model/GroundWaterFlow", "gwf3drn8idm.f90"),
874+
DFN_PATH / "gwf-drn.dfn",
875+
SRC_PATH / "Model" / "GroundWaterFlow" / "gwf3drn8idm.f90",
883876
],
884877
[
885-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwf-evt.dfn"),
886-
Path("../../../src/Model/GroundWaterFlow", "gwf3evt8idm.f90"),
878+
DFN_PATH / "gwf-evt.dfn",
879+
SRC_PATH / "Model" / "GroundWaterFlow" / "gwf3evt8idm.f90",
887880
],
888881
[
889-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwf-evta.dfn"),
890-
Path("../../../src/Model/GroundWaterFlow", "gwf3evta8idm.f90"),
882+
DFN_PATH / "gwf-evta.dfn",
883+
SRC_PATH / "Model" / "GroundWaterFlow" / "gwf3evta8idm.f90",
891884
],
892885
[
893-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwf-ghb.dfn"),
894-
Path("../../../src/Model/GroundWaterFlow", "gwf3ghb8idm.f90"),
886+
DFN_PATH / "gwf-ghb.dfn",
887+
SRC_PATH / "Model" / "GroundWaterFlow" / "gwf3ghb8idm.f90",
895888
],
896889
[
897-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwf-ic.dfn"),
898-
Path("../../../src/Model/GroundWaterFlow", "gwf3ic8idm.f90"),
890+
DFN_PATH / "gwf-ic.dfn",
891+
SRC_PATH / "Model" / "GroundWaterFlow" / "gwf3ic8idm.f90",
899892
],
900893
[
901-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwf-npf.dfn"),
902-
Path("../../../src/Model/GroundWaterFlow", "gwf3npf8idm.f90"),
894+
DFN_PATH / "gwf-npf.dfn",
895+
SRC_PATH / "Model" / "GroundWaterFlow" / "gwf3npf8idm.f90",
903896
],
904897
[
905-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwf-rch.dfn"),
906-
Path("../../../src/Model/GroundWaterFlow", "gwf3rch8idm.f90"),
898+
DFN_PATH / "gwf-rch.dfn",
899+
SRC_PATH / "Model" / "GroundWaterFlow" / "gwf3rch8idm.f90",
907900
],
908901
[
909-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwf-rcha.dfn"),
910-
Path("../../../src/Model/GroundWaterFlow", "gwf3rcha8idm.f90"),
902+
DFN_PATH / "gwf-rcha.dfn",
903+
SRC_PATH / "Model" / "GroundWaterFlow" / "gwf3rcha8idm.f90",
911904
],
912905
[
913-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwf-riv.dfn"),
914-
Path("../../../src/Model/GroundWaterFlow", "gwf3riv8idm.f90"),
906+
DFN_PATH / "gwf-riv.dfn",
907+
SRC_PATH / "Model" / "GroundWaterFlow" / "gwf3riv8idm.f90",
915908
],
916909
[
917-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwf-wel.dfn"),
918-
Path("../../../src/Model/GroundWaterFlow", "gwf3wel8idm.f90"),
910+
DFN_PATH / "gwf-wel.dfn",
911+
SRC_PATH / "Model" / "GroundWaterFlow" / "gwf3wel8idm.f90",
919912
],
920913
[
921-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwt-dis.dfn"),
922-
Path("../../../src/Model/GroundWaterTransport", "gwt1dis1idm.f90"),
914+
DFN_PATH / "gwt-dis.dfn",
915+
SRC_PATH / "Model" / "GroundWaterTransport" / "gwt1dis1idm.f90",
923916
],
924917
[
925-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwt-disu.dfn"),
926-
Path("../../../src/Model/GroundWaterTransport", "gwt1disu1idm.f90"),
918+
DFN_PATH / "gwt-disu.dfn",
919+
SRC_PATH / "Model" / "GroundWaterTransport" / "gwt1disu1idm.f90",
927920
],
928921
[
929-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwt-disv.dfn"),
930-
Path("../../../src/Model/GroundWaterTransport", "gwt1disv1idm.f90"),
922+
DFN_PATH / "gwt-disv.dfn",
923+
SRC_PATH / "Model" / "GroundWaterTransport" / "gwt1disv1idm.f90",
931924
],
932925
[
933-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwt-dsp.dfn"),
934-
Path("../../../src/Model/GroundWaterTransport", "gwt1dsp1idm.f90"),
926+
DFN_PATH / "gwt-dsp.dfn",
927+
SRC_PATH / "Model" / "GroundWaterTransport" / "gwt1dsp1idm.f90",
935928
],
936929
[
937-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwt-cnc.dfn"),
938-
Path("../../../src/Model/GroundWaterTransport", "gwt1cnc1idm.f90"),
930+
DFN_PATH / "gwt-cnc.dfn",
931+
SRC_PATH / "Model" / "GroundWaterTransport" / "gwt1cnc1idm.f90",
939932
],
940933
[
941-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwt-ic.dfn"),
942-
Path("../../../src/Model/GroundWaterTransport", "gwt1ic1idm.f90"),
934+
DFN_PATH / "gwt-ic.dfn",
935+
SRC_PATH / "Model" / "GroundWaterTransport" / "gwt1ic1idm.f90",
943936
],
944937
[
945-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwf-nam.dfn"),
946-
Path("../../../src/Model/GroundWaterFlow", "gwf3idm.f90"),
938+
DFN_PATH / "gwf-nam.dfn",
939+
SRC_PATH / "Model" / "GroundWaterFlow" / "gwf3idm.f90",
947940
],
948941
[
949-
Path("../../../doc/mf6io/mf6ivar/dfn", "gwt-nam.dfn"),
950-
Path("../../../src/Model/GroundWaterTransport", "gwt1idm.f90"),
942+
DFN_PATH / "gwt-nam.dfn",
943+
SRC_PATH / "Model" / "GroundWaterTransport" / "gwt1idm.f90",
951944
],
952945
[
953-
Path("../../../doc/mf6io/mf6ivar/dfn", "sim-nam.dfn"),
954-
Path("../../../src", "simnamidm.f90"),
946+
DFN_PATH / "sim-nam.dfn",
947+
SRC_PATH / "simnamidm.f90",
955948
],
956949
]
957950

0 commit comments

Comments
 (0)