SPEED
GET_NODE_FROM_FACE.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine get_node_from_face (nb_nodes, nb_nz, con_spc, nb_load, l
 Computes total number of boundary nodes and second derivative on a given point x.
 

Function/Subroutine Documentation

◆ get_node_from_face()

subroutine get_node_from_face ( integer*4  nb_nodes,
integer*4  nb_nz,
integer*4, dimension(0:nb_nz)  con_spc,
integer*4  nb_load,
  l 
)

Computes total number of boundary nodes and second derivative on a given point x.

Author
Ilario Mazzieri
Date
September, 2013
Version
1.0
Parameters
[in]nb_nodesnumber of nodes
[in]nb_nzlength of con_spc
[in]con_spcspectral connectivity vector
[in]nb_loadload number for boundary condition
[in]lab_bclabel for boundary condition
[in]local_n_num= local node numbering (dummy)
[in]node_indicatornode_indicator(i) = 1 if the node belongs to the boundary
[out]nb_nodes_face_totalnumber of nodes lying on the boundary

Definition at line 33 of file GET_NODE_FROM_FACE.f90.

34 nb_nodes_face_total, node_indicator, local_n_num)
35
36 implicit none
37
38 integer*4 :: nb_nodes,nb_nz,nb_load
39 integer*4 :: nb_nodes_face_total
40 integer*4 :: i,j,ie, nb_el, nb_nodes_face, cek_el
41
42 integer*4, dimension(0:nb_nz) :: con_spc
43 integer*4, dimension(nb_load) :: lab_bc
44 integer*4, dimension(nb_nodes) :: node_indicator, local_n_num
45
46
47 node_indicator = 0
48 nb_nodes_face_total = 0
49 nb_el = con_spc(0) - 1
50
51 if (nb_nz .gt. 0) then
52
53 do ie = 1,nb_el
54 nb_nodes_face = con_spc(ie) - con_spc(ie -1) -1
55
56 cek_el = 0
57 do j = 1,nb_load
58 if (con_spc(con_spc(ie -1)) .eq. lab_bc(j)) cek_el = 1
59 enddo
60
61 if (cek_el .ne. 0) then
62 do i = 1, nb_nodes_face
63 node_indicator(con_spc(con_spc(ie -1) +i)) = 1
64 enddo
65 endif
66 enddo
67
68 do i = 1,nb_nodes
69 if (node_indicator(i) .ne. 0) nb_nodes_face_total = nb_nodes_face_total + 1
70 enddo
71 endif
72
73 return
74

Referenced by make_extint_forces().

Here is the caller graph for this function: