![]() |
MODFLOW 6
version 6.7.0.dev3
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, mempath, 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 | source_options (this) |
| @ brief Source options for package More... | |
| subroutine | log_options (this, found, cim6_fname, budget_fname, budgetcsv_fname, sorbate_fname) |
| Log user options to list file. More... | |
| subroutine | read_options (this) |
| @ brief Read options for package More... | |
| subroutine | source_data (this) |
| @ brief Source data for package More... | |
| subroutine | log_data (this, found) |
| Log user data to list file. More... | |
| subroutine | ist_read_dimensions (this) |
| @ brief Read dimensions 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... | |
| real(dp) function | get_freundlich_kd (conc, kf, a) |
| @ brief Get effective Freundlich distribution coefficient More... | |
| real(dp) function | get_langmuir_kd (conc, kl, sbar) |
| @ brief Get effective Langmuir distribution coefficient 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 1494 of file gwt-ist.f90.

| subroutine gwtistmodule::allocate_scalars | ( | class(gwtisttype) | this | ) |
Allocate and initialize package scalars.
| this | GwtIstType object |
Definition at line 832 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 1472 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 1399 of file gwt-ist.f90.

|
private |
| [in] | conc | solute concentration |
| [in] | kf | freundlich constant |
| [in] | a | freundlich exponent |
Definition at line 1569 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 1449 of file gwt-ist.f90.

|
private |
| [in] | conc | solute concentration |
| [in] | kl | langmuir constant |
| [in] | sbar | langmuir sorption sites |
Definition at line 1586 of file gwt-ist.f90.

|
private |
Calculate and return thetaim, volume of immobile voids per aquifer volume
| this | GwtIstType object | |
| [in] | node | node number |
Definition at line 1380 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 246 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 872 of file gwt-ist.f90.
|
private |
Method to allocate and read static data for the package.
| [in,out] | this | GwtIstType object |
Definition at line 167 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 573 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 548 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 402 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, | ||
| character(len=*), intent(in) | mempath, | ||
| type(tspfmitype), intent(in), pointer | fmi, | ||
| type(gwtmsttype), intent(in), 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 119 of file gwt-ist.f90.

| subroutine gwtistmodule::ist_da | ( | class(gwtisttype) | this | ) |
Deallocate package scalars and arrays.
| this | GwtIstType object |
Definition at line 777 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 275 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 746 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 659 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 596 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 1368 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 233 of file gwt-ist.f90.
| subroutine gwtistmodule::log_data | ( | class(gwtisttype), intent(inout) | this, |
| type(gwtistparamfoundtype), intent(in) | found | ||
| ) |
Definition at line 1327 of file gwt-ist.f90.
| subroutine gwtistmodule::log_options | ( | class(gwtisttype), intent(inout) | this, |
| type(gwtistparamfoundtype), intent(in) | found, | ||
| character(len=*), intent(in) | cim6_fname, | ||
| character(len=*), intent(in) | budget_fname, | ||
| character(len=*), intent(in) | budgetcsv_fname, | ||
| character(len=*), intent(in) | sorbate_fname | ||
| ) |
Definition at line 1057 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 672 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 703 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 1126 of file gwt-ist.f90.
|
private |
Method to source data for the package.
Definition at line 1139 of file gwt-ist.f90.

| subroutine gwtistmodule::source_options | ( | class(gwtisttype), intent(inout) | this | ) |
Method to source options for the package.
Definition at line 960 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.