1 !C
 2 !C***
 3 !C*** hecmw_update_3_R
 4 !C***
 5 !C
 6 !C    3-DOF, REAL
 7 !C
 8       subroutine hecmw_update_3_R (hecMESH, VAL, n)
 9       use hecmw_util
10       use  hecmw_solver_SR_33
11 
12       implicit none
13       integer(kind=kint):: n
14       real(kind=kreal), dimension(3*n) :: VAL
15       type (hecmwST_local_mesh) :: hecMESH
16 #ifndef HECMW_SERIAL
17       integer(kind=kint):: ns, nr
18       real(kind=kreal), dimension(:), allocatable :: WS, WR
19 
20       if( hecMESH%n_neighbor_pe == 0 ) return
21 
22       ns = hecMESH%export_index(hecMESH%n_neighbor_pe)
23       nr = hecMESH%import_index(hecMESH%n_neighbor_pe)
24 
25       allocate (WS(3*ns), WR(3*nr))
26       call hecmw_solve_SEND_RECV_33                                     &
27      &   ( n, hecMESH%n_neighbor_pe, hecMESH%neighbor_pe,               &
28      &     hecMESH%import_index, hecMESH%import_item,                   &
29      &     hecMESH%export_index, hecMESH%export_item,                   &
30      &     WS, WR, VAL , hecMESH%MPI_COMM, hecMESH%my_rank)
31       deallocate (WS, WR)
32 #endif
33       end subroutine hecmw_update_3_R