![]() |
MODFLOW 6 version 6.9.0.dev0
USGS Modular Hydrologic Model
|
Derived type for GwtExchangeType. More...


Public Member Functions | |
| procedure | exg_df (this) |
| @ brief Define GWT GWT exchange | |
| procedure | exg_ar (this) |
| @ brief Allocate and read | |
| procedure | exg_rp (this) |
| @ brief Read and prepare | |
| procedure | exg_ad (this) |
| @ brief Advance | |
| procedure | exg_cf (this, kiter) |
| procedure | exg_fc (this, kiter, matrix_sln, rhs_sln, inwtflag) |
| @ brief Fill coefficients | |
| procedure | exg_bd (this, icnvg, isuppress_output, isolnid) |
| @ brief Budget | |
| procedure | exg_ot (this) |
| @ brief Output | |
| procedure | exg_da (this) |
| @ brief Deallocate | |
| procedure | exg_fp (this) |
| @ brief Final processing | |
| procedure | connects_model (this, model) |
Return true when this exchange provides matrix coefficients for solving model. | |
| procedure | use_interface_model (this) |
| Should interface model be used for this exchange. | |
| procedure | allocate_scalars (this) |
| @ brief Allocate scalars | |
| procedure | allocate_arrays (this) |
| @ brief Allocate arrays | |
| procedure | source_options (this, iout) |
| @ brief Source options | |
| procedure | read_mvt (this, iout) |
| @ brief Read mover | |
| procedure | gwt_gwt_bdsav (this) |
| @ brief Budget save | |
| procedure, public | gwt_gwt_save_simvals (this) |
| @ brief Save simulated flow observations | |
| procedure | allocate_scalars (this) |
| Allocate scalars and initialize to defaults. | |
| procedure | allocate_arrays (this) |
Allocate array data, using the number of connected nodes nexg. | |
| procedure | disconnex_da (this) |
| Clean up all scalars and arrays. | |
| procedure | use_interface_model (this) |
| Should interface model be used to handle these exchanges, to be overridden for inheriting types. | |
| procedure, pass(this) | source_options (this, iout) |
| Source options from input context. | |
| procedure, pass(this) | source_dimensions (this, iout) |
| Source dimension from input context. | |
| procedure, pass(this) | source_data (this, iout) |
| Source exchange data from input context. | |
| procedure, pass(this) | noder (this, model, cellid, iout) |
| Returns reduced node number from user. | |
| procedure, pass(this) | cellstr (this, ndim, cellid, iout) |
| procedure | exg_df (this) |
| Define the exchange. | |
| procedure(exg_df), deferred | exg_df (this) |
| procedure | exg_ac (this, sparse) |
| If an implicit exchange then add connections to sparse. | |
| procedure | exg_mc (this, matrix_sln) |
| Map the connections in the global matrix. | |
| procedure | exg_ar (this) |
| Allocate and read. | |
| procedure(exg_ar), deferred | exg_ar (this) |
| procedure | exg_cf (this, kiter) |
| Calculate conductance, and for explicit exchanges, set the conductance in the boundary package. | |
| procedure | exg_fc (this, kiter, matrix_sln, rhs_sln, inwtflag) |
| Fill the matrix. | |
| procedure | exg_cc (this, icnvg) |
| Additional convergence check. | |
| procedure | exg_cq (this, icnvg, isuppress_output, isolnid) |
| Calculate flow. | |
| procedure | exg_bd (this, icnvg, isuppress_output, isolnid) |
| Exchange budget. | |
| procedure | exg_ot (this) |
| Output. | |
| procedure | exg_ot (this) |
| Run output routines. | |
| procedure | exg_da (this) |
| Deallocate memory. | |
| procedure | exg_da (this) |
| Deallocate memory. | |
| procedure | get_iasym (this) |
| procedure | exg_rp (this) |
| Read and prepare. | |
| procedure | exg_dt (this) |
| Calculate time step length. | |
| procedure | exg_fp (this) |
| Final processing. | |
| procedure | exg_ad (this) |
| Advance. | |
| procedure | connects_model (this, model) |
| Should return true when the exchange should be added to the solution where the model resides. | |
Public Attributes | |
| character(len=lenmodelname) | gwfmodelname1 = '' |
| name of gwfmodel that corresponds to gwtmodel1 | |
| character(len=lenmodelname) | gwfmodelname2 = '' |
| name of gwfmodel that corresponds to gwtmodel2 | |
| real(dp), dimension(:), pointer, contiguous | gwfsimvals => null() |
| simulated gwf flow rate for each exchange | |
| class(gwtmodeltype), pointer | gwtmodel1 => null() |
| pointer to GWT Model 1 | |
| class(gwtmodeltype), pointer | gwtmodel2 => null() |
| pointer to GWT Model 2 | |
| integer(i4b), pointer | inewton => null() |
| unneeded newton flag allows for mvt to be used here | |
| integer(i4b), pointer | iadvscheme |
| the advection scheme at the interface: 0 = upstream, 1 = central, 2 = TVD | |
| integer(i4b), pointer | inmvt => null() |
| unit number for mover transport (0 if off) | |
| type(tspexchangemovertype), pointer | mvt => null() |
| water mover object | |
| integer(i4b), pointer | inobs => null() |
| unit number for GWT-GWT observations | |
| type(obstype), pointer | obs => null() |
| observation object | |
| real(dp), dimension(:), pointer, contiguous | cond => null() |
| conductance | |
| real(dp), dimension(:), pointer, contiguous | simvals => null() |
| simulated flow rate for each exchange | |
| type(tabletype), pointer | outputtab1 => null() |
| type(tabletype), pointer | outputtab2 => null() |
| character(len=linelength), pointer | filename => null() |
| name of the input file | |
| class(numericalmodeltype), pointer | model1 => null() |
| model 1 | |
| class(numericalmodeltype), pointer | model2 => null() |
| model 2 | |
| class(virtualmodeltype), pointer | v_model1 => null() |
| virtual model 1 | |
| class(virtualmodeltype), pointer | v_model2 => null() |
| virtual model 2 | |
| logical(lgp) | is_datacopy |
| when true, this exchange is just a data copy on another process and not responsible for controlling movers, observations, ... | |
| integer(i4b), pointer | nexg => null() |
| number of exchanges | |
| integer(i4b), dimension(:), pointer, contiguous | nodem1 => null() |
| node numbers in model 1 | |
| integer(i4b), dimension(:), pointer, contiguous | nodem2 => null() |
| node numbers in model 2 | |
| integer(i4b), dimension(:), pointer, contiguous | ihc => null() |
| horizontal connection indicator array, size: nexg | |
| real(dp), dimension(:), pointer, contiguous | cl1 => null() |
| connection length 1, size: nexg | |
| real(dp), dimension(:), pointer, contiguous | cl2 => null() |
| connection length 2, size: nexg | |
| real(dp), dimension(:), pointer, contiguous | hwva => null() |
| horizontal widths, vertical flow areas, size: nexg | |
| integer(i4b), pointer | naux => null() |
| number of auxiliary variables | |
| character(len=lenboundname), dimension(:), pointer, contiguous | boundname => null() |
| boundnames | |
| character(len=lenauxname), dimension(:), pointer, contiguous | auxname => null() |
| vector of auxname | |
| type(characterstringtype), dimension(:), pointer, contiguous | auxname_cst => null() |
| copy of vector auxname that can be stored in memory manager | |
| real(dp), dimension(:, :), pointer, contiguous | auxvar => null() |
| array of auxiliary variable values | |
| integer(i4b), pointer | ianglex => null() |
| flag indicating anglex was read, if read, ianglex is index in auxvar | |
| integer(i4b), pointer | icdist => null() |
| flag indicating cdist was read, if read, icdist is index in auxvar | |
| integer(i4b), pointer | iprpak => null() |
| print input flag | |
| integer(i4b), pointer | iprflow => null() |
| print flag for cell by cell flows | |
| integer(i4b), pointer | ipakcb => null() |
| save flag for cell by cell flows | |
| integer(i4b), pointer | inamedbound => null() |
| flag to read boundnames | |
| integer(i4b), pointer | ixt3d => null() |
| flag indicating if XT3D should be applied on the interface: 0 = off, 1 = lhs, 2 = rhs | |
| logical(lgp), pointer | dev_ifmod_on |
| development option, forces interface model for this exchange | |
| character(len=7) | typename |
| name of the type (e.g., 'GWF-GWF') | |
| character(len=lenexchangename) | name |
| the name of this exchange | |
| character(len=lenmempath) | memorypath |
| the location in the memory manager where the variables are stored | |
| character(len=lenmempath) | input_mempath |
| integer(i4b) | id |
Private Member Functions | |
| procedure, private | gwt_gwt_bdsav_model (this, model) |
| @ brief Budget save | |
| procedure, private | gwt_gwt_df_obs (this) |
| @ brief Define observations | |
| procedure, private | gwt_gwt_rp_obs (this) |
| @ brief Read and prepare observations | |
| procedure, private | validate_exchange (this) |
| validate exchange data after reading | |
This derived type contains information and methods for connecting two GWT models.
Definition at line 47 of file exg-gwtgwt.f90.
|
inherited |
| this | instance of exchange object |
Definition at line 62 of file DisConnExchange.f90.
| procedure gwtgwtexchangemodule::gwtexchangetype::allocate_arrays | ( | class(gwtexchangetype) | this | ) |
|
inherited |
| this | instance of exchange object |
Definition at line 61 of file DisConnExchange.f90.
| procedure gwtgwtexchangemodule::gwtexchangetype::allocate_scalars | ( | class(gwtexchangetype) | this | ) |
Allocate scalar variables
| this | GwtExchangeType |
Definition at line 93 of file exg-gwtgwt.f90.
|
inherited |
| this | instance of exchange object | |
| ndim | model DIS dimension | |
| [in] | iout | the output file unit |
Definition at line 71 of file DisConnExchange.f90.
|
inherited |
| this | the instance of the exchange | |
| [in] | model | the model to which the exchange might hold a connection |
Definition at line 31 of file BaseExchange.f90.
| procedure gwtgwtexchangemodule::gwtexchangetype::connects_model | ( | class(gwtexchangetype) | this, |
| class(basemodeltype), intent(in), pointer | model ) |
| this | GwtExchangeType | |
| [in] | model | the model to which the exchange might hold a connection |
Definition at line 91 of file exg-gwtgwt.f90.
|
inherited |
| this | instance of exchange object |
Definition at line 63 of file DisConnExchange.f90.
|
inherited |
Definition at line 20 of file NumericalExchange.f90.
|
inherited |
Definition at line 30 of file BaseExchange.f90.
| procedure gwtgwtexchangemodule::gwtexchangetype::exg_ad | ( | class(gwtexchangetype) | this | ) |
|
pure virtualinherited |
Definition at line 24 of file BaseExchange.f90.
| procedure gwtgwtexchangemodule::gwtexchangetype::exg_ar | ( | class(gwtexchangetype) | this | ) |
Allocated and read and calculate saturated conductance
| this | GwtExchangeType |
Definition at line 82 of file exg-gwtgwt.f90.
|
inherited |
Definition at line 22 of file NumericalExchange.f90.
| procedure gwtgwtexchangemodule::gwtexchangetype::exg_bd | ( | class(gwtexchangetype) | this, |
| integer(i4b), intent(inout) | icnvg, | ||
| integer(i4b), intent(in) | isuppress_output, | ||
| integer(i4b), intent(in) | isolnid ) |
Accumulate budget terms
| this | GwtExchangeType |
Definition at line 87 of file exg-gwtgwt.f90.
|
inherited |
Definition at line 28 of file NumericalExchange.f90.
|
inherited |
Definition at line 26 of file NumericalExchange.f90.
| procedure gwtgwtexchangemodule::gwtexchangetype::exg_cf | ( | class(gwtexchangetype) | this, |
| integer(i4b), intent(in) | kiter ) |
| this | GwfExchangeType |
Definition at line 85 of file exg-gwtgwt.f90.
|
inherited |
Definition at line 24 of file NumericalExchange.f90.
|
inherited |
Definition at line 27 of file NumericalExchange.f90.
|
inherited |
Definition at line 29 of file BaseExchange.f90.
| procedure gwtgwtexchangemodule::gwtexchangetype::exg_da | ( | class(gwtexchangetype) | this | ) |
Deallocate memory associated with this object
| this | GwtExchangeType |
Definition at line 89 of file exg-gwtgwt.f90.
|
inherited |
Definition at line 30 of file NumericalExchange.f90.
|
pure virtualinherited |
Definition at line 23 of file BaseExchange.f90.
| procedure gwtgwtexchangemodule::gwtexchangetype::exg_df | ( | class(gwtexchangetype) | this | ) |
Define GWT to GWT exchange object.
| this | GwtExchangeType |
Definition at line 81 of file exg-gwtgwt.f90.
|
inherited |
Definition at line 19 of file NumericalExchange.f90.
|
inherited |
Definition at line 26 of file BaseExchange.f90.
| procedure gwtgwtexchangemodule::gwtexchangetype::exg_fc | ( | class(gwtexchangetype) | this, |
| integer(i4b), intent(in) | kiter, | ||
| class(matrixbasetype), pointer | matrix_sln, | ||
| real(dp), dimension(:), intent(inout) | rhs_sln, | ||
| integer(i4b), intent(in), optional | inwtflag ) |
Calculate conductance and fill coefficient matrix
| this | GwtExchangeType |
Definition at line 86 of file exg-gwtgwt.f90.
|
inherited |
Definition at line 25 of file NumericalExchange.f90.
|
inherited |
Definition at line 28 of file BaseExchange.f90.
| procedure gwtgwtexchangemodule::gwtexchangetype::exg_fp | ( | class(gwtexchangetype) | this | ) |
Conduct any final processing
| this | GwtExchangeType |
Definition at line 90 of file exg-gwtgwt.f90.
|
inherited |
Definition at line 21 of file NumericalExchange.f90.
|
inherited |
Definition at line 27 of file BaseExchange.f90.
| procedure gwtgwtexchangemodule::gwtexchangetype::exg_ot | ( | class(gwtexchangetype) | this | ) |
|
inherited |
Definition at line 29 of file NumericalExchange.f90.
|
inherited |
Definition at line 25 of file BaseExchange.f90.
| procedure gwtgwtexchangemodule::gwtexchangetype::exg_rp | ( | class(gwtexchangetype) | this | ) |
Read new data for mover and obs
| this | GwtExchangeType |
Definition at line 83 of file exg-gwtgwt.f90.
|
inherited |
Definition at line 31 of file NumericalExchange.f90.
| procedure gwtgwtexchangemodule::gwtexchangetype::gwt_gwt_bdsav | ( | class(gwtexchangetype) | this | ) |
Output individual flows to listing file and binary budget files
| this | GwtExchangeType |
Definition at line 97 of file exg-gwtgwt.f90.
|
private |
Output individual flows to listing file and binary budget files
| this | GwtExchangeType |
Definition at line 98 of file exg-gwtgwt.f90.
|
private |
Define the observations associated with this object
| this | GwtExchangeType |
Definition at line 99 of file exg-gwtgwt.f90.
|
private |
Handle observation exchanges exchange-boundary names.
| this | GwtExchangeType |
Definition at line 100 of file exg-gwtgwt.f90.
| procedure, public gwtgwtexchangemodule::gwtexchangetype::gwt_gwt_save_simvals | ( | class(gwtexchangetype), intent(inout) | this | ) |
Save the simulated flows for each exchange
Definition at line 101 of file exg-gwtgwt.f90.
|
inherited |
| this | instance of exchange object | |
| [in] | iout | the output file unit |
Definition at line 70 of file DisConnExchange.f90.
| procedure gwtgwtexchangemodule::gwtexchangetype::read_mvt | ( | class(gwtexchangetype) | this, |
| integer(i4b), intent(in) | iout ) |
Read and process movers
| this | GwtExchangeType |
Definition at line 96 of file exg-gwtgwt.f90.
|
inherited |
| this | instance of exchange object | |
| [in] | iout | the output file unit |
Definition at line 69 of file DisConnExchange.f90.
|
inherited |
| this | instance of exchange object | |
| [in] | iout | for logging |
Definition at line 68 of file DisConnExchange.f90.
|
inherited |
| this | instance of exchange object | |
| [in] | iout | for logging |
Definition at line 67 of file DisConnExchange.f90.
| procedure gwtgwtexchangemodule::gwtexchangetype::source_options | ( | class(gwtexchangetype) | this, |
| integer(i4b), intent(in) | iout ) |
Source the options block
| this | GwtExchangeType |
Definition at line 95 of file exg-gwtgwt.f90.
|
inherited |
| this | instance of exchange object |
Definition at line 64 of file DisConnExchange.f90.
| procedure gwtgwtexchangemodule::gwtexchangetype::use_interface_model | ( | class(gwtexchangetype) | this | ) |
For now this always returns true, since we do not support a classic-style two-point flux approximation for GWT-GWT. If we ever add logic to support a simpler non-interface model flux calculation, then logic should be added here to set the return accordingly.
| this | GwtExchangeType |
Definition at line 92 of file exg-gwtgwt.f90.
|
private |
| this | GwtExchangeType |
Definition at line 102 of file exg-gwtgwt.f90.
|
inherited |
Definition at line 44 of file DisConnExchange.f90.
|
inherited |
Definition at line 46 of file DisConnExchange.f90.
|
inherited |
Definition at line 48 of file DisConnExchange.f90.
|
inherited |
Definition at line 41 of file DisConnExchange.f90.
|
inherited |
Definition at line 37 of file DisConnExchange.f90.
|
inherited |
Definition at line 38 of file DisConnExchange.f90.
| real(dp), dimension(:), pointer, contiguous gwtgwtexchangemodule::gwtexchangetype::cond => null() |
Definition at line 72 of file exg-gwtgwt.f90.
|
inherited |
Definition at line 57 of file DisConnExchange.f90.
|
inherited |
Definition at line 24 of file DisConnExchange.f90.
| character(len=lenmodelname) gwtgwtexchangemodule::gwtexchangetype::gwfmodelname1 = '' |
Definition at line 50 of file exg-gwtgwt.f90.
| character(len=lenmodelname) gwtgwtexchangemodule::gwtexchangetype::gwfmodelname2 = '' |
Definition at line 51 of file exg-gwtgwt.f90.
| real(dp), dimension(:), pointer, contiguous gwtgwtexchangemodule::gwtexchangetype::gwfsimvals => null() |
Definition at line 52 of file exg-gwtgwt.f90.
| class(gwtmodeltype), pointer gwtgwtexchangemodule::gwtexchangetype::gwtmodel1 => null() |
Definition at line 55 of file exg-gwtgwt.f90.
| class(gwtmodeltype), pointer gwtgwtexchangemodule::gwtexchangetype::gwtmodel2 => null() |
Definition at line 56 of file exg-gwtgwt.f90.
|
inherited |
Definition at line 39 of file DisConnExchange.f90.
| integer(i4b), pointer gwtgwtexchangemodule::gwtexchangetype::iadvscheme |
Definition at line 60 of file exg-gwtgwt.f90.
|
inherited |
Definition at line 49 of file DisConnExchange.f90.
|
inherited |
Definition at line 50 of file DisConnExchange.f90.
|
inherited |
Definition at line 19 of file BaseExchange.f90.
|
inherited |
Definition at line 36 of file DisConnExchange.f90.
|
inherited |
Definition at line 54 of file DisConnExchange.f90.
| integer(i4b), pointer gwtgwtexchangemodule::gwtexchangetype::inewton => null() |
Definition at line 59 of file exg-gwtgwt.f90.
| integer(i4b), pointer gwtgwtexchangemodule::gwtexchangetype::inmvt => null() |
Definition at line 64 of file exg-gwtgwt.f90.
| integer(i4b), pointer gwtgwtexchangemodule::gwtexchangetype::inobs => null() |
Definition at line 68 of file exg-gwtgwt.f90.
|
inherited |
Definition at line 18 of file BaseExchange.f90.
|
inherited |
Definition at line 53 of file DisConnExchange.f90.
|
inherited |
Definition at line 52 of file DisConnExchange.f90.
|
inherited |
Definition at line 51 of file DisConnExchange.f90.
|
inherited |
Definition at line 30 of file DisConnExchange.f90.
|
inherited |
Definition at line 56 of file DisConnExchange.f90.
|
inherited |
Definition at line 17 of file BaseExchange.f90.
|
inherited |
Definition at line 26 of file DisConnExchange.f90.
|
inherited |
Definition at line 27 of file DisConnExchange.f90.
| type(tspexchangemovertype), pointer gwtgwtexchangemodule::gwtexchangetype::mvt => null() |
Definition at line 65 of file exg-gwtgwt.f90.
|
inherited |
Definition at line 16 of file BaseExchange.f90.
|
inherited |
Definition at line 40 of file DisConnExchange.f90.
|
inherited |
Definition at line 33 of file DisConnExchange.f90.
|
inherited |
Definition at line 34 of file DisConnExchange.f90.
|
inherited |
Definition at line 35 of file DisConnExchange.f90.
| type(obstype), pointer gwtgwtexchangemodule::gwtexchangetype::obs => null() |
Definition at line 69 of file exg-gwtgwt.f90.
| type(tabletype), pointer gwtgwtexchangemodule::gwtexchangetype::outputtab1 => null() |
Definition at line 76 of file exg-gwtgwt.f90.
| type(tabletype), pointer gwtgwtexchangemodule::gwtexchangetype::outputtab2 => null() |
Definition at line 77 of file exg-gwtgwt.f90.
| real(dp), dimension(:), pointer, contiguous gwtgwtexchangemodule::gwtexchangetype::simvals => null() |
Definition at line 73 of file exg-gwtgwt.f90.
|
inherited |
Definition at line 15 of file BaseExchange.f90.
|
inherited |
Definition at line 28 of file DisConnExchange.f90.
|
inherited |
Definition at line 29 of file DisConnExchange.f90.