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) 

generated by
Intel(R) C++/Fortran Compiler code-coverage tool
Web-Page Owner: Nobody