MODFLOW 6
version 6.6.0.dev0
USGS Modular Hydrologic Model
|
– @ brief Immobile Storage and Transfer (IST) Module More...
Data Types | |
type | gwtisttype |
@ brief Immobile storage and transfer More... | |
Functions/Subroutines | |
subroutine, public | ist_create (packobj, id, ibcnum, inunit, iout, namemodel, pakname, fmi, mst) |
@ brief Create a new package object More... | |
subroutine | ist_ar (this) |
@ brief Allocate and read method for package More... | |
subroutine | ist_rp (this) |
@ brief Read and prepare method for package More... | |
subroutine | ist_ad (this) |
@ brief Advance the ist package More... | |
subroutine | ist_fc (this, rhs, ia, idxglo, matrix_sln) |
@ brief Fill coefficient method for package More... | |
subroutine | ist_cq (this, x, flowja, iadv) |
@ brief Calculate package flows. More... | |
subroutine | ist_calc_csrb (this, cim) |
@ brief Calculate immobile sorbed concentration More... | |
subroutine | ist_bd (this, model_budget) |
@ brief Add package flows to model budget. More... | |
subroutine | ist_ot_model_flows (this, icbcfl, ibudfl, icbcun, imap) |
@ brief Output model flow terms. More... | |
subroutine | ist_ot_dv (this, idvsave, idvprint) |
@ brief Output dependent variables. More... | |
subroutine | output_immobile_concentration (this, idvsave, idvprint) |
@ brief Output immobile domain aqueous concentration. More... | |
subroutine | output_immobile_sorbate_concentration (this, idvsave, idvprint) |
@ brief Output immobile domain sorbate concentration. More... | |
subroutine | ist_ot_bdsummary (this, kstp, kper, iout, ibudfl) |
@ brief Output IST package budget summary. More... | |
subroutine | ist_da (this) |
@ brief Deallocate package memory More... | |
subroutine | allocate_scalars (this) |
@ brief Allocate package scalars More... | |
subroutine | ist_allocate_arrays (this) |
@ brief Allocate package arrays More... | |
subroutine | read_options (this) |
@ brief Read options for package More... | |
subroutine | ist_read_dimensions (this) |
@ brief Read dimensions for package More... | |
subroutine | read_data (this) |
@ brief Read data for package More... | |
real(dp) function | get_thetaim (this, node) |
@ brief Return thetaim More... | |
subroutine | get_ddterm (thetaim, vcell, delt, swtpdt, volfracim, rhobim, kdnew, kdold, lambda1im, lambda2im, gamma1im, gamma2im, zetaim, ddterm, f) |
@ brief Calculate immobile domain equation terms More... | |
subroutine | get_hcofrhs (ddterm, f, cimold, hcof, rhs) |
@ brief Calculate the hcof and rhs terms for immobile domain More... | |
real(dp) function | get_ddconc (ddterm, f, cimold, cnew) |
@ brief Calculate the immobile domain concentration More... | |
subroutine | accumulate_budterm (budterm, ddterm, cimnew, cimold, cnew, idcy) |
@ brief Calculate the immobile domain budget terms More... | |
Variables | |
character(len=lenftype) | ftype = 'IST' |
character(len=lenpackagename) | text = ' IMMOBILE DOMAIN' |
integer(i4b), parameter | nbditems = 5 |
character(len=lenbudtxt), dimension(nbditems) | budtxt |
The GwtIstModule is contains the GwtIstType, which is the derived type responsible for adding the effects of an immobile domain. In addition to representing transfer of mass between the mobile and immobile domain, the IST Package also represents the following processes within the immobile domain
|
private |
This subroutine calculates and accumulates the immobile domain budget terms into the budterm accumulator
[in] | ddterm | terms comprising the balance equation of the immobile domain |
[in] | cimnew | immobile domain concenration at the end of this time step |
[in] | cimold | immobile domain concentration at end of last time step |
[in] | cnew | mobile domain concentration at the end of this time step |
[in] | idcy | order of decay rate (0:none, 1:first, 2:zero) |
Definition at line 1467 of file gwt-ist.f90.
subroutine gwtistmodule::allocate_scalars | ( | class(gwtisttype) | this | ) |
Allocate and initialize package scalars.
this | GwtIstType object |
Definition at line 845 of file gwt-ist.f90.
|
private |
This function calculates the concentration of the immobile domain.
[in] | ddterm | terms comprising the balance equation of the immobile domain |
[in] | f | the f term used to calculate the immobile domain concentration |
[in] | cimold | immobile domain concentration at end of last time step |
[in] | cnew | concentration of the mobile domain at the end of the time step |
Definition at line 1445 of file gwt-ist.f90.
|
private |
This subroutine calculates the immobile domain (or dual domain) terms. The resulting ddterm and f terms are described in the GWT model report. The terms are concentration coefficients used in the balance equation for the immobile domain.
[in] | thetaim | immobile domain porosity |
[in] | vcell | volume of cell |
[in] | delt | length of time step |
[in] | swtpdt | cell saturation at end of time step |
[in] | volfracim | volume fraction of immobile domain |
[in] | rhobim | bulk density for the immobile domain (fim * rhob) |
[in] | kdnew | effective distribution coefficient for new time |
[in] | kdold | effective distribution coefficient for old time |
[in] | lambda1im | first-order decay rate in aqueous phase |
[in] | lambda2im | first-order decay rate in sorbed phase |
[in] | gamma1im | zero-order decay rate in aqueous phase |
[in] | gamma2im | zero-order decay rate in sorbed phase |
[in] | zetaim | transfer coefficient between mobile and immobile domains |
[in,out] | ddterm | nine terms comprising the balance equation of the immobile domain |
[in,out] | f | the f term used to calculate the immobile domain concentration |
Definition at line 1372 of file gwt-ist.f90.
|
private |
This subroutine calculates the hcof and rhs terms that must be added to the solution system of equations
[in] | ddterm | terms comprising the balance equation of the immobile domain |
[in] | f | the f term used to calculate the immobile domain concentration |
[in] | cimold | immobile domain concentration at end of last time step |
[in,out] | hcof | calculated contribution for the a-matrix diagonal position |
[in,out] | rhs | calculated contribution for the solution right-hand side |
Definition at line 1422 of file gwt-ist.f90.
real(dp) function gwtistmodule::get_thetaim | ( | class(gwtisttype) | this, |
integer(i4b), intent(in) | node | ||
) |
Calculate and return thetaim, volume of immobile voids per aquifer volume
this | GwtIstType object | |
[in] | node | node number |
Definition at line 1353 of file gwt-ist.f90.
|
private |
Advance the IST Package and handle the adaptive time stepping feature by copying from new to old or old to new accordingly
this | GwtIstType object |
Definition at line 233 of file gwt-ist.f90.
subroutine gwtistmodule::ist_allocate_arrays | ( | class(gwtisttype), intent(inout) | this | ) |
Allocate and initialize package arrays.
[in,out] | this | GwtIstType object |
Definition at line 884 of file gwt-ist.f90.
|
private |
Method to allocate and read static data for the package.
[in,out] | this | GwtIstType object |
Definition at line 162 of file gwt-ist.f90.
|
private |
Add the flow between IST package and the model (ratin and ratout) to the model budget.
this | GwtIstType object | |
[in,out] | model_budget | model budget object |
Definition at line 590 of file gwt-ist.f90.
subroutine gwtistmodule::ist_calc_csrb | ( | class(gwtisttype) | this, |
real(dp), dimension(:), intent(in) | cim | ||
) |
this | GwtMstType object | |
[in] | cim | immobile domain aqueous concentration at end of this time step |
Definition at line 557 of file gwt-ist.f90.
subroutine gwtistmodule::ist_cq | ( | class(gwtisttype), intent(inout) | this, |
real(dp), dimension(:), intent(in) | x, | ||
real(dp), dimension(:), intent(inout), contiguous | flowja, | ||
integer(i4b), intent(in), optional | iadv | ||
) |
[in,out] | this | GwtIstType object |
[in] | x | current dependent-variable value |
[in,out] | flowja | flow between two connected control volumes |
[in] | iadv | flag that indicates if this is an advance package |
Definition at line 400 of file gwt-ist.f90.
subroutine, public gwtistmodule::ist_create | ( | class(bndtype), pointer | packobj, |
integer(i4b), intent(in) | id, | ||
integer(i4b), intent(in) | ibcnum, | ||
integer(i4b), intent(in) | inunit, | ||
integer(i4b), intent(in) | iout, | ||
character(len=*), intent(in) | namemodel, | ||
character(len=*), intent(in) | pakname, | ||
type(tspfmitype), pointer | fmi, | ||
type(gwtmsttype), pointer | mst | ||
) |
Create a new IST object
packobj | BndType pointer that will point to new IST Package | |
[in] | id | name of the model |
[in] | ibcnum | consecutive package number |
[in] | inunit | unit number of package input file |
[in] | iout | unit number of model listing file |
[in] | namemodel | name of the model |
[in] | pakname | name of the package |
Definition at line 115 of file gwt-ist.f90.
subroutine gwtistmodule::ist_da | ( | class(gwtisttype) | this | ) |
Deallocate package scalars and arrays.
this | GwtIstType object |
Definition at line 794 of file gwt-ist.f90.
subroutine gwtistmodule::ist_fc | ( | class(gwtisttype) | this, |
real(dp), dimension(:), intent(inout) | rhs, | ||
integer(i4b), dimension(:), intent(in) | ia, | ||
integer(i4b), dimension(:), intent(in) | idxglo, | ||
class(matrixbasetype), pointer | matrix_sln | ||
) |
this | GwtIstType object | |
[in,out] | rhs | right-hand side vector for model |
[in] | ia | solution CRS row pointers |
[in] | idxglo | mapping vector for model (local) to solution (global) |
matrix_sln | solution coefficient matrix |
Definition at line 262 of file gwt-ist.f90.
|
private |
Output advanced boundary package budget summary. This method only needs to be overridden for advanced packages that save budget summaries to the model listing file.
this | GwtIstType object | |
[in] | kstp | time step number |
[in] | kper | period number |
[in] | iout | flag and unit number for the model listing file |
[in] | ibudfl | flag indicating budget should be written |
Definition at line 763 of file gwt-ist.f90.
subroutine gwtistmodule::ist_ot_dv | ( | class(gwtisttype) | this, |
integer(i4b), intent(in) | idvsave, | ||
integer(i4b), intent(in) | idvprint | ||
) |
this | BndType object | |
[in] | idvsave | flag and unit number for dependent-variable output |
[in] | idvprint | flag indicating if dependent-variable should be written to the model listing file |
Definition at line 676 of file gwt-ist.f90.
subroutine gwtistmodule::ist_ot_model_flows | ( | class(gwtisttype) | this, |
integer(i4b), intent(in) | icbcfl, | ||
integer(i4b), intent(in) | ibudfl, | ||
integer(i4b), intent(in) | icbcun, | ||
integer(i4b), dimension(:), intent(in), optional | imap | ||
) |
Output flow terms between the IST package and model to a binary file and/or print flows to the model listing file.
this | GwtIstType object | |
[in] | icbcfl | flag for cell-by-cell output |
[in] | ibudfl | flag indication if cell-by-cell data should be saved |
[in] | icbcun | unit number for cell-by-cell output |
[in] | imap | mapping vector |
Definition at line 613 of file gwt-ist.f90.
subroutine gwtistmodule::ist_read_dimensions | ( | class(gwtisttype), intent(inout) | this | ) |
Read dimensions for package.
[in,out] | this | GwtIstType object |
Definition at line 1113 of file gwt-ist.f90.
subroutine gwtistmodule::ist_rp | ( | class(gwtisttype), intent(inout) | this | ) |
Method to read and prepare package data
[in,out] | this | GwtIstType object |
Definition at line 220 of file gwt-ist.f90.
|
private |
this | BndType object | |
[in] | idvsave | flag and unit number for dependent-variable output |
[in] | idvprint | flag indicating if dependent-variable should be written to the model listing file |
Definition at line 689 of file gwt-ist.f90.
subroutine gwtistmodule::output_immobile_sorbate_concentration | ( | class(gwtisttype) | this, |
integer(i4b), intent(in) | idvsave, | ||
integer(i4b), intent(in) | idvprint | ||
) |
this | BndType object | |
[in] | idvsave | flag and unit number for dependent-variable output |
[in] | idvprint | flag indicating if dependent-variable should be written to the model listing file |
Definition at line 720 of file gwt-ist.f90.
|
private |
Read data for package.
this | GwtIstType object |
Definition at line 1125 of file gwt-ist.f90.
subroutine gwtistmodule::read_options | ( | class(gwtisttype), intent(inout) | this | ) |
Read options for boundary packages.
[in,out] | this | GwtIstType object |
Definition at line 973 of file gwt-ist.f90.
|
private |
Definition at line 38 of file gwt-ist.f90.
|
private |
Definition at line 35 of file gwt-ist.f90.
|
private |
Definition at line 37 of file gwt-ist.f90.
|
private |
Definition at line 36 of file gwt-ist.f90.