MODFLOW 6  version 6.8.0.dev0
USGS Modular Hydrologic Model
drnmodule Module Reference

Data Types

type  drntype
 

Functions/Subroutines

subroutine, public drn_create (packobj, id, ibcnum, inunit, iout, namemodel, pakname, mempath)
 Create a New Drn Package and point packobj to the new package. More...
 
subroutine drn_da (this)
 Deallocate memory. More...
 
subroutine drn_allocate_scalars (this)
 Allocate package scalar members. More...
 
subroutine drn_allocate_arrays (this, nodelist, auxvar)
 Allocate package arrays. More...
 
subroutine drn_rp (this)
 Read and prepare. More...
 
subroutine drn_options (this)
 Source options specific to DrnType. More...
 
subroutine log_drn_options (this, found)
 @ brief Log DRN specific package options More...
 
subroutine drn_ck (this)
 Check drain boundary condition data. More...
 
subroutine drn_cf (this)
 Formulate the HCOF and RHS terms. More...
 
subroutine drn_fc (this, rhs, ia, idxglo, matrix_sln)
 Copy rhs and hcof into solution rhs and amat. More...
 
subroutine drn_fn (this, rhs, ia, idxglo, matrix_sln)
 Fill newton terms. More...
 
subroutine define_listlabel (this)
 Define the list heading that is written to iout when PRINT_INPUT option is used. More...
 
subroutine get_drain_elevations (this, i, drndepth, drntop, drnbot)
 Define drain depth and the top and bottom elevations used to scale the drain conductance. More...
 
subroutine get_drain_factor (this, i, factor, opt_drnbot)
 Get the drain conductance scale factor. More...
 
logical function drn_obs_supported (this)
 Return true because DRN package supports observations. More...
 
subroutine drn_df_obs (this)
 Store observation type supported by DRN package. More...
 
subroutine drn_store_user_cond (this)
 Store user-specified drain conductance. More...
 
real(dp) function cond_mult (this, row)
 Apply multiplier to conductance value depending on user-selected option. More...
 
real(dp) function drn_bound_value (this, col, row)
 Return requested boundary value. More...
 

Variables

character(len=lenftype) ftype = 'DRN'
 
character(len=lenpackagename) text = ' DRN'
 

Function/Subroutine Documentation

◆ cond_mult()

real(dp) function drnmodule::cond_mult ( class(drntype), intent(inout)  this,
integer(i4b), intent(in)  row 
)
private

Definition at line 622 of file gwf-drn.f90.

623  ! -- modules
624  use constantsmodule, only: dzero
625  ! -- dummy variables
626  class(DrnType), intent(inout) :: this
627  integer(I4B), intent(in) :: row
628  ! -- result
629  real(DP) :: cond
630  !
631  if (this%iauxmultcol > 0) then
632  cond = this%cond(row) * this%auxvar(this%iauxmultcol, row)
633  else
634  cond = this%cond(row)
635  end if
This module contains simulation constants.
Definition: Constants.f90:9
real(dp), parameter dzero
real constant zero
Definition: Constants.f90:65

◆ define_listlabel()

subroutine drnmodule::define_listlabel ( class(drntype), intent(inout)  this)
private

Definition at line 471 of file gwf-drn.f90.

472  ! -- dummy
473  class(DrnType), intent(inout) :: this
474  !
475  ! -- create the header list label
476  this%listlabel = trim(this%filtyp)//' NO.'
477  if (this%dis%ndim == 3) then
478  write (this%listlabel, '(a, a7)') trim(this%listlabel), 'LAYER'
479  write (this%listlabel, '(a, a7)') trim(this%listlabel), 'ROW'
480  write (this%listlabel, '(a, a7)') trim(this%listlabel), 'COL'
481  elseif (this%dis%ndim == 2) then
482  write (this%listlabel, '(a, a7)') trim(this%listlabel), 'LAYER'
483  write (this%listlabel, '(a, a7)') trim(this%listlabel), 'CELL2D'
484  else
485  write (this%listlabel, '(a, a7)') trim(this%listlabel), 'NODE'
486  end if
487  write (this%listlabel, '(a, a16)') trim(this%listlabel), 'DRAIN EL.'
488  write (this%listlabel, '(a, a16)') trim(this%listlabel), 'CONDUCTANCE'
489  if (this%inamedbound == 1) then
490  write (this%listlabel, '(a, a16)') trim(this%listlabel), 'BOUNDARY NAME'
491  end if

◆ drn_allocate_arrays()

subroutine drnmodule::drn_allocate_arrays ( class(drntype this,
integer(i4b), dimension(:), optional, pointer, contiguous  nodelist,
real(dp), dimension(:, :), optional, pointer, contiguous  auxvar 
)

Definition at line 141 of file gwf-drn.f90.

142  ! -- modules
144  ! -- dummy
145  class(DrnType) :: this
146  integer(I4B), dimension(:), pointer, contiguous, optional :: nodelist
147  real(DP), dimension(:, :), pointer, contiguous, optional :: auxvar
148  !
149  ! -- call base type allocate arrays
150  call this%BndExtType%allocate_arrays(nodelist, auxvar)
151  !
152  ! -- set drn input context pointers
153  call mem_setptr(this%elev, 'ELEV', this%input_mempath)
154  call mem_setptr(this%cond, 'COND', this%input_mempath)
155  !
156  ! --checkin drn input context pointers
157  call mem_checkin(this%elev, 'ELEV', this%memoryPath, &
158  'ELEV', this%input_mempath)
159  call mem_checkin(this%cond, 'COND', this%memoryPath, &
160  'COND', this%input_mempath)

◆ drn_allocate_scalars()

subroutine drnmodule::drn_allocate_scalars ( class(drntype this)

Definition at line 117 of file gwf-drn.f90.

118  ! -- modules
120  ! -- dummy
121  class(DrnType) :: this
122  !
123  ! -- call base type allocate scalars
124  call this%BndExtType%allocate_scalars()
125  !
126  ! -- allocate the object and assign values to object variables
127  call mem_allocate(this%iauxddrncol, 'IAUXDDRNCOL', this%memoryPath)
128  call mem_allocate(this%icubic_scaling, 'ICUBIC_SCALING', this%memoryPath)
129  !
130  ! -- Set values
131  this%iauxddrncol = 0
132  if (this%inewton /= 0) then
133  this%icubic_scaling = 1
134  else
135  this%icubic_scaling = 0
136  end if

◆ drn_bound_value()

real(dp) function drnmodule::drn_bound_value ( class(drntype), intent(inout)  this,
integer(i4b), intent(in)  col,
integer(i4b), intent(in)  row 
)

Definition at line 640 of file gwf-drn.f90.

641  ! -- modules
642  use constantsmodule, only: dzero
643  ! -- dummy variables
644  class(DrnType), intent(inout) :: this
645  integer(I4B), intent(in) :: col
646  integer(I4B), intent(in) :: row
647  ! -- result
648  real(DP) :: bndval
649  !
650  select case (col)
651  case (1)
652  bndval = this%elev(row)
653  case (2)
654  bndval = this%cond_mult(row)
655  case default
656  errmsg = 'Programming error. DRN bound value requested column '&
657  &'outside range of ncolbnd (2).'
658  call store_error(errmsg)
659  call store_error_filename(this%input_fname)
660  end select
Here is the call graph for this function:

◆ drn_cf()

subroutine drnmodule::drn_cf ( class(drntype this)
private

Skip if no drains

Definition at line 336 of file gwf-drn.f90.

337  ! -- dummy
338  class(DrnType) :: this
339  ! -- local
340  integer(I4B) :: i
341  integer(I4B) :: node
342  real(DP) :: cdrn
343  real(DP) :: drnbot
344  real(DP) :: fact
345  !
346  ! -- Return if no drains
347  if (this%nbound == 0) return
348  !
349  ! -- Calculate hcof and rhs for each drn entry
350  do i = 1, this%nbound
351  node = this%nodelist(i)
352  if (this%ibound(node) <= 0) then
353  this%hcof(i) = dzero
354  this%rhs(i) = dzero
355  cycle
356  end if
357  !
358  ! -- set local variables for this drain
359  cdrn = this%cond_mult(i)
360 
361  !
362  ! -- calculate the drainage scaling factor
363  call this%get_drain_factor(i, fact, drnbot)
364  !
365  ! -- calculate rhs and hcof
366  this%rhs(i) = -fact * cdrn * drnbot
367  this%hcof(i) = -fact * cdrn
368  end do

◆ drn_ck()

subroutine drnmodule::drn_ck ( class(drntype), intent(inout)  this)

Definition at line 271 of file gwf-drn.f90.

272  ! -- dummy
273  class(DrnType), intent(inout) :: this
274  ! -- local
275  integer(I4B) :: i
276  integer(I4B) :: node
277  real(DP) :: bt
278  real(DP) :: drndepth
279  real(DP) :: drntop
280  real(DP) :: drnbot
281  ! -- formats
282  character(len=*), parameter :: fmtddrnerr = &
283  "('SCALED-CONDUCTANCE DRN BOUNDARY (',i0,') BOTTOM ELEVATION &
284  &(',f10.3,') IS LESS THAN CELL BOTTOM (',f10.3,')')"
285  character(len=*), parameter :: fmtdrnerr = &
286  "('DRN BOUNDARY (',i0,') ELEVATION (',f10.3,') IS LESS THAN CELL &
287  &BOTTOM (',f10.3,')')"
288  character(len=*), parameter :: fmtcondmulterr = &
289  "('DRN BOUNDARY (',i0,') CONDUCTANCE MULTIPLIER (',g10.3,') IS &
290  &LESS THAN ZERO')"
291  character(len=*), parameter :: fmtconderr = &
292  "('DRN BOUNDARY (',i0,') CONDUCTANCE (',g10.3,') IS LESS THAN &
293  &ZERO')"
294  !
295  ! -- check stress period data
296  do i = 1, this%nbound
297  node = this%nodelist(i)
298  bt = this%dis%bot(node)
299  !
300  ! -- calculate the drainage depth and the top and bottom of
301  ! the conductance scaling elevations
302  call this%get_drain_elevations(i, drndepth, drntop, drnbot)
303  !
304  ! -- accumulate errors
305  if (drnbot < bt .and. this%icelltype(node) /= 0) then
306  if (drndepth /= dzero) then
307  write (errmsg, fmt=fmtddrnerr) i, drnbot, bt
308  else
309  write (errmsg, fmt=fmtdrnerr) i, drnbot, bt
310  end if
311  call store_error(errmsg)
312  end if
313  if (this%iauxmultcol > 0) then
314  if (this%auxvar(this%iauxmultcol, i) < dzero) then
315  write (errmsg, fmt=fmtcondmulterr) &
316  i, this%auxvar(this%iauxmultcol, i)
317  call store_error(errmsg)
318  end if
319  end if
320  if (this%cond(i) < dzero) then
321  write (errmsg, fmt=fmtconderr) i, this%cond(i)
322  call store_error(errmsg)
323  end if
324  end do
325  !
326  ! -- write summary of drain package error messages
327  if (count_errors() > 0) then
328  call store_error_filename(this%input_fname)
329  end if
Here is the call graph for this function:

◆ drn_create()

subroutine, public drnmodule::drn_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 
)

Definition at line 58 of file gwf-drn.f90.

60  ! -- dummy
61  class(BndType), pointer :: packobj
62  integer(I4B), intent(in) :: id
63  integer(I4B), intent(in) :: ibcnum
64  integer(I4B), intent(in) :: inunit
65  integer(I4B), intent(in) :: iout
66  character(len=*), intent(in) :: namemodel
67  character(len=*), intent(in) :: pakname
68  character(len=*), intent(in) :: mempath
69  ! -- local
70  type(DrnType), pointer :: drnobj
71  !
72  ! -- allocate the object and assign values to object variables
73  allocate (drnobj)
74  packobj => drnobj
75  !
76  ! -- create name and memory path
77  call packobj%set_names(ibcnum, namemodel, pakname, ftype, mempath)
78  packobj%text = text
79  !
80  ! -- allocate scalars
81  call drnobj%allocate_scalars()
82  !s
83  ! -- initialize package
84  call packobj%pack_initialize()
85  !
86  ! -- initialize
87  packobj%inunit = inunit
88  packobj%iout = iout
89  packobj%id = id
90  packobj%ibcnum = ibcnum
91  packobj%ncolbnd = 2
92  packobj%ictMemPath = create_mem_path(namemodel, 'NPF')
Here is the call graph for this function:
Here is the caller graph for this function:

◆ drn_da()

subroutine drnmodule::drn_da ( class(drntype this)
private

Definition at line 97 of file gwf-drn.f90.

98  ! -- modules
100  ! -- dummy
101  class(DrnType) :: this
102  !
103  ! -- Deallocate parent package
104  call this%BndExtType%bnd_da()
105  !
106  ! -- scalars
107  call mem_deallocate(this%iauxddrncol)
108  call mem_deallocate(this%icubic_scaling)
109  !
110  ! -- arrays
111  call mem_deallocate(this%elev, 'ELEV', this%memoryPath)
112  call mem_deallocate(this%cond, 'COND', this%memoryPath)

◆ drn_df_obs()

subroutine drnmodule::drn_df_obs ( class(drntype this)
private

Overrides BndTypebnd_df_obs

Definition at line 590 of file gwf-drn.f90.

591  implicit none
592  ! -- dummy
593  class(DrnType) :: this
594  ! -- local
595  integer(I4B) :: indx
596  !
597  call this%obs%StoreObsType('drn', .true., indx)
598  this%obs%obsData(indx)%ProcessIdPtr => defaultobsidprocessor
599  !
600  ! -- Store obs type and assign procedure pointer
601  ! for to-mvr observation type.
602  call this%obs%StoreObsType('to-mvr', .true., indx)
603  this%obs%obsData(indx)%ProcessIdPtr => defaultobsidprocessor
Here is the call graph for this function:

◆ drn_fc()

subroutine drnmodule::drn_fc ( class(drntype this,
real(dp), dimension(:), intent(inout)  rhs,
integer(i4b), dimension(:), intent(in)  ia,
integer(i4b), dimension(:), intent(in)  idxglo,
class(matrixbasetype), pointer  matrix_sln 
)
private

Definition at line 373 of file gwf-drn.f90.

374  ! -- dummy
375  class(DrnType) :: this
376  real(DP), dimension(:), intent(inout) :: rhs
377  integer(I4B), dimension(:), intent(in) :: ia
378  integer(I4B), dimension(:), intent(in) :: idxglo
379  class(MatrixBaseType), pointer :: matrix_sln
380  ! -- local
381  integer(I4B) :: i
382  integer(I4B) :: n
383  integer(I4B) :: ipos
384  real(DP) :: fact
385  real(DP) :: drnbot
386  real(DP) :: drncond
387  real(DP) :: qdrn
388  !
389  ! -- packmvrobj fc
390  if (this%imover == 1) then
391  call this%pakmvrobj%fc()
392  end if
393  !
394  ! -- Copy package rhs and hcof into solution rhs and amat
395  do i = 1, this%nbound
396  n = this%nodelist(i)
397  rhs(n) = rhs(n) + this%rhs(i)
398  ipos = ia(n)
399  call matrix_sln%add_value_pos(idxglo(ipos), this%hcof(i))
400  !
401  ! -- calculate the drainage scaling factor
402  call this%get_drain_factor(i, fact, drnbot)
403  !
404  ! -- If mover is active and this drain is discharging,
405  ! store available water (as positive value).
406  if (this%imover == 1 .and. fact > dzero) then
407  drncond = this%cond_mult(i)
408  qdrn = fact * drncond * (this%xnew(n) - drnbot)
409  call this%pakmvrobj%accumulate_qformvr(i, qdrn)
410  end if
411  end do

◆ drn_fn()

subroutine drnmodule::drn_fn ( class(drntype this,
real(dp), dimension(:), intent(inout)  rhs,
integer(i4b), dimension(:), intent(in)  ia,
integer(i4b), dimension(:), intent(in)  idxglo,
class(matrixbasetype), pointer  matrix_sln 
)
private

Definition at line 416 of file gwf-drn.f90.

417  implicit none
418  ! -- dummy
419  class(DrnType) :: this
420  real(DP), dimension(:), intent(inout) :: rhs
421  integer(I4B), dimension(:), intent(in) :: ia
422  integer(I4B), dimension(:), intent(in) :: idxglo
423  class(MatrixBaseType), pointer :: matrix_sln
424  ! -- local
425  integer(I4B) :: i
426  integer(I4B) :: node
427  integer(I4B) :: ipos
428  real(DP) :: cdrn
429  real(DP) :: xnew
430  real(DP) :: drndepth
431  real(DP) :: drntop
432  real(DP) :: drnbot
433  real(DP) :: drterm
434  !
435  ! -- Copy package rhs and hcof into solution rhs and amat
436  if (this%iauxddrncol /= 0) then
437  do i = 1, this%nbound
438  node = this%nodelist(i)
439  !
440  ! -- test if node is constant or inactive
441  if (this%ibound(node) <= 0) then
442  cycle
443  end if
444  !
445  ! -- set local variables for this drain
446  cdrn = this%cond_mult(i)
447  xnew = this%xnew(node)
448  !
449  ! -- calculate the drainage depth and the top and bottom of
450  ! the conductance scaling elevations
451  call this%get_drain_elevations(i, drndepth, drntop, drnbot)
452  !
453  ! -- calculate scaling factor
454  if (drndepth /= dzero) then
455  drterm = sqsaturationderivative(drntop, drnbot, xnew, &
456  c1=-done, c2=dtwo)
457  drterm = drterm * cdrn * (drnbot - xnew)
458  !
459  ! -- fill amat and rhs with newton-raphson terms
460  ipos = ia(node)
461  call matrix_sln%add_value_pos(idxglo(ipos), drterm)
462  rhs(node) = rhs(node) + drterm * xnew
463  end if
464  end do
465  end if
Here is the call graph for this function:

◆ drn_obs_supported()

logical function drnmodule::drn_obs_supported ( class(drntype this)
private

Overrides BndTypebnd_obs_supported()

Definition at line 578 of file gwf-drn.f90.

579  implicit none
580  ! -- dummy
581  class(DrnType) :: this
582  !
583  drn_obs_supported = .true.

◆ drn_options()

subroutine drnmodule::drn_options ( class(drntype), intent(inout)  this)

Definition at line 183 of file gwf-drn.f90.

184  ! -- modules
185  use inputoutputmodule, only: urword
189  ! -- dummy
190  class(DrnType), intent(inout) :: this
191  ! -- local
192  type(GwfDrnParamFoundType) :: found
193  character(len=LENAUXNAME) :: ddrnauxname
194  integer(I4B) :: n
195  !
196  ! -- source base class options
197  call this%BndExtType%source_options()
198  !
199  ! -- source drain options
200  call mem_set_value(this%imover, 'MOVER', this%input_mempath, found%mover)
201  call mem_set_value(ddrnauxname, 'AUXDEPTHNAME', this%input_mempath, &
202  found%auxdepthname)
203  call mem_set_value(this%icubic_scaling, 'ICUBICSFAC', this%input_mempath, &
204  found%icubicsfac)
205  !
206  if (found%auxdepthname) then
207  this%iauxddrncol = -1
208  !
209  ! -- Error if no aux variable specified
210  if (this%naux == 0) then
211  write (errmsg, '(a,2(1x,a))') &
212  'AUXDEPTHNAME was specified as', trim(adjustl(ddrnauxname)), &
213  'but no AUX variables specified.'
214  call store_error(errmsg)
215  end if
216  !
217  ! -- Assign ddrn column
218  this%iauxddrncol = 0
219  do n = 1, this%naux
220  if (ddrnauxname == this%auxname(n)) then
221  this%iauxddrncol = n
222  exit
223  end if
224  end do
225  !
226  ! -- Error if aux variable cannot be found
227  if (this%iauxddrncol == 0) then
228  write (errmsg, '(a,2(1x,a))') &
229  'AUXDEPTHNAME was specified as', trim(adjustl(ddrnauxname)), &
230  'but no AUX variable found with this name.'
231  call store_error(errmsg)
232  end if
233  end if
234  !
235  ! -- log DRN specific options
236  call this%log_drn_options(found)
subroutine, public urword(line, icol, istart, istop, ncode, n, r, iout, in)
Extract a word from a string.
This class is used to store a single deferred-length character string. It was designed to work in an ...
Definition: CharString.f90:23
Here is the call graph for this function:

◆ drn_rp()

subroutine drnmodule::drn_rp ( class(drntype), intent(inout)  this)

Definition at line 165 of file gwf-drn.f90.

166  use tdismodule, only: kper
167  ! -- dummy
168  class(DrnType), intent(inout) :: this
169  !
170  if (this%iper /= kper) return
171  !
172  ! -- Call the parent class read and prepare
173  call this%BndExtType%bnd_rp()
174  !
175  ! -- store user cond
176  if (this%ivsc == 1) then
177  call this%drn_store_user_cond()
178  end if
integer(i4b), pointer, public kper
current stress period number
Definition: tdis.f90:23

◆ drn_store_user_cond()

subroutine drnmodule::drn_store_user_cond ( class(drntype), intent(inout)  this)
private

Definition at line 608 of file gwf-drn.f90.

609  ! -- dummy
610  class(DrnType), intent(inout) :: this
611  ! -- local
612  integer(I4B) :: n
613  !
614  ! -- store backup copy of conductance values
615  do n = 1, this%nbound
616  this%condinput(n) = this%cond_mult(n)
617  end do

◆ get_drain_elevations()

subroutine drnmodule::get_drain_elevations ( class(drntype), intent(inout)  this,
integer(i4b), intent(in)  i,
real(dp), intent(inout)  drndepth,
real(dp), intent(inout)  drntop,
real(dp), intent(inout)  drnbot 
)
private

Definition at line 497 of file gwf-drn.f90.

498  ! -- dummy
499  class(DrnType), intent(inout) :: this
500  integer(I4B), intent(in) :: i
501  real(DP), intent(inout) :: drndepth
502  real(DP), intent(inout) :: drntop
503  real(DP), intent(inout) :: drnbot
504  ! -- local
505  real(DP) :: drnelev
506  real(DP) :: elev
507  !
508  ! -- initialize dummy and local variables
509  drndepth = dzero
510  drnelev = this%elev(i)
511  !
512  ! -- set the drain depth
513  if (this%iauxddrncol > 0) then
514  drndepth = this%auxvar(this%iauxddrncol, i)
515  end if
516  !
517  ! -- calculate the top and bottom drain elevations
518  if (drndepth /= dzero) then
519  elev = drnelev + drndepth
520  drntop = max(elev, drnelev)
521  drnbot = min(elev, drnelev)
522  else
523  drntop = drnelev
524  drnbot = drnelev
525  end if

◆ get_drain_factor()

subroutine drnmodule::get_drain_factor ( class(drntype), intent(inout)  this,
integer(i4b), intent(in)  i,
real(dp), intent(inout)  factor,
real(dp), intent(inout), optional  opt_drnbot 
)
private

Definition at line 530 of file gwf-drn.f90.

531  ! -- dummy
532  class(DrnType), intent(inout) :: this
533  integer(I4B), intent(in) :: i
534  real(DP), intent(inout) :: factor
535  real(DP), intent(inout), optional :: opt_drnbot
536  ! -- local
537  integer(I4B) :: node
538  real(DP) :: xnew
539  real(DP) :: drndepth
540  real(DP) :: drntop
541  real(DP) :: drnbot
542  !
543  ! -- set local variables for this drain
544  node = this%nodelist(i)
545  xnew = this%xnew(node)
546  !
547  ! -- calculate the drainage depth and the top and bottom of
548  ! the conductance scaling elevations
549  call this%get_drain_elevations(i, drndepth, drntop, drnbot)
550  !
551  ! -- set opt_drnbot to drnbot if passed as dummy variable
552  if (present(opt_drnbot)) then
553  opt_drnbot = drnbot
554  end if
555  !
556  ! -- calculate scaling factor
557  if (drndepth /= dzero) then
558  if (this%icubic_scaling /= 0) then
559  factor = sqsaturation(drntop, drnbot, xnew, c1=-done, c2=dtwo)
560  else
561  factor = squadraticsaturation(drntop, drnbot, xnew, eps=dzero)
562  end if
563  else
564  if (xnew <= drnbot) then
565  factor = dzero
566  else
567  factor = done
568  end if
569  end if
Here is the call graph for this function:

◆ log_drn_options()

subroutine drnmodule::log_drn_options ( class(drntype), intent(inout)  this,
type(gwfdrnparamfoundtype), intent(in)  found 
)

Definition at line 241 of file gwf-drn.f90.

242  ! -- modules
244  ! -- dummy variables
245  class(DrnType), intent(inout) :: this
246  type(GwfDrnParamFoundType), intent(in) :: found
247  ! -- local variables
248  ! -- format
249  !
250  ! -- log found options
251  write (this%iout, '(/1x,a)') 'PROCESSING '//trim(adjustl(this%text)) &
252  //' OPTIONS'
253  !
254  if (found%mover) then
255  write (this%iout, '(4x,A)') 'MOVER OPTION ENABLED'
256  end if
257  !
258  if (found%icubicsfac) then
259  write (this%iout, '(4x,a,1x,a)') &
260  'CUBIC SCALING will be used for drains with non-zero DDRN values', &
261  'even if the NEWTON-RAPHSON method is not being used.'
262  end if
263  !
264  ! -- close logging block
265  write (this%iout, '(1x,a)') &
266  'END OF '//trim(adjustl(this%text))//' OPTIONS'

Variable Documentation

◆ ftype

character(len=lenftype) drnmodule::ftype = 'DRN'
private

Definition at line 21 of file gwf-drn.f90.

21  character(len=LENFTYPE) :: ftype = 'DRN'

◆ text

character(len=lenpackagename) drnmodule::text = ' DRN'
private

Definition at line 22 of file gwf-drn.f90.

22  character(len=LENPACKAGENAME) :: text = ' DRN'