SPEED
GET_ELEM_FROM_SURF.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine get_elem_from_surf (nnz_bc, cs_bc, n1, n2, n3, n4, ie_surf)
 Find element index from verteces number.
 

Function/Subroutine Documentation

◆ get_elem_from_surf()

subroutine get_elem_from_surf ( integer*4  nnz_bc,
integer*4, dimension(0:nnz_bc)  cs_bc,
integer*4  n1,
integer*4  n2,
integer*4  n3,
integer*4  n4,
integer*4  ie_surf 
)

Find element index from verteces number.

Author
Ilario Mazzieri
Date
September, 2013
Version
1.0
Parameters
[in]nnz_bclength of cs_bc
[in]cs_bcspectral connectivity vector
[in]n1node index of 1 vertex of the element (quad)
[in]n2node index of 1 vertex of the element (quad)
[in]n3node index of 1 vertex of the element (quad)
[in]n4node index of 1 vertex of the element (quad)
[out]ie_surfindex of the element found

Definition at line 32 of file GET_ELEM_FROM_SURF.f90.

33
34
35 implicit none
36
37 integer*4 :: i, ne, nel, find
38 integer*4 :: nnz_bc, n1, n2, n3, n4, ie_surf
39
40 integer*4, dimension(:), allocatable :: vet
41 integer*4, dimension(0:nnz_bc) :: cs_bc
42
43
44
45 ne = cs_bc(0) - 1
46
47 do i = 1, ne
48 nel = cs_bc(i) - cs_bc(i-1) - 1
49 allocate(vet(nel))
50
51 vet = cs_bc(cs_bc(i-1) + 1 : cs_bc(i) - 1 )
52
53 if (find(nel, vet, n1) .eq. 1 .and. &
54 find(nel, vet, n2) .eq. 1 .and. &
55 find(nel, vet, n3) .eq. 1 .and. &
56 find(nel, vet, n4) .eq. 1 ) then
57
58 ie_surf = i
59 return
60 endif
61
62 deallocate(vet)
63 enddo
64
65 ie_surf = 0
66 return
67
68
integer *4 function find(n, vec, tar)
Searches for element in a vector.
Definition FIND.f90:29

Referenced by make_extint_forces().

Here is the caller graph for this function: