data_mediator.F90       coverage:  66.67 %func     91.18 %block


     1) module Data_Mediator_module
     2)  
     3)   use Data_Mediator_Base_class
     4)   
     5)   implicit none
     6) 
     7)   private
     8) 
     9) #include "petsc/finclude/petscsys.h"
    10) 
    11)   public :: DataMediatorInit, &
    12)             DataMediatorUpdate, &
    13)             DataMediatorDestroy
    14) 
    15) contains
    16) 
    17) ! ************************************************************************** !
    18) 
    19) subroutine DataMediatorInit(data_mediator_list, option)
    20)   ! 
    21)   ! Initializes data mediator object 
    22)   ! 
    23)   ! Author: Glenn Hammond
    24)   ! Date: 03/25/15
    25)   ! 
    26)   use Option_module
    27) 
    28)   implicit none
    29)   
    30)   class(data_mediator_base_type) :: data_mediator_list
    31)   type(option_type) :: option
    32)   
    33)   
    34) end subroutine DataMediatorInit
    35) 
    36) ! ************************************************************************** !
    37) 
    38) subroutine DataMediatorUpdate(data_mediator_list,vec,option)
    39)   ! 
    40)   ! Updates a data mediator object transfering data from
    41)   ! the buffer into the PETSc Vec
    42)   ! 
    43)   ! Author: Glenn Hammond
    44)   ! Date: 03/25/15
    45)   ! 
    46)   use Option_module
    47)   
    48)   implicit none
    49)   
    50) #include "petsc/finclude/petscvec.h"
    51) #include "petsc/finclude/petscvec.h90"  
    52)   
    53)   class(data_mediator_base_type), pointer :: data_mediator_list
    54)   Vec :: vec
    55)   type(option_type) :: option
    56)   
    57)   class(data_mediator_base_type), pointer :: cur_data_mediator
    58)   PetscErrorCode :: ierr
    59)   
    60)   if (associated(data_mediator_list)) then
    61)     call VecZeroEntries(vec,ierr);CHKERRQ(ierr)
    62)     cur_data_mediator => data_mediator_list
    63)     do
    64)       if (.not.associated(cur_data_mediator)) exit
    65)       call cur_data_mediator%Update(vec,option)
    66)       cur_data_mediator => cur_data_mediator%next
    67)     enddo
    68)   endif
    69)   
    70) end subroutine DataMediatorUpdate
    71) 
    72) ! ************************************************************************** !
    73) 
    74) subroutine DataMediatorDestroy(data_mediator_list)
    75)   ! 
    76)   ! Destroys a data mediator object list
    77)   ! 
    78)   ! Author: Glenn Hammond
    79)   ! Date: 03/25/15
    80)   ! 
    81)   implicit none
    82)   
    83)   class(data_mediator_base_type), pointer :: data_mediator_list
    84)   
    85)   if (.not.associated(data_mediator_list)) return
    86)   
    87)   call data_mediator_list%Strip()
    88)   deallocate(data_mediator_list)
    89)   nullify(data_mediator_list)  
    90)   
    91) end subroutine DataMediatorDestroy
    92) 
    93) end module Data_Mediator_module

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