37 . SIZLOADP ,NLOADP ,SLLOADP ,NIBCLD ,NPRELD ,
50#include "implicit_f.inc"
57 INTEGER ,
INTENT(IN) :: SIZLOADP ,NLOADP ,SLLOADP ,NIBCLD ,NPRELD, NSURF ,NUMNOD
58 INTEGER ,
INTENT(IN) :: ILOADP(SIZLOADP,NLOADP)
59 INTEGER ,
INTENT(IN) :: LLOADP(SLLOADP)
60 INTEGER ,
INTENT(IN) :: IPRES(NIBCLD,NPRELD)
61 TYPE (SURF_) ,
DIMENSION(NSURF),
INTENT(IN) :: IGRSURF
62 TYPE (TH_SURF_),
INTENT(INOUT) :: TH_SURF
66 INTEGER I,NOD1,,NOD3,NOD4,NSEGPL,NSEGPLOAD,IAD,
67 . NS,NL,NLOADPL,N,NN,N1,N2,N3,N4,NLOADPRESS,IS,SIZE_NEW,NSEGLOADP,NSEGLOADFB,ADSEG
68 INTEGER,
DIMENSION (:),
ALLOCATABLE :: OLD_TAB
69 INTEGER,
DIMENSION (:),
ALLOCATABLE :: TAG
74 IF(igrsurf(n)%TH_SURF == 1)
THEN
75 th_surf%NSURF = th_surf%NSURF + 1
79 nloadpress = npreld + nloadp
84 th_surf%S_PLOAD_KSEGS = 0
85 th_surf%S_PLOAD_SEGS = 0
87 th_surf%S_LOADP_KSEGS = 0
88 th_surf%S_LOADP_SEGS = 0
90 th_surf%PLOAD_FLAG = 0
91 th_surf%LOADP_FLAG = 0
93 IF(th_surf%NSURF >0 .AND.nloadpress > 0 )
THEN
102 IF(n4/=-1) nsegpl = nsegpl + 1
107 CALL my_alloc(th_surf%PLOAD_KSEGS
108 CALL my_alloc(th_surf%PLOAD_SEGS,th_surf%NSURF*nsegpl)
109 th_surf%PLOAD_KSEGS = 0
110 th_surf%PLOAD_SEGS = 0
115 nsegpl = nsegpl + iloadp(1,nl)/4
118 CALL my_alloc(th_surf%LOADP_KSEGS,nsegpl+1)
119 CALL my_alloc(th_surf%LOADP_SEGS,th_surf%NSURF*nsegpl)
120 th_surf%LOADP_KSEGS = 0
121 th_surf%LOADP_SEGS = 0
125 CALL my_alloc(tag,numnod)
131 IF(nsegpload > 0)
THEN
144 adseg = th_surf%PLOAD_KSEGS(nsegpl)
146 IF(igrsurf(n)%TH_SURF == 1)
THEN
149 nod1=igrsurf(n)%NODES(i,1)
150 nod2=igrsurf(n)%NODES(i,2)
151 nod3=igrsurf(n)%NODES(i,3)
152 nod4=igrsurf(n)%NODES(i,4)
153 IF(tag(nod1)==1.AND.tag(nod2)==1.AND.tag(nod3)==1)
THEN
155 th_surf%PLOAD_SEGS(adseg+ns) = n
161 th_surf%PLOAD_KSEGS(nsegpl+1) = adseg +ns
169 IF(th_surf%PLOAD_KSEGS(nsegpl+1) > 0) th_surf%PLOAD_FLAG = 1
174 IF(nsegloadp > 0)
THEN
177 DO n=1, iloadp(1,nl)/4
178 n1=lloadp(iad+4*(n-1))
179 n2=lloadp(iad+4*(n-1)+1)
180 n3=lloadp(iad+4*(n-1)+2)
181 n4=lloadp(iad+4*(n-1)+3)
188 adseg = th_surf%LOADP_KSEGS(nsegpl)
190 IF(igrsurf(is)%TH_SURF == 1)
THEN
191 nn = igrsurf(is)%NSEG
193 nod1=igrsurf(is)%NODES(i,1)
194 nod2=igrsurf(is)%NODES(i,2)
195 nod3=igrsurf(is)%NODES(i,3)
196 nod4=igrsurf(is)%NODES(i,4)
197 IF(tag(nod1)==1.AND.tag(nod2)==1.AND.tag(nod3)==1)
THEN
199 th_surf%LOADP_SEGS(adseg+ns) = is
205 th_surf%LOADP_KSEGS(nsegpl+1) = adseg +ns
213 IF(th_surf%LOADP_KSEGS(nsegpl+1) > 0) th_surf%LOADP_FLAG = 1
216 IF(
ALLOCATED(tag))
DEALLOCATE(tag)
221 IF(nsegpload > 0)
THEN
223 size_new = th_surf%PLOAD_KSEGS(nsegpload + 1)
224 th_surf%S_PLOAD_KSEGS= nsegpload + 1
225 th_surf%S_PLOAD_SEGS= th_surf%PLOAD_KSEGS(nsegpload + 1)
227 CALL my_alloc (old_tab,size_new)
229 old_tab(i)=th_surf%PLOAD_SEGS(i)
233 IF(
ALLOCATED(th_surf%PLOAD_SEGS))
DEALLOCATE(th_surf%PLOAD_SEGS)
235 CALL my_alloc(th_surf%PLOAD_SEGS,th_surf%S_PLOAD_SEGS)
237 th_surf%PLOAD_SEGS(i) = old_tab(i)
239 IF(
ALLOCATED(old_tab))
DEALLOCATE(old_tab)
243 IF(nsegloadp > 0)
THEN
245 size_new = th_surf%LOADP_KSEGS( nsegloadp + 1)
246 th_surf%S_LOADP_KSEGS= nsegloadp + 1
247 th_surf%S_LOADP_SEGS= th_surf%LOADP_KSEGS(nsegloadp
249 CALL my_alloc (old_tab,size_new)
251 old_tab(i)=th_surf%LOADP_SEGS(i)
253 IF(
ALLOCATED(old_tab))
DEALLOCATE(th_surf%LOADP_SEGS)
256 CALL my_alloc(th_surf%LOADP_SEGS,th_surf%LOADP_KSEGS( nsegloadp + 1))
258 th_surf%LOADP_SEGS(i) = old_tab(i)
260 IF(
ALLOCATED(old_tab))
DEALLOCATE(old_tab)