372 character(len=LENMEMPATH) :: input_mempath
373 type(CharacterStringType),
dimension(:),
contiguous, &
375 type(CharacterStringType),
dimension(:),
contiguous, &
377 type(CharacterStringType),
dimension(:),
contiguous, &
379 type(CharacterStringType),
dimension(:),
contiguous, &
381 type(CharacterStringType),
dimension(:),
contiguous, &
383 character(len=LINELENGTH) :: exgtype
384 integer(I4B) :: exg_id
385 integer(I4B) :: m1_id, m2_id
386 character(len=LINELENGTH) :: fname, name1, name2
387 character(len=LENEXCHANGENAME) :: exg_name
388 character(len=LENMEMPATH) :: exg_mempath
390 character(len=LINELENGTH) :: errmsg
391 logical(LGP) :: terminate = .true.
392 logical(LGP) :: both_remote, both_local
394 character(len=*),
parameter :: fmtmerr =
"('Error in simulation control ', &
395 &'file. Could not find model: ', a)"
401 call mem_setptr(etypes,
'EXGTYPE', input_mempath)
402 call mem_setptr(efiles,
'EXGFILE', input_mempath)
403 call mem_setptr(emnames_a,
'EXGMNAMEA', input_mempath)
404 call mem_setptr(emnames_b,
'EXGMNAMEB', input_mempath)
405 call mem_setptr(emempaths,
'EXGMEMPATHS', input_mempath)
408 write (iout,
'(/1x,a)')
'READING SIMULATION EXCHANGES'
414 do n = 1,
size(etypes)
421 exg_mempath = emempaths(n)
426 m1_id = ifind(model_names, name1)
428 write (errmsg, fmtmerr) trim(name1)
429 call store_error(errmsg, terminate)
431 m2_id = ifind(model_names, name2)
433 write (errmsg, fmtmerr) trim(name2)
434 call store_error(errmsg, terminate)
438 both_remote = (model_loc_idx(m1_id) == -1 .and. &
439 model_loc_idx(m2_id) == -1)
440 both_local = (model_loc_idx(m1_id) > 0 .and. &
441 model_loc_idx(m2_id) > 0)
442 if (.not. both_remote)
then
443 write (iout,
'(4x,a,a,i0,a,i0,a,i0)') trim(exgtype),
' exchange ', &
444 exg_id,
' will be created to connect model ', m1_id, &
445 ' with model ', m2_id
448 select case (exgtype)
450 write (exg_name,
'(a,i0)')
'CHF-GWF_', exg_id
452 call chfgwf_cr(fname, exg_name, exg_id, m1_id, m2_id, exg_mempath)
455 write (exg_name,
'(a,i0)')
'GWF-GWF_', exg_id
456 if (.not. both_remote)
then
463 call gwfgwt_cr(fname, exg_id, m1_id, m2_id)
467 call gwfgwe_cr(fname, exg_id, m1_id, m2_id)
470 call gwfprt_cr(fname, exg_id, m1_id, m2_id)
472 write (exg_name,
'(a,i0)')
'GWT-GWT_', exg_id
473 if (.not. both_remote)
then
479 write (exg_name,
'(a,i0)')
'GWE-GWE_', exg_id
480 if (.not. both_remote)
then
486 write (exg_name,
'(a,i0)')
'OLF-GWF_', exg_id
488 call olfgwf_cr(fname, exg_name, exg_id, m1_id, m2_id, exg_mempath)
491 write (errmsg,
'(a,a)') &
492 'Unknown simulation exchange type: ', trim(exgtype)
493 call store_error(errmsg, terminate)
498 write (iout,
'(1x,a)')
'END OF SIMULATION EXCHANGES'
This module contains the ChfGwfExchangeModule Module.
subroutine, public chfgwf_cr(filename, name, id, m1_id, m2_id, input_mempath)
@ brief Create CHF GWF exchange
This module contains the GweGweExchangeModule Module.
subroutine, public gweexchange_create(filename, name, id, m1_id, m2_id, input_mempath)
@ brief Create GWT GWT exchange
subroutine, public gwfgwe_cr(filename, id, m1_id, m2_id)
Create a new GWF to GWE exchange object.
This module contains the GwfGwfExchangeModule Module.
subroutine, public gwfexchange_create(filename, name, id, m1_id, m2_id, input_mempath)
@ brief Create GWF GWF exchange
subroutine, public gwfgwt_cr(filename, id, m1_id, m2_id)
Create a new GWF to GWT exchange object.
subroutine, public gwfprt_cr(filename, id, m1id, m2id)
Create a new GWF to PRT exchange object.
This module contains the GwtGwtExchangeModule Module.
subroutine, public gwtexchange_create(filename, name, id, m1_id, m2_id, input_mempath)
@ brief Create GWT GWT exchange
character(len=lenmempath) function create_mem_path(component, subcomponent, context)
returns the path to the memory object
This module contains the OlfGwfExchangeModule Module.
subroutine, public olfgwf_cr(filename, name, id, m1_id, m2_id, input_mempath)
@ brief Create OLF GWF exchange
This module contains simulation variables.
character(len=linelength) idm_context
subroutine, public add_virtual_gwe_exchange(name, exchange_id, model1_id, model2_id)
Add a virtual GWE-GWE exchange to the simulation.
subroutine, public add_virtual_gwf_exchange(name, exchange_id, model1_id, model2_id)
Add a virtual GWF-GWF exchange to the simulation.
subroutine, public add_virtual_gwt_exchange(name, exchange_id, model1_id, model2_id)
Add a virtual GWT-GWT exchange to the simulation.