![]() |
MODFLOW 6
version 6.8.0.dev0
USGS Modular Hydrologic Model
|
Data Types | |
| type | prtprptype |
| Particle release point (PRP) package. More... | |
| type | exgprtprptype |
| Exchange PRP package. A variant of the normal PRP package that doesn't read from input files but instead receives particle transfers from coupled models while preserving the pattern where PRP packages own particles. Call it "Particle Registry Package"? More... | |
Functions/Subroutines | |
| subroutine, public | prp_create (packobj, id, ibcnum, inunit, iout, namemodel, pakname, fmi, input_mempath) |
| Create a new particle release point package. More... | |
| subroutine | prp_da (this) |
| Deallocate memory. More... | |
| subroutine | prp_set_pointers (this, ibound, izone) |
| @ brief Set pointers to model variables More... | |
| subroutine | prp_allocate_arrays (this, nodelist, auxvar) |
| Allocate arrays. More... | |
| subroutine | prp_allocate_scalars (this) |
| Allocate scalars. More... | |
| subroutine | prp_ar (this) |
| @ brief Allocate and read period data More... | |
| subroutine | exg_prp_allocate_scalars (this) |
| Allocate scalars for exchange PRP. More... | |
| subroutine | exg_prp_allocate_arrays (this, nodelist, auxvar) |
| Allocate arrays for exchange PRP. More... | |
| subroutine | exg_prp_ar (this) |
| @ brief No-op AR method override for exchange PRP. More... | |
| subroutine | prp_ad (this) |
| Advance a time step and release particles if scheduled. More... | |
| subroutine | prp_commit (this) |
| Commit staged particle state to the "final" store. More... | |
| subroutine | exg_prp_ad (this) |
| No-op AD method override for exchange PRP. More... | |
| subroutine | exg_prp_cq_simrate (this, hnew, flowja, imover) |
| No-op flow calculation for exchange PRP. More... | |
| subroutine | exg_prp_bd (this, model_budget) |
| No-op budget method for exchange PRP. Likewise about the STORAGE term accounting. More... | |
| subroutine | exg_prp_ot_model_flows (this, icbcfl, ibudfl, icbcun, imap) |
| No-op flow output method for exchange PRP. No contribution to budget, no need to write output. More... | |
| subroutine | log_release (this) |
| Log the release scheduled for this time step. More... | |
| subroutine | validate_release_point (this, ic, x, y, z) |
| Verify that the release point is in the cell. More... | |
| subroutine | release (this, ip, trelease) |
| Release a particle at the specified time. More... | |
| subroutine | initialize_particle (this, particle, ip, trelease) |
| subroutine | prp_rp (this) |
| @ brief Read and prepare period data for particle input More... | |
| subroutine | exg_prp_rp (this) |
| @ brief No-op RP method override for exchange PRP. More... | |
| subroutine | prp_cq_simrate (this, hnew, flowja, imover) |
| @ brief Calculate flow between package and model. More... | |
| subroutine | define_listlabel (this) |
| logical function | prp_obs_supported (this) |
| Indicates whether observations are supported. More... | |
| subroutine | prp_df_obs (this) |
| Store supported observations. More... | |
| subroutine | prp_options (this) |
| @ brief Set options specific to PrtPrpType More... | |
| subroutine | exg_prp_options (this) |
| @ brief No-op options method override for exchange PRP. Just creates an empty release schedule. More... | |
| subroutine | prp_log_options (this, found, trackfile, trackcsvfile) |
| @ brief Log options specific to PrtPrpType More... | |
| subroutine | prp_dimensions (this) |
| @ brief Set dimensions specific to PrtPrpType More... | |
| subroutine | exg_prp_dimensions (this) |
| @ brief Dimensions method override for exchange PRP. Just set all dimensions to zero and allocate arrays. More... | |
| subroutine | prp_packagedata (this) |
| Load package data (release points). More... | |
| subroutine | prp_releasetimes (this) |
| Load explicitly specified release times. More... | |
| subroutine | prp_load_releasetimefrequency (this) |
| Load regularly spaced release times if configured. More... | |
Variables | |
| character(len=lenftype) | ftype = 'PRP' |
| character(len=16) | text = ' PRP' |
| real(dp), parameter | default_exit_solve_tolerance = DEM5 |
| subroutine prtprpmodule::define_listlabel | ( | class(prtprptype), intent(inout) | this | ) |
Definition at line 824 of file prt-prp.f90.
|
private |
Definition at line 514 of file prt-prp.f90.
| subroutine prtprpmodule::exg_prp_allocate_arrays | ( | class(exgprtprptype) | this, |
| integer(i4b), dimension(:), optional, pointer, contiguous | nodelist, | ||
| real(dp), dimension(:, :), optional, pointer, contiguous | auxvar | ||
| ) |
BndExtType expects certain array variables to exist in the input context (CELLID, NODEULIST, BOUNDNAME, AUXVAR). This method manually creates zero-sized arrays before calling the parent's allocate_arrays.
Definition at line 396 of file prt-prp.f90.
|
private |
The exchange PRP is a headless package (no input file) but BndExtType expects certain variables to exist in the input context (IPER, IONPER) so we need to manually create them before calling the parent procedure.
Definition at line 373 of file prt-prp.f90.
| subroutine prtprpmodule::exg_prp_ar | ( | class(exgprtprptype), intent(inout) | this | ) |
Definition at line 418 of file prt-prp.f90.
|
private |
Definition at line 531 of file prt-prp.f90.
|
private |
Exchange PRP particles are transferred from other models and already active, so their mass is already accounted for in the STORAGE term.
Definition at line 522 of file prt-prp.f90.
| subroutine prtprpmodule::exg_prp_dimensions | ( | class(exgprtprptype), intent(inout) | this | ) |
Definition at line 1076 of file prt-prp.f90.
| subroutine prtprpmodule::exg_prp_options | ( | class(exgprtprptype), intent(inout) | this | ) |
| subroutine prtprpmodule::exg_prp_ot_model_flows | ( | class(exgprtprptype) | this, |
| integer(i4b), intent(in) | icbcfl, | ||
| integer(i4b), intent(in) | ibudfl, | ||
| integer(i4b), intent(in) | icbcun, | ||
| integer(i4b), dimension(:), intent(in), optional | imap | ||
| ) |
Definition at line 539 of file prt-prp.f90.
| subroutine prtprpmodule::exg_prp_rp | ( | class(exgprtprptype), intent(inout) | this | ) |
Definition at line 785 of file prt-prp.f90.
|
private |
| [in,out] | this | this instance |
| [in,out] | particle | the particle |
| [in] | ip | particle index |
| [in] | trelease | release time |
Definition at line 624 of file prt-prp.f90.

|
private |
| [in,out] | this | prp |
Definition at line 548 of file prt-prp.f90.
|
private |
Definition at line 423 of file prt-prp.f90.

|
private |
|
private |
Definition at line 292 of file prt-prp.f90.
|
private |
Definition at line 352 of file prt-prp.f90.
| subroutine prtprpmodule::prp_commit | ( | class(prtprptype) | this | ) |
Definition at line 505 of file prt-prp.f90.
|
private |
| [in,out] | flowja | flow between package and model |
| [in] | imover | flag indicating if the mover package is active |
Definition at line 790 of file prt-prp.f90.
| subroutine, public prtprpmodule::prp_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(prtfmitype), pointer | fmi, | ||
| character(len=*), intent(in), optional | input_mempath | ||
| ) |
Creates either a standard PRP (reads from input file) or an exchange PRP (programmatically populated). The type is determined by whether input_mempath is provided: if present, standard; if absent, exchange.
Definition at line 127 of file prt-prp.f90.

|
private |
Definition at line 194 of file prt-prp.f90.
|
private |
| subroutine prtprpmodule::prp_dimensions | ( | class(prtprptype), intent(inout) | this | ) |
Definition at line 1045 of file prt-prp.f90.
| subroutine prtprpmodule::prp_load_releasetimefrequency | ( | class(prtprptype), intent(inout) | this | ) |
|
private |
Definition at line 1009 of file prt-prp.f90.
|
private |
Definition at line 830 of file prt-prp.f90.
|
private |
Definition at line 851 of file prt-prp.f90.

|
private |
Definition at line 1088 of file prt-prp.f90.

| subroutine prtprpmodule::prp_releasetimes | ( | class(prtprptype), intent(inout) | this | ) |
Definition at line 1231 of file prt-prp.f90.

| subroutine prtprpmodule::prp_rp | ( | class(prtprptype), intent(inout) | this | ) |
Definition at line 739 of file prt-prp.f90.
|
private |
Definition at line 246 of file prt-prp.f90.
|
private |
Releasing a particle entails validating the particle's coordinates and settings, transforming its coordinates if needed, initializing the particle's initial tracking time to the given release time, storing the particle in the particle store (from which the PRT model will later retrieve it, apply the tracking method, and check it in again), and accumulating the particle's mass (the total mass released from each release point is calculated for budget reporting).
| [in,out] | this | this instance |
| [in] | ip | particle index |
| [in] | trelease | release time |
Definition at line 606 of file prt-prp.f90.
|
private |
Terminate with an error if the release point lies outside the given cell, or if the point is above or below the grid top or bottom, respectively.
| [in,out] | this | this instance |
| [in] | ic | cell index |
| [in] | z | release point |
Definition at line 563 of file prt-prp.f90.

|
private |
Definition at line 36 of file prt-prp.f90.
|
private |
Definition at line 34 of file prt-prp.f90.
|
private |
Definition at line 35 of file prt-prp.f90.