58 character(len=*),
parameter ::
ftype =
'MWE'
59 character(len=*),
parameter ::
flowtype =
'MAW'
60 character(len=16) ::
text =
' MWE'
66 integer(I4B),
pointer :: idxbudrate => null()
67 integer(I4B),
pointer :: idxbudfwrt => null()
68 integer(I4B),
pointer :: idxbudrtmv => null()
69 integer(I4B),
pointer :: idxbudfrtm => null()
70 integer(I4B),
pointer :: idxbudmwcd => null()
71 real(dp),
dimension(:),
pointer,
contiguous :: ktf => null()
72 real(dp),
dimension(:),
pointer,
contiguous :: rfeatthk => null()
73 real(dp),
dimension(:),
pointer,
contiguous :: temprate => null()
103 subroutine mwe_create(packobj, id, ibcnum, inunit, iout, namemodel, pakname, &
104 mempath, fmi, eqnsclfac, gwecommon, dvt, dvu, dvua)
106 class(
bndtype),
pointer :: packobj
107 integer(I4B),
intent(in) :: id
108 integer(I4B),
intent(in) :: ibcnum
109 integer(I4B),
intent(in) :: inunit
110 integer(I4B),
intent(in) :: iout
111 character(len=*),
intent(in) :: namemodel
112 character(len=*),
intent(in) :: pakname
113 character(len=*),
intent(in) :: mempath
115 real(dp),
intent(in),
pointer :: eqnsclfac
117 character(len=*),
intent(in) :: dvt
118 character(len=*),
intent(in) :: dvu
119 character(len=*),
intent(in) :: dvua
128 call packobj%set_names(ibcnum, namemodel, pakname,
ftype, mempath)
132 call mweobj%allocate_scalars()
135 call packobj%pack_initialize()
137 packobj%inunit = inunit
140 packobj%ibcnum = ibcnum
151 mweobj%eqnsclfac => eqnsclfac
156 mweobj%gwecommon => gwecommon
159 mweobj%depvartype = dvt
160 mweobj%depvarunit = dvu
161 mweobj%depvarunitabbrev = dvua
172 character(len=LINELENGTH) :: errmsg
173 class(
bndtype),
pointer :: packobj
174 integer(I4B) :: ip, icount
175 integer(I4B) :: nbudterm
185 if (this%fmi%flows_from_file)
then
186 call this%fmi%set_aptbudobj_pointer(this%flowpackagename, this%flowbudptr)
187 if (
associated(this%flowbudptr)) found = .true.
190 if (
associated(this%fmi%gwfbndlist))
then
193 do ip = 1, this%fmi%gwfbndlist%Count()
195 if (packobj%packName == this%flowpackagename)
then
200 this%flowpackagebnd => packobj
201 select type (packobj)
203 this%flowbudptr => packobj%budobj
212 if (.not. found)
then
213 write (errmsg,
'(a)')
'Could not find flow package with name '&
214 &//trim(adjustl(this%flowpackagename))//
'.'
216 call store_error_filename(this%input_fname)
221 nbudterm = this%flowbudptr%nbudterm
222 call mem_allocate(this%idxbudssm, nbudterm,
'IDXBUDSSM', this%memoryPath)
225 write (this%iout,
'(/, a, a)') &
226 'PROCESSING '//
ftype//
' INFORMATION FOR ', this%packName
227 write (this%iout,
'(a)')
' IDENTIFYING FLOW TERMS IN '//
flowtype//
' PACKAGE'
228 write (this%iout,
'(a, i0)') &
229 ' NUMBER OF '//
flowtype//
' = ', this%flowbudptr%ncv
231 do ip = 1, this%flowbudptr%nbudterm
232 select case (trim(adjustl(this%flowbudptr%budterm(ip)%flowtype)))
233 case (
'FLOW-JA-FACE')
235 this%idxbudssm(ip) = 0
238 this%idxbudssm(ip) = 0
241 this%idxbudssm(ip) = 0
244 this%idxbudssm(ip) = 0
247 this%idxbudssm(ip) = 0
250 this%idxbudssm(ip) = 0
251 case (
'FW-RATE-TO-MVR')
253 this%idxbudssm(ip) = 0
256 this%idxbudssm(ip) = 0
259 this%idxbudssm(ip) = 0
262 this%idxbudssm(ip) = 0
267 this%idxbudssm(ip) = icount
270 write (this%iout,
'(a, i0, " = ", a,/, a, i0)') &
271 ' TERM ', ip, trim(adjustl(this%flowbudptr%budterm(ip)%flowtype)), &
272 ' MAX NO. OF ENTRIES = ', this%flowbudptr%budterm(ip)%maxlist
274 write (this%iout,
'(a, //)')
'DONE PROCESSING '//
ftype//
' INFORMATION'
277 this%idxbudmwcd = this%idxbudgwf
288 integer(I4B),
intent(in) :: itemno
289 character(len=*),
intent(in) :: key
293 select case (trim(key))
295 val = this%temprate(itemno)
307 real(DP),
dimension(:),
intent(inout) :: rhs
308 integer(I4B),
dimension(:),
intent(in) :: ia
309 integer(I4B),
dimension(:),
intent(in) :: idxglo
312 integer(I4B) :: j, n, n1, n2
314 integer(I4B) :: iposd, iposoffd
315 integer(I4B) :: ipossymd, ipossymoffd
316 integer(I4B) :: auxpos
326 if (this%idxbudrate /= 0)
then
327 do j = 1, this%flowbudptr%budterm(this%idxbudrate)%nlist
328 call this%mwe_rate_term(j, n1, n2, rrate, rhsval, hcofval)
329 iloc = this%idxlocnode(n1)
330 iposd = this%idxpakdiag(n1)
331 call matrix_sln%add_value_pos(iposd, hcofval)
332 rhs(iloc) = rhs(iloc) + rhsval
337 if (this%idxbudfwrt /= 0)
then
338 do j = 1, this%flowbudptr%budterm(this%idxbudfwrt)%nlist
339 call this%mwe_fwrt_term(j, n1, n2, rrate, rhsval, hcofval)
340 iloc = this%idxlocnode(n1)
341 iposd = this%idxpakdiag(n1)
342 call matrix_sln%add_value_pos(iposd, hcofval)
343 rhs(iloc) = rhs(iloc) + rhsval
348 if (this%idxbudrtmv /= 0)
then
349 do j = 1, this%flowbudptr%budterm(this%idxbudrtmv)%nlist
350 call this%mwe_rtmv_term(j, n1, n2, rrate, rhsval, hcofval)
351 iloc = this%idxlocnode(n1)
352 iposd = this%idxpakdiag(n1)
353 call matrix_sln%add_value_pos(iposd, hcofval)
354 rhs(iloc) = rhs(iloc) + rhsval
359 if (this%idxbudfrtm /= 0)
then
360 do j = 1, this%flowbudptr%budterm(this%idxbudfrtm)%nlist
361 call this%mwe_frtm_term(j, n1, n2, rrate, rhsval, hcofval)
362 iloc = this%idxlocnode(n1)
363 iposd = this%idxpakdiag(n1)
364 call matrix_sln%add_value_pos(iposd, hcofval)
365 rhs(iloc) = rhs(iloc) + rhsval
370 do j = 1, this%flowbudptr%budterm(this%idxbudgwf)%nlist
373 n = this%flowbudptr%budterm(this%idxbudgwf)%id1(j)
374 if (this%iboundpak(n) /= 0)
then
377 auxpos = this%flowbudptr%budterm(this%idxbudgwf)%naux
378 wa = this%flowbudptr%budterm(this%idxbudgwf)%auxvar(auxpos, j)
381 ctherm = ktf * wa / s
384 iposd = this%idxdglo(j)
385 iposoffd = this%idxoffdglo(j)
386 call matrix_sln%add_value_pos(iposd, -ctherm)
387 call matrix_sln%add_value_pos(iposoffd, ctherm)
390 ipossymd = this%idxsymdglo(j)
391 ipossymoffd = this%idxsymoffdglo(j)
392 call matrix_sln%add_value_pos(ipossymd, -ctherm)
393 call matrix_sln%add_value_pos(ipossymoffd, ctherm)
406 integer(I4B) :: n1, n2
410 if (this%idxbudrate /= 0)
then
411 do j = 1, this%flowbudptr%budterm(this%idxbudrate)%nlist
412 call this%mwe_rate_term(j, n1, n2, rrate)
413 this%dbuff(n1) = this%dbuff(n1) + rrate
418 if (this%idxbudfwrt /= 0)
then
419 do j = 1, this%flowbudptr%budterm(this%idxbudfwrt)%nlist
420 call this%mwe_fwrt_term(j, n1, n2, rrate)
421 this%dbuff(n1) = this%dbuff(n1) + rrate
426 if (this%idxbudrtmv /= 0)
then
427 do j = 1, this%flowbudptr%budterm(this%idxbudrtmv)%nlist
428 call this%mwe_rtmv_term(j, n1, n2, rrate)
429 this%dbuff(n1) = this%dbuff(n1) + rrate
434 if (this%idxbudfrtm /= 0)
then
435 do j = 1, this%flowbudptr%budterm(this%idxbudfrtm)%nlist
436 call this%mwe_frtm_term(j, n1, n2, rrate)
437 this%dbuff(n1) = this%dbuff(n1) + rrate
450 integer(I4B) :: nbudterms
454 if (this%idxbudfwrt /= 0) nbudterms = nbudterms + 1
455 if (this%idxbudrtmv /= 0) nbudterms = nbudterms + 1
456 if (this%idxbudfrtm /= 0) nbudterms = nbudterms + 1
457 if (this%idxbudmwcd /= 0) nbudterms = nbudterms + 1
467 integer(I4B),
intent(inout) :: idx
469 integer(I4B) :: n, n1, n2
470 integer(I4B) :: maxlist, naux
472 character(len=LENBUDTXT) :: text
477 maxlist = this%flowbudptr%budterm(this%idxbudrate)%maxlist
479 call this%budobj%budterm(idx)%initialize(text, &
484 maxlist, .false., .false., &
488 if (this%idxbudfwrt /= 0)
then
491 maxlist = this%flowbudptr%budterm(this%idxbudfwrt)%maxlist
493 call this%budobj%budterm(idx)%initialize(text, &
498 maxlist, .false., .false., &
503 if (this%idxbudrtmv /= 0)
then
504 text =
' RATE-TO-MVR'
506 maxlist = this%flowbudptr%budterm(this%idxbudrtmv)%maxlist
508 call this%budobj%budterm(idx)%initialize(text, &
513 maxlist, .false., .false., &
518 if (this%idxbudfrtm /= 0)
then
519 text =
' FW-RATE-TO-MVR'
521 maxlist = this%flowbudptr%budterm(this%idxbudfrtm)%maxlist
523 call this%budobj%budterm(idx)%initialize(text, &
528 maxlist, .false., .false., &
533 text =
' WELLBORE-COND'
535 maxlist = this%flowbudptr%budterm(this%idxbudmwcd)%maxlist
537 call this%budobj%budterm(idx)%initialize(text, &
542 maxlist, .false., .false., &
544 call this%budobj%budterm(idx)%reset(maxlist)
547 n1 = this%flowbudptr%budterm(this%idxbudgwf)%id1(n)
548 n2 = this%flowbudptr%budterm(this%idxbudgwf)%id2(n)
549 call this%budobj%budterm(idx)%update_term(n1, n2, q)
558 integer(I4B),
intent(inout) :: idx
559 real(DP),
dimension(:),
intent(in) :: x
560 real(DP),
dimension(:),
contiguous,
intent(inout) :: flowja
561 real(DP),
intent(inout) :: ccratin
562 real(DP),
intent(inout) :: ccratout
564 integer(I4B) :: j, n1, n2
565 integer(I4B) :: nlist
566 integer(I4B) :: igwfnode
567 integer(I4B) :: idiag
568 integer(I4B) :: auxpos
577 nlist = this%flowbudptr%budterm(this%idxbudrate)%nlist
578 call this%budobj%budterm(idx)%reset(nlist)
580 call this%mwe_rate_term(j, n1, n2, q)
581 call this%budobj%budterm(idx)%update_term(n1, n2, q)
582 call this%apt_accumulate_ccterm(n1, q, ccratin, ccratout)
586 if (this%idxbudfwrt /= 0)
then
588 nlist = this%flowbudptr%budterm(this%idxbudfwrt)%nlist
589 call this%budobj%budterm(idx)%reset(nlist)
591 call this%mwe_fwrt_term(j, n1, n2, q)
592 call this%budobj%budterm(idx)%update_term(n1, n2, q)
593 call this%apt_accumulate_ccterm(n1, q, ccratin, ccratout)
598 if (this%idxbudrtmv /= 0)
then
600 nlist = this%flowbudptr%budterm(this%idxbudrtmv)%nlist
601 call this%budobj%budterm(idx)%reset(nlist)
603 call this%mwe_rtmv_term(j, n1, n2, q)
604 call this%budobj%budterm(idx)%update_term(n1, n2, q)
605 call this%apt_accumulate_ccterm(n1, q, ccratin, ccratout)
610 if (this%idxbudfrtm /= 0)
then
612 nlist = this%flowbudptr%budterm(this%idxbudfrtm)%nlist
613 call this%budobj%budterm(idx)%reset(nlist)
615 call this%mwe_frtm_term(j, n1, n2, q)
616 call this%budobj%budterm(idx)%update_term(n1, n2, q)
617 call this%apt_accumulate_ccterm(n1, q, ccratin, ccratout)
623 call this%budobj%budterm(idx)%reset(this%maxbound)
624 do j = 1, this%flowbudptr%budterm(this%idxbudmwcd)%nlist
626 n1 = this%flowbudptr%budterm(this%idxbudmwcd)%id1(j)
627 igwfnode = this%flowbudptr%budterm(this%idxbudmwcd)%id2(j)
628 if (this%iboundpak(n1) /= 0)
then
629 auxpos = this%flowbudptr%budterm(this%idxbudgwf)%naux
630 wa = this%flowbudptr%budterm(this%idxbudgwf)%auxvar(auxpos, j)
632 s = this%rfeatthk(n1)
633 ctherm = ktf * wa / s
634 q = ctherm * (x(igwfnode) - this%xnewpak(n1))
636 call this%budobj%budterm(idx)%update_term(n1, igwfnode, q)
637 call this%apt_accumulate_ccterm(n1, q, ccratin, ccratout)
638 if (this%iboundpak(n1) /= 0)
then
640 this%simvals(j) = this%simvals(j) - q
641 idiag = this%dis%con%ia(igwfnode)
642 flowja(idiag) = flowja(idiag) - q
657 call this%TspAptType%allocate_scalars()
660 call mem_allocate(this%idxbudrate,
'IDXBUDRATE', this%memoryPath)
661 call mem_allocate(this%idxbudfwrt,
'IDXBUDFWRT', this%memoryPath)
662 call mem_allocate(this%idxbudrtmv,
'IDXBUDRTMV', this%memoryPath)
663 call mem_allocate(this%idxbudfrtm,
'IDXBUDFRTM', this%memoryPath)
664 call mem_allocate(this%idxbudmwcd,
'IDXBUDMWCD', this%memoryPath)
685 call mem_setptr(this%temprate,
'RATE', this%input_mempath)
688 call this%TspAptType%apt_allocate_arrays()
702 call this%TspAptType%apt_checkin_deprecated_names()
705 'RATE', this%input_mempath,
'6.8.2')
724 nullify (this%temprate)
731 call this%TspAptType%bnd_da()
740 integer(I4B),
intent(in) :: ientry
741 integer(I4B),
intent(inout) :: n1
742 integer(I4B),
intent(inout) :: n2
743 real(DP),
intent(inout),
optional :: rrate
744 real(DP),
intent(inout),
optional :: rhsval
745 real(DP),
intent(inout),
optional :: hcofval
751 n1 = this%flowbudptr%budterm(this%idxbudrate)%id1(ientry)
752 n2 = this%flowbudptr%budterm(this%idxbudrate)%id2(ientry)
754 qbnd = this%flowbudptr%budterm(this%idxbudrate)%flow(ientry)
755 if (qbnd <
dzero)
then
756 ctmp = this%xnewpak(n1)
760 ctmp = this%temprate(n1)
764 if (
present(rrate)) rrate = qbnd * ctmp * this%eqnsclfac
765 if (
present(rhsval)) rhsval = r * this%eqnsclfac
766 if (
present(hcofval)) hcofval = h * this%eqnsclfac
775 integer(I4B),
intent(in) :: ientry
776 integer(I4B),
intent(inout) :: n1
777 integer(I4B),
intent(inout) :: n2
778 real(DP),
intent(inout),
optional :: rrate
779 real(DP),
intent(inout),
optional :: rhsval
780 real(DP),
intent(inout),
optional :: hcofval
785 n1 = this%flowbudptr%budterm(this%idxbudfwrt)%id1(ientry)
786 n2 = this%flowbudptr%budterm(this%idxbudfwrt)%id2(ientry)
787 qbnd = this%flowbudptr%budterm(this%idxbudfwrt)%flow(ientry)
788 ctmp = this%xnewpak(n1)
789 if (
present(rrate)) rrate = ctmp * qbnd * this%eqnsclfac
790 if (
present(rhsval)) rhsval =
dzero
791 if (
present(hcofval)) hcofval = qbnd * this%eqnsclfac
800 integer(I4B),
intent(in) :: ientry
801 integer(I4B),
intent(inout) :: n1
802 integer(I4B),
intent(inout) :: n2
803 real(DP),
intent(inout),
optional :: rrate
804 real(DP),
intent(inout),
optional :: rhsval
805 real(DP),
intent(inout),
optional :: hcofval
810 n1 = this%flowbudptr%budterm(this%idxbudrtmv)%id1(ientry)
811 n2 = this%flowbudptr%budterm(this%idxbudrtmv)%id2(ientry)
812 qbnd = this%flowbudptr%budterm(this%idxbudrtmv)%flow(ientry)
813 ctmp = this%xnewpak(n1)
814 if (
present(rrate)) rrate = ctmp * qbnd * this%eqnsclfac
815 if (
present(rhsval)) rhsval =
dzero
816 if (
present(hcofval)) hcofval = qbnd * this%eqnsclfac
825 integer(I4B),
intent(in) :: ientry
826 integer(I4B),
intent(inout) :: n1
827 integer(I4B),
intent(inout) :: n2
828 real(DP),
intent(inout),
optional :: rrate
829 real(DP),
intent(inout),
optional :: rhsval
830 real(DP),
intent(inout),
optional :: hcofval
835 n1 = this%flowbudptr%budterm(this%idxbudfrtm)%id1(ientry)
836 n2 = this%flowbudptr%budterm(this%idxbudfrtm)%id2(ientry)
837 qbnd = this%flowbudptr%budterm(this%idxbudfrtm)%flow(ientry)
838 ctmp = this%xnewpak(n1)
839 if (
present(rrate)) rrate = ctmp * qbnd * this%eqnsclfac
840 if (
present(rhsval)) rhsval =
dzero
841 if (
present(hcofval)) hcofval = qbnd * this%eqnsclfac
857 call this%obs%StoreObsType(
'temperature', .false., indx)
866 call this%obs%StoreObsType(
'from-mvr', .true., indx)
875 call this%obs%StoreObsType(
'storage', .true., indx)
880 call this%obs%StoreObsType(
'constant', .true., indx)
885 call this%obs%StoreObsType(
'mwe', .true., indx)
890 call this%obs%StoreObsType(
'rate', .true., indx)
895 call this%obs%StoreObsType(
'fw-rate', .true., indx)
900 call this%obs%StoreObsType(
'rate-to-mvr', .true., indx)
905 call this%obs%StoreObsType(
'fw-rate-to-mvr', .true., indx)
917 logical,
intent(inout) :: found
920 select case (obsrv%ObsTypeId)
922 call this%rp_obs_byfeature(obsrv)
924 call this%rp_obs_byfeature(obsrv)
926 call this%rp_obs_byfeature(obsrv)
927 case (
'FW-RATE-TO-MVR')
928 call this%rp_obs_byfeature(obsrv)
939 character(len=*),
intent(in) :: obstypeid
940 real(DP),
intent(inout) :: v
941 integer(I4B),
intent(in) :: jj
942 logical,
intent(inout) :: found
944 integer(I4B) :: n1, n2
947 select case (obstypeid)
949 if (this%iboundpak(jj) /= 0)
then
950 call this%mwe_rate_term(jj, n1, n2, v)
953 if (this%iboundpak(jj) /= 0 .and. this%idxbudfwrt > 0)
then
954 call this%mwe_fwrt_term(jj, n1, n2, v)
957 if (this%iboundpak(jj) /= 0 .and. this%idxbudrtmv > 0)
then
958 call this%mwe_rtmv_term(jj, n1, n2, v)
960 case (
'FW-RATE-TO-MVR')
961 if (this%iboundpak(jj) /= 0 .and. this%idxbudfrtm > 0)
then
962 call this%mwe_frtm_term(jj, n1, n2, v)
975 integer(I4B) :: n, ifeat
976 real(DP),
dimension(:),
pointer,
contiguous :: ktf_ptr => null()
977 real(DP),
dimension(:),
pointer,
contiguous :: fthk_ptr => null()
978 call this%TspAptType%apt_source_cvs()
979 call mem_allocate(this%ktf, this%ncv,
'KTF', this%memoryPath)
980 call mem_allocate(this%rfeatthk, this%ncv,
'RFEATTHK', this%memoryPath)
981 call mem_setptr(ktf_ptr,
'KTF', this%input_mempath)
982 call mem_setptr(fthk_ptr,
'FTHK', this%input_mempath)
983 do n = 1,
size(this%pkg_ifno)
984 ifeat = this%pkg_ifno(n)
985 if (ifeat < 1 .or. ifeat > this%ncv) cycle
986 this%ktf(ifeat) = ktf_ptr(n)
987 this%rfeatthk(ifeat) = fthk_ptr(n)
988 if (this%rfeatthk(ifeat) <=
dzero)
then
989 write (
errmsg,
'(4x,a)') &
990 '****ERROR. Specified thickness used for thermal '// &
991 'conduction MUST BE > 0 else divide by zero error occurs'
996 call store_error_filename(this%input_fname)
This module contains the base boundary package.
class(bndtype) function, pointer, public getbndfromlist(list, idx)
Get boundary from package list.
This module contains simulation constants.
integer(i4b), parameter linelength
maximum length of a standard line
real(dp), parameter dnodata
real no data constant
real(dp), parameter dep20
real constant 1e20
integer(i4b), parameter lenvarname
maximum length of a variable name
integer(i4b), parameter lenboundname
maximum length of a bound name
real(dp), parameter dzero
real constant zero
integer(i4b), parameter lenbudtxt
maximum length of a budget component names
subroutine, public mwe_create(packobj, id, ibcnum, inunit, iout, namemodel, pakname, mempath, fmi, eqnsclfac, gwecommon, dvt, dvu, dvua)
Create new MWE package.
subroutine allocate_scalars(this)
Allocate scalars specific to the multi-aquifer well energy transport (MWE) package.
character(len= *), parameter flowtype
subroutine mwe_rp_obs(this, obsrv, found)
Process package specific obs.
real(dp) function mwe_setting_value(this, itemno, key)
Value for a package-specific PERIOD setting.
subroutine mwe_rtmv_term(this, ientry, n1, n2, rrate, rhsval, hcofval)
Thermal transport matrix term(s) associated with pumped-water- to-mover term (mwe_rtmv_term)
subroutine mwe_allocate_arrays(this)
Allocate arrays specific to the streamflow mass transport (SFT) package.
subroutine mwe_bd_obs(this, obstypeid, jj, v, found)
Calculate observation value and pass it back to APT.
subroutine find_mwe_package(this)
Find corresponding mwe package.
subroutine mwe_fill_budobj(this, idx, x, flowja, ccratin, ccratout)
Copy flow terms into thisbudobj.
character(len= *), parameter ftype
subroutine mwe_da(this)
Deallocate memory associated with MWE package.
subroutine mwe_setup_budobj(this, idx)
Set up the budget object that stores all the mwe flows.
integer(i4b) function mwe_get_nbudterms(this)
Function to return the number of budget terms just for this package.
subroutine mwe_frtm_term(this, ientry, n1, n2, rrate, rhsval, hcofval)
Thermal transport matrix term(s) associated with the flowing- well-rate-to-mover term (mwe_frtm_term)
subroutine mwe_solve(this)
Add terms specific to multi-aquifer wells to the explicit multi- aquifer well energy transport solve.
subroutine mwe_fc_expanded(this, rhs, ia, idxglo, matrix_sln)
Add matrix terms related to MWE.
subroutine mwe_fwrt_term(this, ientry, n1, n2, rrate, rhsval, hcofval)
Thermal transport matrix term(s) associated with a flowing- well rate term associated with pumping (o...
subroutine mwe_checkin_deprecated_names(this)
Alias deprecated MWE variable names to their current storage.
subroutine mwe_read_cvs(this)
Read feature information for this advanced package.
subroutine mwe_rate_term(this, ientry, n1, n2, rrate, rhsval, hcofval)
Thermal transport matrix term(s) associated with a user-specified flow rate (mwe_rate_term)
subroutine mwe_df_obs(this)
Observations.
This module defines variable data types.
Previous variable names checked in as deprecated aliases.
subroutine, public memorystore_release(varname, memory_path)
Release a single variable from the memory store.
This module contains the derived types ObserveType and ObsDataType.
This module contains simulation methods.
subroutine, public store_error(msg, terminate)
Store an error message.
integer(i4b) function, public count_errors()
Return number of errors.
subroutine, public store_error_filename(filename, terminate)
Store the erroring file name.
This module contains simulation variables.
character(len=maxcharlen) errmsg
error message string
subroutine, public apt_process_obsid(obsrv, dis, inunitobs, iout)
Process observation IDs for an advanced package.
subroutine, public apt_process_obsid12(obsrv, dis, inunitobs, iout)
Process observation IDs for a package.
This class is used to store a single deferred-length character string. It was designed to work in an ...