1
- import os
2
1
import sys
3
- import json
4
2
from pathlib import Path
5
- from enum import Enum
6
3
7
4
MF6_LENVARNAME = 16
8
5
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"
9
9
10
10
11
11
class Dfn2F90 :
@@ -46,7 +46,6 @@ def add_dfn_entry(self, dfn_d=None):
46
46
47
47
def write_f90 (self , ofspec = None ):
48
48
with open (ofspec , "w" ) as f :
49
-
50
49
# file header
51
50
f .write (self ._source_file_header (self .component , self .subcomponent ))
52
51
@@ -138,7 +137,6 @@ def _set_var_d(self):
138
137
vd = {}
139
138
140
139
for line in lines :
141
-
142
140
# skip blank lines
143
141
if len (line .strip ()) == 0 :
144
142
if len (vd ) > 0 :
@@ -303,7 +301,6 @@ def _set_blk_param_strs(self, blockname, component, subcomponent):
303
301
r = ".false."
304
302
305
303
for k in self ._var_d :
306
-
307
304
varname , bname = k
308
305
if bname != blockname :
309
306
continue
@@ -341,7 +338,7 @@ def _set_blk_param_strs(self, blockname, component, subcomponent):
341
338
shape = shape .replace (")" , "" )
342
339
shape = shape .replace ("," , "" )
343
340
shape = shape .upper ()
344
- if ( shape == "NCOL*NROW; NCPL" ) :
341
+ if shape == "NCOL*NROW; NCPL" :
345
342
# grid array input syntax
346
343
if mf6vn == "AUXVAR" :
347
344
# for grid, set AUX as DOUBLE2D
@@ -534,7 +531,7 @@ def write(self):
534
531
self ._write_master ()
535
532
536
533
def _write_master (self ):
537
- ofspec = f"../../../src/ Utilities/ Idm/ selector/ IdmDfnSelector.f90"
534
+ ofspec = SRC_PATH / " Utilities" / " Idm" / " selector" / " IdmDfnSelector.f90"
538
535
with open (ofspec , "w" ) as fh :
539
536
self ._write_master_decl (fh )
540
537
self ._write_master_defn (fh , defn = "param" , dtype = "param" )
@@ -548,7 +545,11 @@ def _write_master(self):
548
545
def _write_selectors (self ):
549
546
for c in self ._d :
550
547
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"
552
553
)
553
554
with open (ofspec , "w" ) as fh :
554
555
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):
584
585
len_sc = len (sc )
585
586
spacer = space * (len_c + len_sc )
586
587
587
- s += (
588
- f" use { c .title ()} { sc .title ()} InputModule\n "
589
- )
588
+ s += f" use { c .title ()} { sc .title ()} InputModule\n "
590
589
591
590
s += (
592
591
f"\n implicit none\n "
@@ -597,7 +596,7 @@ def _write_selector_decl(self, fh=None, component=None, sc_list=None):
597
596
f" public :: { c .lower ()} _idm_multi_package\n "
598
597
f" public :: { c .lower ()} _idm_integrated\n \n "
599
598
)
600
- s += ( f"contains\n \n " )
599
+ s += f"contains\n \n "
601
600
602
601
fh .write (s )
603
602
@@ -727,9 +726,7 @@ def _write_master_decl(self, fh=None):
727
726
for c in self ._d :
728
727
len_c = len (c )
729
728
spacer = space * (len_c )
730
- s += (
731
- f" use Idm{ c .title ()} DfnSelectorModule\n "
732
- )
729
+ s += f" use Idm{ c .title ()} DfnSelectorModule\n "
733
730
734
731
s += (
735
732
f"\n implicit none\n "
@@ -841,10 +838,7 @@ def _write_master_component(self, fh=None):
841
838
)
842
839
843
840
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 "
848
842
849
843
s += (
850
844
f" case default\n "
@@ -857,101 +851,100 @@ def _write_master_component(self, fh=None):
857
851
858
852
859
853
if __name__ == "__main__" :
860
-
861
854
dfns = [
862
855
# ** Add a new dfn parameter set to MODFLOW 6 by adding a new entry to this list **
863
856
# [relative path of input dnf, relative path of output f90 definition file]
864
857
[
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" ,
867
860
],
868
861
[
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" ,
871
864
],
872
865
[
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" ,
875
868
],
876
869
[
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" ,
879
872
],
880
873
[
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" ,
883
876
],
884
877
[
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" ,
887
880
],
888
881
[
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" ,
891
884
],
892
885
[
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" ,
895
888
],
896
889
[
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" ,
899
892
],
900
893
[
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" ,
903
896
],
904
897
[
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" ,
907
900
],
908
901
[
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" ,
911
904
],
912
905
[
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" ,
915
908
],
916
909
[
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" ,
919
912
],
920
913
[
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" ,
923
916
],
924
917
[
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" ,
927
920
],
928
921
[
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" ,
931
924
],
932
925
[
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" ,
935
928
],
936
929
[
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" ,
939
932
],
940
933
[
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" ,
943
936
],
944
937
[
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" ,
947
940
],
948
941
[
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" ,
951
944
],
952
945
[
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" ,
955
948
],
956
949
]
957
950
0 commit comments