Skip to content

Commit

Permalink
feat(idm): support list and grid based input for base stress packages (
Browse files Browse the repository at this point in the history
…#1337)

* update input definition for timeseries, definition files for sfac param

* modflow input type can select array based input definition set

* generic list parser updates for reading binary inputs and timeseries strings

* memory manager updates including checkin int2d and mem_set_value charstr1d

* make dis instance optional in timearrayseries

* add load framework and ascii grid and list based dynamic loader modules

* use the input stress package load framework

* cleanup 1

* move dfn based param allocation to bound context object

* cleanup 2

* rebuild makefiles

* remove uninteded makefile files

* Check dis input dimensions before assigning model shapes

* move idm advance call to mf6core

---------

Co-authored-by: mjreno <[email protected]>
  • Loading branch information
mjreno and mjreno authored Sep 22, 2023
1 parent 32e5932 commit 9987e5e
Show file tree
Hide file tree
Showing 49 changed files with 5,493 additions and 1,335 deletions.
12 changes: 3 additions & 9 deletions make/makedefaults
Original file line number Diff line number Diff line change
Expand Up @@ -57,19 +57,16 @@ OPTLEVEL ?= -O2
# set the fortran flags
ifeq ($(detected_OS), Windows)
ifeq ($(FC), gfortran)
FFLAGS ?= -static -fbacktrace -ffpe-summary=overflow -ffpe-trap=overflow,zero,invalid $(OS_macro) -fall-intrinsics -Wtabs -Wline-truncation -Wunused-label -Wunused-variable -pedantic -std=f2008 -Wcharacter-truncation -cpp
FFLAGS ?= -static -fbacktrace -ffpe-summary=overflow -ffpe-trap=overflow,zero,invalid -fall-intrinsics -pedantic -Wcharacter-truncation $(OS_macro) -Wtabs -Wline-truncation -Wunused-label -Wunused-variable -std=f2008 -cpp
endif
else
ifeq ($(FC), gfortran)
FFLAGS ?= -fbacktrace -ffpe-summary=overflow -ffpe-trap=overflow,zero,invalid $(OS_macro) -fall-intrinsics -Wtabs -Wline-truncation -Wunused-label -Wunused-variable -pedantic -std=f2008 -Wcharacter-truncation -cpp
FFLAGS ?= -fbacktrace -ffpe-summary=overflow -ffpe-trap=overflow,zero,invalid -fall-intrinsics -pedantic -Wcharacter-truncation $(OS_macro) -Wtabs -Wline-truncation -Wunused-label -Wunused-variable -std=f2008 -cpp
endif
ifeq ($(FC), $(filter $(FC), ifort mpiifort))
FFLAGS ?= -no-heap-arrays -fpe0 -traceback -fpp
FFLAGS ?= -no-heap-arrays -fpe0 -traceback -Qdiag-disable:7416 -Qdiag-disable:7025 -Qdiag-disable:5268 -fpp
MODSWITCH = -module $(MODDIR)
endif
ifeq ($(FC), $(filter $(FC), ftn))
FFLAGS ?= -h noheap_allocate
endif
endif

# set the ldflgs
Expand All @@ -84,9 +81,6 @@ else
ifeq ($(FC), $(filter $(FC), ifort mpiifort))
LDFLAGS ?= -lc
endif
ifeq ($(FC), $(filter $(FC), ftn))
LDFLAGS ?= -lc
endif
endif

# check for Windows error condition
Expand Down
115 changes: 61 additions & 54 deletions make/makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,36 +5,36 @@ include ./makedefaults

# Define the source file directories
SOURCEDIR1=../src
SOURCEDIR2=../src/Distributed
SOURCEDIR3=../src/Exchange
SOURCEDIR4=../src/Model
SOURCEDIR5=../src/Model/Connection
SOURCEDIR6=../src/Model/Geometry
SOURCEDIR7=../src/Model/GroundWaterFlow
SOURCEDIR2=../src/Exchange
SOURCEDIR3=../src/Model
SOURCEDIR4=../src/Model/Geometry
SOURCEDIR5=../src/Model/TransportModel
SOURCEDIR6=../src/Model/ModelUtilities
SOURCEDIR7=../src/Model/Connection
SOURCEDIR8=../src/Model/GroundWaterTransport
SOURCEDIR9=../src/Model/ModelUtilities
SOURCEDIR10=../src/Model/TransportModel
SOURCEDIR9=../src/Model/GroundWaterFlow
SOURCEDIR10=../src/Distributed
SOURCEDIR11=../src/Solution
SOURCEDIR12=../src/Solution/LinearMethods
SOURCEDIR13=../src/Solution/PETSc
SOURCEDIR12=../src/Solution/PETSc
SOURCEDIR13=../src/Solution/LinearMethods
SOURCEDIR14=../src/Timing
SOURCEDIR15=../src/Utilities
SOURCEDIR16=../src/Utilities/ArrayRead
SOURCEDIR17=../src/Utilities/Idm
SOURCEDIR18=../src/Utilities/Idm/mf6blockfile
SOURCEDIR19=../src/Utilities/Idm/selector
SOURCEDIR20=../src/Utilities/Libraries
SOURCEDIR16=../src/Utilities/TimeSeries
SOURCEDIR17=../src/Utilities/Libraries
SOURCEDIR18=../src/Utilities/Libraries/rcm
SOURCEDIR19=../src/Utilities/Libraries/sparsekit
SOURCEDIR20=../src/Utilities/Libraries/sparskit2
SOURCEDIR21=../src/Utilities/Libraries/blas
SOURCEDIR22=../src/Utilities/Libraries/daglib
SOURCEDIR23=../src/Utilities/Libraries/rcm
SOURCEDIR24=../src/Utilities/Libraries/sparsekit
SOURCEDIR25=../src/Utilities/Libraries/sparskit2
SOURCEDIR23=../src/Utilities/Idm
SOURCEDIR24=../src/Utilities/Idm/selector
SOURCEDIR25=../src/Utilities/Idm/mf6blockfile
SOURCEDIR26=../src/Utilities/Matrix
SOURCEDIR27=../src/Utilities/Memory
SOURCEDIR27=../src/Utilities/Vector
SOURCEDIR28=../src/Utilities/Observation
SOURCEDIR29=../src/Utilities/OutputControl
SOURCEDIR30=../src/Utilities/TimeSeries
SOURCEDIR31=../src/Utilities/Vector
SOURCEDIR30=../src/Utilities/Memory
SOURCEDIR31=../src/Utilities/ArrayRead

VPATH = \
${SOURCEDIR1} \
Expand Down Expand Up @@ -110,16 +110,33 @@ $(OBJDIR)/SmoothingFunctions.o \
$(OBJDIR)/MatrixBase.o \
$(OBJDIR)/ListReader.o \
$(OBJDIR)/Connections.o \
$(OBJDIR)/DiscretizationBase.o \
$(OBJDIR)/InputDefinition.o \
$(OBJDIR)/TimeArray.o \
$(OBJDIR)/ObsOutput.o \
$(OBJDIR)/DiscretizationBase.o \
$(OBJDIR)/simnamidm.o \
$(OBJDIR)/gwt1idm.o \
$(OBJDIR)/gwt1dsp1idm.o \
$(OBJDIR)/gwt1disv1idm.o \
$(OBJDIR)/gwt1disu1idm.o \
$(OBJDIR)/gwt1dis1idm.o \
$(OBJDIR)/gwf3npf8idm.o \
$(OBJDIR)/gwf3idm.o \
$(OBJDIR)/gwf3disv8idm.o \
$(OBJDIR)/gwf3disu8idm.o \
$(OBJDIR)/gwf3dis8idm.o \
$(OBJDIR)/TimeArraySeries.o \
$(OBJDIR)/ObsOutputList.o \
$(OBJDIR)/Observe.o \
$(OBJDIR)/IdmSimDfnSelector.o \
$(OBJDIR)/IdmGwtDfnSelector.o \
$(OBJDIR)/IdmGwfDfnSelector.o \
$(OBJDIR)/TimeArraySeriesLink.o \
$(OBJDIR)/ObsUtility.o \
$(OBJDIR)/ObsContainer.o \
$(OBJDIR)/BudgetFileReader.o \
$(OBJDIR)/IdmDfnSelector.o \
$(OBJDIR)/ArrayReaderBase.o \
$(OBJDIR)/TimeArraySeriesManager.o \
$(OBJDIR)/PackageMover.o \
$(OBJDIR)/Obs3.o \
Expand All @@ -128,31 +145,29 @@ $(OBJDIR)/Budget.o \
$(OBJDIR)/BudgetTerm.o \
$(OBJDIR)/sort.o \
$(OBJDIR)/SfrCrossSectionUtils.o \
$(OBJDIR)/VirtualBase.o \
$(OBJDIR)/STLVecInt.o \
$(OBJDIR)/ModflowInput.o \
$(OBJDIR)/MemoryManagerExt.o \
$(OBJDIR)/Integer2dReader.o \
$(OBJDIR)/VirtualBase.o \
$(OBJDIR)/BoundaryPackage.o \
$(OBJDIR)/BaseModel.o \
$(OBJDIR)/InputDefinition.o \
$(OBJDIR)/PackageBudget.o \
$(OBJDIR)/HeadFileReader.o \
$(OBJDIR)/BudgetObject.o \
$(OBJDIR)/SfrCrossSectionManager.o \
$(OBJDIR)/dag_module.o \
$(OBJDIR)/StructVector.o \
$(OBJDIR)/IdmLogger.o \
$(OBJDIR)/DefinitionSelect.o \
$(OBJDIR)/InputLoadType.o \
$(OBJDIR)/Integer1dReader.o \
$(OBJDIR)/Double2dReader.o \
$(OBJDIR)/Double1dReader.o \
$(OBJDIR)/VirtualDataLists.o \
$(OBJDIR)/VirtualDataContainer.o \
$(OBJDIR)/SimStages.o \
$(OBJDIR)/NumericalModel.o \
$(OBJDIR)/simnamidm.o \
$(OBJDIR)/gwt1idm.o \
$(OBJDIR)/gwt1dsp1idm.o \
$(OBJDIR)/gwt1disv1idm.o \
$(OBJDIR)/gwt1disu1idm.o \
$(OBJDIR)/gwt1dis1idm.o \
$(OBJDIR)/gwf3npf8idm.o \
$(OBJDIR)/gwf3idm.o \
$(OBJDIR)/gwf3disv8idm.o \
$(OBJDIR)/gwf3disu8idm.o \
$(OBJDIR)/gwf3dis8idm.o \
$(OBJDIR)/FlowModelInterface.o \
$(OBJDIR)/PrintSaveManager.o \
$(OBJDIR)/Xt3dAlgorithm.o \
Expand All @@ -166,25 +181,28 @@ $(OBJDIR)/GwfVscInputData.o \
$(OBJDIR)/gwf3ghb8.o \
$(OBJDIR)/gwf3drn8.o \
$(OBJDIR)/IndexMap.o \
$(OBJDIR)/StructArray.o \
$(OBJDIR)/BoundInputContext.o \
$(OBJDIR)/AsciiInputLoadType.o \
$(OBJDIR)/SourceCommon.o \
$(OBJDIR)/LayeredArrayReader.o \
$(OBJDIR)/VirtualModel.o \
$(OBJDIR)/BaseExchange.o \
$(OBJDIR)/IdmSimDfnSelector.o \
$(OBJDIR)/IdmGwtDfnSelector.o \
$(OBJDIR)/IdmGwfDfnSelector.o \
$(OBJDIR)/UzfCellGroup.o \
$(OBJDIR)/gwt1fmi1.o \
$(OBJDIR)/OutputControlData.o \
$(OBJDIR)/gwf3ic8.o \
$(OBJDIR)/Xt3dInterface.o \
$(OBJDIR)/gwf3tvk8.o \
$(OBJDIR)/MemoryManagerExt.o \
$(OBJDIR)/gwf3vsc8.o \
$(OBJDIR)/GwfNpfOptions.o \
$(OBJDIR)/InterfaceMap.o \
$(OBJDIR)/SeqVector.o \
$(OBJDIR)/StressListInput.o \
$(OBJDIR)/StressGridInput.o \
$(OBJDIR)/LoadMf6File.o \
$(OBJDIR)/CellWithNbrs.o \
$(OBJDIR)/NumericalExchange.o \
$(OBJDIR)/IdmDfnSelector.o \
$(OBJDIR)/gwf3uzf8.o \
$(OBJDIR)/gwt1apt1.o \
$(OBJDIR)/GwtSpc.o \
Expand All @@ -204,7 +222,7 @@ $(OBJDIR)/VirtualSolution.o \
$(OBJDIR)/SparseMatrix.o \
$(OBJDIR)/LinearSolverBase.o \
$(OBJDIR)/ims8reordering.o \
$(OBJDIR)/ArrayReaderBase.o \
$(OBJDIR)/IdmMf6File.o \
$(OBJDIR)/VirtualExchange.o \
$(OBJDIR)/gwf3disu8.o \
$(OBJDIR)/GridSorting.o \
Expand Down Expand Up @@ -243,7 +261,7 @@ $(OBJDIR)/gwf3chd8.o \
$(OBJDIR)/RouterBase.o \
$(OBJDIR)/ImsLinearSolver.o \
$(OBJDIR)/ims8base.o \
$(OBJDIR)/Integer2dReader.o \
$(OBJDIR)/SourceLoad.o \
$(OBJDIR)/GridConnection.o \
$(OBJDIR)/DistributedVariable.o \
$(OBJDIR)/gwt1.o \
Expand All @@ -252,12 +270,8 @@ $(OBJDIR)/SerialRouter.o \
$(OBJDIR)/Timer.o \
$(OBJDIR)/LinearSolverFactory.o \
$(OBJDIR)/ims8linear.o \
$(OBJDIR)/IdmLoad.o \
$(OBJDIR)/BaseSolution.o \
$(OBJDIR)/StructVector.o \
$(OBJDIR)/IdmLogger.o \
$(OBJDIR)/Integer1dReader.o \
$(OBJDIR)/Double2dReader.o \
$(OBJDIR)/Double1dReader.o \
$(OBJDIR)/ExplicitModel.o \
$(OBJDIR)/SpatialModelConnection.o \
$(OBJDIR)/GwtInterfaceModel.o \
Expand All @@ -267,16 +281,11 @@ $(OBJDIR)/GwfGwfExchange.o \
$(OBJDIR)/RouterFactory.o \
$(OBJDIR)/NumericalSolution.o \
$(OBJDIR)/MappedMemory.o \
$(OBJDIR)/StructArray.o \
$(OBJDIR)/ModflowInput.o \
$(OBJDIR)/LayeredArrayReader.o \
$(OBJDIR)/DefinitionSelect.o \
$(OBJDIR)/ExplicitSolution.o \
$(OBJDIR)/GwtGwtConnection.o \
$(OBJDIR)/GwfGwfConnection.o \
$(OBJDIR)/VirtualDataManager.o \
$(OBJDIR)/Mapper.o \
$(OBJDIR)/LoadMf6File.o \
$(OBJDIR)/VirtualGwtModel.o \
$(OBJDIR)/VirtualGwtExchange.o \
$(OBJDIR)/VirtualGwfModel.o \
Expand All @@ -285,10 +294,8 @@ $(OBJDIR)/SolutionGroup.o \
$(OBJDIR)/SolutionFactory.o \
$(OBJDIR)/GwfGwtExchange.o \
$(OBJDIR)/RunControl.o \
$(OBJDIR)/IdmMf6File.o \
$(OBJDIR)/SimulationCreate.o \
$(OBJDIR)/RunControlFactory.o \
$(OBJDIR)/IdmSimulation.o \
$(OBJDIR)/ConnectionBuilder.o \
$(OBJDIR)/comarg.o \
$(OBJDIR)/mf6core.o \
Expand Down
11 changes: 9 additions & 2 deletions msvs/mf6core.vfproj
Original file line number Diff line number Diff line change
Expand Up @@ -268,21 +268,28 @@
<File RelativePath="..\src\Utilities\ArrayRead\LayeredArrayReader.f90"/></Filter>
<Filter Name="Idm">
<Filter Name="mf6blockfile">
<File RelativePath="..\src\Utilities\Idm\mf6blockfile\AsciiInputLoadType.f90"/>
<File RelativePath="..\src\Utilities\Idm\mf6blockfile\IdmMf6File.f90"/>
<File RelativePath="..\src\Utilities\Idm\mf6blockfile\LoadMf6File.f90"/>
<File RelativePath="..\src\Utilities\Idm\mf6blockfile\StressGridInput.f90"/>
<File RelativePath="..\src\Utilities\Idm\mf6blockfile\StressListInput.f90"/>
<File RelativePath="..\src\Utilities\Idm\mf6blockfile\StructArray.f90"/>
<File RelativePath="..\src\Utilities\Idm\mf6blockfile\StructVector.f90"/></Filter>
<Filter Name="selector">
<File RelativePath="..\src\Utilities\Idm\selector\IdmDfnSelector.f90"/>
<File RelativePath="..\src\Utilities\Idm\selector\IdmGwfDfnSelector.f90"/>
<File RelativePath="..\src\Utilities\Idm\selector\IdmGwtDfnSelector.f90"/>
<File RelativePath="..\src\Utilities\Idm\selector\IdmSimDfnSelector.f90"/></Filter>
<File RelativePath="..\src\Utilities\Idm\BoundInputContext.f90"/>
<File RelativePath="..\src\Utilities\Idm\DefinitionSelect.f90"/>
<File RelativePath="..\src\Utilities\Idm\IdmLoad.f90"/>
<File RelativePath="..\src\Utilities\Idm\IdmLogger.f90"/>
<File RelativePath="..\src\Utilities\Idm\IdmSimulation.f90"/>
<File RelativePath="..\src\Utilities\Idm\InputDefinition.f90"/>
<File RelativePath="..\src\Utilities\Idm\InputLoadType.f90"/>
<File RelativePath="..\src\Utilities\Idm\ModelPackageInputs.f90"/>
<File RelativePath="..\src\Utilities\Idm\ModflowInput.f90"/></Filter>
<File RelativePath="..\src\Utilities\Idm\ModflowInput.f90"/>
<File RelativePath="..\src\Utilities\Idm\SourceCommon.f90"/>
<File RelativePath="..\src\Utilities\Idm\SourceLoad.F90"/></Filter>
<Filter Name="Libraries">
<File RelativePath="..\src\Utilities\Libraries\blas\blas1_d.f90"/>
<File RelativePath="..\src\Utilities\Libraries\daglib\dag_module.f90"/>
Expand Down
Loading

0 comments on commit 9987e5e

Please sign in to comment.