MODFLOW 6  version 6.5.0.dev2
MODFLOW 6 Code Documentation
solutionfactorymodule Module Reference

Functions/Subroutines

class(basesolutiontype) function, pointer, public create_ims_solution (sim_mode, filename, sol_id)
 Create an IMS solution of type NumericalSolution for serial runs or its sub-type ParallelSolution for. More...
 
class(basesolutiontype) function, pointer, public create_ems_solution (sim_mode, filename, sol_id)
 Create an EMS solution of type ExplicitSolution for serial runs or its sub-type ParallelSolution for. More...
 

Function/Subroutine Documentation

◆ create_ems_solution()

class(basesolutiontype) function, pointer, public solutionfactorymodule::create_ems_solution ( character(len=*)  sim_mode,
character(len=*)  filename,
integer(i4b)  sol_id 
)

Definition at line 54 of file SolutionFactory.F90.

55  character(len=*) :: sim_mode
56  character(len=*) :: filename
57  integer(I4B) :: sol_id
58  class(BaseSolutionType), pointer :: base_sol
59  class(ExplicitSolutionType), pointer :: exp_sol => null()
60 !#if defined(__WITH_MPI__)
61 ! class(ParallelSolutionType), pointer :: par_sol => null()
62 !#endif
63 
64  if (sim_mode == 'SEQUENTIAL') then
65  allocate (exp_sol)
66 !#if defined(__WITH_MPI__)
67 ! else if (sim_mode == 'PARALLEL') then
68 ! allocate (par_sol)
69 ! exp_sol => par_sol
70 !#endif
71  else
72  call ustop('Unsupported simulation mode for creating solution: '&
73  &//trim(sim_mode))
74  end if
75 
76  call create_explicit_solution(exp_sol, filename, sol_id)
77  base_sol => exp_sol
78 
Here is the call graph for this function:
Here is the caller graph for this function:

◆ create_ims_solution()

class(basesolutiontype) function, pointer, public solutionfactorymodule::create_ims_solution ( character(len=*)  sim_mode,
character(len=*)  filename,
integer(i4b)  sol_id 
)

Definition at line 24 of file SolutionFactory.F90.

25  character(len=*) :: sim_mode
26  character(len=*) :: filename
27  integer(I4B) :: sol_id
28  class(BaseSolutionType), pointer :: base_sol
29  class(NumericalSolutionType), pointer :: num_sol => null()
30 #if defined(__WITH_MPI__)
31  class(ParallelSolutionType), pointer :: par_sol => null()
32 #endif
33 
34  if (sim_mode == 'SEQUENTIAL') then
35  allocate (num_sol)
36 #if defined(__WITH_MPI__)
37  else if (sim_mode == 'PARALLEL') then
38  allocate (par_sol)
39  num_sol => par_sol
40 #endif
41  else
42  call ustop('Unsupported simulation mode for creating solution: '&
43  &//trim(sim_mode))
44  end if
45 
46  call create_numerical_solution(num_sol, filename, sol_id)
47  base_sol => num_sol
48 
Here is the call graph for this function:
Here is the caller graph for this function: