saturation.F90 coverage: 0.00 %func 0.00 %block
1) module Saturation_module
2)
3) use PFLOTRAN_Constants_module
4)
5) implicit none
6)
7) private
8)
9) #include "petsc/finclude/petscsys.h"
10)
11) public :: SaturationUpdateCoupler
12)
13) contains
14)
15) ! ************************************************************************** !
16)
17) subroutine SaturationUpdateCoupler(coupler,option,grid,saturation_functions, &
18) sat_func_id)
19) !
20) ! Computes the pressures for a saturation
21) ! initial/boundary condition
22) !
23) ! Author: Glenn Hammond
24) ! Date: 06/07/11
25) !
26)
27) use Option_module
28) use Grid_module
29) use Coupler_module
30) use Condition_module
31) use Connection_module
32) use Region_module
33) use Saturation_Function_module
34)
35) implicit none
36)
37) type(coupler_type) :: coupler
38) type(option_type) :: option
39) type(grid_type) :: grid
40) type(saturation_function_ptr_type) :: saturation_functions(:)
41) PetscInt :: sat_func_id(:)
42)
43) PetscInt :: local_id, ghosted_id, iconn
44) PetscReal :: saturation
45) PetscReal :: capillary_pressure
46) PetscReal :: liquid_pressure
47)
48) type(flow_condition_type), pointer :: condition
49)
50) type(connection_set_type), pointer :: cur_connection_set
51)
52) condition => coupler%flow_condition
53)
54) if (option%iflowmode /= RICHARDS_MODE) then
55) option%io_buffer = 'SaturationUpdateCoupler is not set up for this flow mode.'
56) call printErrMsg(option)
57) endif
58)
59) ! in this case, the saturation is stored within concentration dataset
60) saturation = condition%saturation%dataset%rarray(1)
61)
62) do iconn = 1, coupler%connection_set%num_connections
63) local_id = coupler%connection_set%id_dn(iconn)
64) ghosted_id = grid%nL2G(local_id)
65) call SatFuncGetCapillaryPressure(capillary_pressure,saturation, &
66) option%reference_temperature, &
67) saturation_functions(sat_func_id(ghosted_id))%ptr,option)
68) liquid_pressure = option%reference_pressure - capillary_pressure
69) coupler%flow_aux_real_var(1,iconn) = liquid_pressure
70) enddo
71)
72) end subroutine SaturationUpdateCoupler
73)
74) end module Saturation_module
75)