377     character(len=LENMEMPATH) :: input_mempath
 
  378     type(CharacterStringType), 
dimension(:), 
contiguous, &
 
  380     type(CharacterStringType), 
dimension(:), 
contiguous, &
 
  382     type(CharacterStringType), 
dimension(:), 
contiguous, &
 
  384     type(CharacterStringType), 
dimension(:), 
contiguous, &
 
  386     type(CharacterStringType), 
dimension(:), 
contiguous, &
 
  388     character(len=LINELENGTH) :: exgtype
 
  389     integer(I4B) :: exg_id
 
  390     integer(I4B) :: m1_id, m2_id
 
  391     character(len=LINELENGTH) :: fname, name1, name2
 
  392     character(len=LENEXCHANGENAME) :: exg_name
 
  393     character(len=LENMEMPATH) :: exg_mempath
 
  395     character(len=LINELENGTH) :: errmsg
 
  396     logical(LGP) :: terminate = .true.
 
  397     logical(LGP) :: both_remote, both_local
 
  399     character(len=*), 
parameter :: fmtmerr = 
"('Error in simulation control ', & 
  400       &'file.  Could not find model: ', a)" 
  406     call mem_setptr(etypes, 
'EXGTYPE', input_mempath)
 
  407     call mem_setptr(efiles, 
'EXGFILE', input_mempath)
 
  408     call mem_setptr(emnames_a, 
'EXGMNAMEA', input_mempath)
 
  409     call mem_setptr(emnames_b, 
'EXGMNAMEB', input_mempath)
 
  410     call mem_setptr(emempaths, 
'EXGMEMPATHS', input_mempath)
 
  413     write (iout, 
'(/1x,a)') 
'READING SIMULATION EXCHANGES' 
  419     do n = 1, 
size(etypes)
 
  426       exg_mempath = emempaths(n)
 
  431       m1_id = ifind(model_names, name1)
 
  433         write (errmsg, fmtmerr) trim(name1)
 
  434         call store_error(errmsg, terminate)
 
  436       m2_id = ifind(model_names, name2)
 
  438         write (errmsg, fmtmerr) trim(name2)
 
  439         call store_error(errmsg, terminate)
 
  443       both_remote = (model_loc_idx(m1_id) == -1 .and. &
 
  444                      model_loc_idx(m2_id) == -1)
 
  445       both_local = (model_loc_idx(m1_id) > 0 .and. &
 
  446                     model_loc_idx(m2_id) > 0)
 
  447       if (.not. both_remote) 
then 
  448         write (iout, 
'(4x,a,a,i0,a,i0,a,i0)') trim(exgtype), 
' exchange ', &
 
  449           exg_id, 
' will be created to connect model ', m1_id, &
 
  450           ' with model ', m2_id
 
  453       select case (exgtype)
 
  455         write (exg_name, 
'(a,i0)') 
'CHF-GWF_', exg_id
 
  457           call chfgwf_cr(fname, exg_name, exg_id, m1_id, m2_id, exg_mempath)
 
  460         write (exg_name, 
'(a,i0)') 
'GWF-GWF_', exg_id
 
  461         if (.not. both_remote) 
then 
  468           call gwfgwt_cr(fname, exg_id, m1_id, m2_id)
 
  472           call gwfgwe_cr(fname, exg_id, m1_id, m2_id)
 
  475         call gwfprt_cr(fname, exg_id, m1_id, m2_id)
 
  477         write (exg_name, 
'(a,i0)') 
'GWT-GWT_', exg_id
 
  478         if (.not. both_remote) 
then 
  484         write (exg_name, 
'(a,i0)') 
'GWE-GWE_', exg_id
 
  485         if (.not. both_remote) 
then 
  491         write (exg_name, 
'(a,i0)') 
'OLF-GWF_', exg_id
 
  493           call olfgwf_cr(fname, exg_name, exg_id, m1_id, m2_id, exg_mempath)
 
  496         write (errmsg, 
'(a,a)') &
 
  497           'Unknown simulation exchange type: ', trim(exgtype)
 
  498         call store_error(errmsg, terminate)
 
  503     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.