![]() |
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 | 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 810 of file prt-prp.f90.
| subroutine prtprpmodule::exg_prp_ad | ( | class(exgprtprptype) | this | ) |
Definition at line 491 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 391 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 368 of file prt-prp.f90.
| subroutine prtprpmodule::exg_prp_ar | ( | class(exgprtprptype), intent(inout) | this | ) |
Definition at line 413 of file prt-prp.f90.
|
private |
Definition at line 508 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 499 of file prt-prp.f90.
| subroutine prtprpmodule::exg_prp_dimensions | ( | class(exgprtprptype), intent(inout) | this | ) |
Definition at line 1062 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 516 of file prt-prp.f90.
| subroutine prtprpmodule::exg_prp_rp | ( | class(exgprtprptype), intent(inout) | this | ) |
Definition at line 771 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 601 of file prt-prp.f90.

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

|
private |
|
private |
Definition at line 287 of file prt-prp.f90.
|
private |
Definition at line 347 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 776 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 125 of file prt-prp.f90.

|
private |
Definition at line 192 of file prt-prp.f90.
|
private |
| subroutine prtprpmodule::prp_dimensions | ( | class(prtprptype), intent(inout) | this | ) |
Definition at line 1031 of file prt-prp.f90.
| subroutine prtprpmodule::prp_load_releasetimefrequency | ( | class(prtprptype), intent(inout) | this | ) |
|
private |
Definition at line 995 of file prt-prp.f90.
|
private |
Definition at line 816 of file prt-prp.f90.
|
private |
Definition at line 837 of file prt-prp.f90.

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

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

| subroutine prtprpmodule::prp_rp | ( | class(prtprptype), intent(inout) | this | ) |
Definition at line 724 of file prt-prp.f90.
|
private |
Definition at line 242 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 583 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 540 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.