32 . IRECT,NSV,I_STOK,CAND_E,CAND_N,
33 . IGAP,GAP,GAPMAX,GAPMIN,DGAPLOAD,
34 . DRAD,GAP_S,GAP_S_L,GAP_M,GAP_M_L,
35 . NUMNOD,X,INTER_CAND)
51#include "implicit_f.inc"
55 INTEGER,
INTENT(inout) :: NELEMINT
56 INTEGER,
INTENT(in) :: INTERFACE_ID
57 INTEGER,
INTENT(in) :: NSN
58 INTEGER,
INTENT(in) :: NRTM
59 INTEGER,
INTENT(inout) ::
60 INTEGER,
DIMENSION(4,NRTM) :: IRECT
61 INTEGER,
DIMENSION(NSN) :: NSV
62 INTEGER,
INTENT(in) :: I_STOK
63 INTEGER,
INTENT(in) :: NUMNOD
64 INTEGER,
DIMENSION(I_STOK),
INTENT(in) :: CAND_E
65 INTEGER,
DIMENSION(I_STOK),
INTENT(in) :: CAND_N
66 INTEGER,
INTENT(in) :: IGAP
67 my_real,
INTENT(in) :: gap,gapmax,gapmin
68 my_real,
INTENT(IN) :: dgapload ,drad
69 my_real,
DIMENSION(NSN) :: gap_s,gap_s_l
70 my_real,
DIMENSION(NRTM) :: gap_m,gap_m_l
71 my_real,
DIMENSION(3,NUMNOD),
INTENT(in) :: x
80 INTEGER :: IX1,IX2,IX3,IX4
82 . xmin,xmax,ymin,
ymax,zmin,zmax,threshold,
83 . xi,x1,x2,x3,x4,yi,y1,y2,y3,y4,zi,z1,z2,z3,z4
85 ifiend = ifiend + i_stok
86 inter_cand%IXINT(1:inter_cand%S_IXINT_1,nelemint+1:nelemint+i_stok) = 0
87 inter_cand%ADDRESS(interface_id) = nelemint
88 threshold =
max(gap+dgapload,drad)
92 s_node_id = nsv(cand_n(i))
93 segment_id = cand_e(i)
95 ix1=irect(1,segment_id)
96 ix2=irect(2,segment_id)
97 ix3=irect(3,segment_id)
98 ix4=irect(4,segment_id)
100 inter_cand%IXINT(1,nelemint+i) = ix1
101 inter_cand%IXINT(2,nelemint+i) = ix2
102 inter_cand%IXINT(3,nelemint+i) = ix3
103 inter_cand%IXINT(4,nelemint+i) = ix4
104 inter_cand%IXINT(5,nelemint+i) = s_node_id
105 inter_cand%IXINT(6,nelemint+i) = 7
106 inter_cand%IXINT(7,nelemint+i) = segment_id
107 inter_cand%IXINT(8,nelemint+i) = interface_id
117 threshold=gap_s(cand_n(i))+gap_m(cand_e(i))
119 . threshold=
min(threshold,
120 . gap_s_l(cand_n(i))+gap_m_l(cand_e(i)))
121 threshold=
min(threshold,gapmax)
122 threshold=
max(threshold,gapmin)
124 threshold =
max(threshold+dgapload,drad)
129 zmin =
min(z1,z2,z3,z4)-threshold
130 zmax =
max(z1,z2,z3,z4)+threshold
131 IF (zmin<=zi.AND.zmax>=zi)
THEN
137 ymin =
min(y1,y2,y3,y4)-threshold
138 ymax =
max(y1,y2,y3,y4)+threshold
139 IF (ymin<=yi.AND.
ymax>=yi)
THEN
145 xmin =
min(x1,x2,x3,x4)-threshold
146 xmax =
max(x1,x2,x3,x4)+threshold
147 IF (xmin<=xi.AND.xmax>=xi)
THEN
148 inter_cand%IXINT(6,nelemint+i)=-7
155 nelemint=nelemint+i_stok
156 inter_cand%ADDRESS(interface_id+1) = nelemint
subroutine ymax(idn, fac, npc, pld, stiffmin, stiffmax, stiffini, stiffavg)
subroutine update_weight_inter_type7(nelemint, interface_id, nsn, nrtm, ifiend, irect, nsv, i_stok, cand_e, cand_n, igap, gap, gapmax, gapmin, dgapload, drad, gap_s, gap_s_l, gap_m, gap_m_l, numnod, x, inter_cand)