35 1 XA ,IRECT ,NSV ,INACTI ,CAND_P ,
36 2 NMN ,NRTM ,NSN ,CAND_E ,CAND_N ,
37 3 GAP ,NOINT ,II_STOK ,TZINF ,MAXBOX ,
38 4 MINBOX ,MWAG ,CURV_MAX,NCONTACT,BMINMA ,
39 5 NB_N_B ,ESHIFT ,ILD ,IFQ ,IFPEN ,
40 6 STFA ,NIN ,STF ,IGAP ,GAP_S ,
41 7 NSNR ,NCONT ,RENUM ,NSNROLD ,GAP_M ,
42 8 GAPMIN ,GAPMAX ,NUM_IMP ,NLN ,NLG ,
43 9 GAP_SH ,NBINFLG ,MBINFLG ,ISYM ,I_MEM ,
44 . INTHEAT ,IDT_THERM, NODADT_THERM)
53#include "implicit_f.inc"
64 INTEGER NMN, NRTM, NSN, NOINT,IDT,INACTI,, NIN, NSNR,
67INTEGER NCONTACT,ESHIFT,ILD,NB_N_B, IGAP, NCONT,
68 . NBINFLG(*), MBINFLG(*),I_MEM,
69 INTEGER,
INTENT(IN) :: INTHEAT
70 INTEGER,
INTENT(IN) :: IDT_THERM
71 INTEGER,
INTENT(IN) :: NODADT_THERM
74 . gap,tzinf,maxbox,minbox,
78 . xa(3,*), cand_p(*), stfa(*),
79 . stf(*), gap_s(*), gap_m(*), gap_sh(*)
84 PARAMETER (I_ADD_MAX = 1001)
86 INTEGER I, J, I_ADD, IP0, IP1, MAXSIZ,
87 . add(2,i_add_max), loc_proc, n, isznsnr,
91 . xyzm(6,i_add_max-1), marge
93 . xxx,yyy,zzz,curv_max(nrtm)
110 maxsiz = 3*(nrtm+100)
113 ip1 = ip0 + nsn + nsnrold + 3
127 xyzm(1,i_add) = bminma(4)
128 xyzm(2,i_add) = bminma(5)
129 xyzm(3,i_add) = bminma(6)
130 xyzm(4,i_add) = bminma(1)
131 xyzm(5,i_add) = bminma(2)
132 xyzm(6,i_add) = bminma(3)
136 IF((inacti==5.OR.inacti==6.OR.inacti==7.OR.ifq>0 .OR.num_imp>0))
THEN
148 1 add ,nsn ,renum ,nsnr ,isznsnr ,
149 2 irect ,xa ,stf ,stfa ,xyzm ,
150 3 i_add ,nsv ,maxsiz ,ii_stok ,cand_n ,
151 4 cand_e ,ncontact,noint ,tzinf ,maxbox ,
152 5 minbox ,i_mem ,nb_n_b ,i_add_max,eshift ,
153 6 inacti ,ifq ,mwag(ip0),cand_p ,ifpen ,
154 7 nrtm ,nsnrold ,igap ,gap ,gap_s ,
155 6 gap_m ,gapmin ,gapmax ,marge ,curv_max,
156 7 nin ,gap_sh ,nbinflg ,mbinflg ,isym ,
157 8 intheat, idt_therm, nodadt_therm)
162 IF (i_mem == 2)
RETURN
165 IF ( nb_n_b > ncont)
THEN
166 CALL ancmsg(msgid=85,anmode=aninfo,
171 ELSEIF(i_mem==2)
THEN
175 WRITE(istdo,*)
' **WARNING INTERFACE/MEMORY'
176 WRITE(iout,*)
' **WARNING INTERFACE NB:',noint
177 WRITE(iout,*)
' TOO MANY POSSIBLE IMPACTS'
178 WRITE(iout,*)
' SIZE OF INFLUENCE ZONE IS'
179 WRITE(iout
' MULTIPLIED BY 0.75'
180#include "lockoff.inc"
182 tzinf = three_over_4*tzinf
187 CALL ancmsg(msgid=98,anmode=aninfo,
188 . i1=noint,c1=
'(I20BUCE)')
195 IF ( nb_n_b > ncont)
THEN
196 CALL ancmsg(msgid=99,anmode=aninfo,
197 . i1=noint,c1=
'(I20BUCE)')
217 1 XA ,IXLINS ,IXLINM ,NLG ,
218 2 NLINSA ,NMNE ,NLINMA ,CAND_M ,CAND_S ,
219 3 GAP ,NOINT ,II_STOKE,BMINMA ,TZINF ,
220 4 MAXBOX ,MINBOX ,NB_N_B , ESHIFT ,ILD ,
221 6 NCONTACT,ADDCM ,CHAINE ,NIN ,ITAB ,
222 7 NLINSR ,NCONT ,GAP_S ,STIFS , PENIS ,
223 8 IGAP ,STIFM ,IAUTO , I_MEM)
232#include "implicit_f.inc"
233#include "comlock.inc"
237#include "units_c.inc"
242 INTEGER NMNE, NLINMA, NSNE, NOINT,IDT,NLINSA,NIN, NLINSR, INACTI,
244 INTEGER IXLINS(2,*),IXLINM(2,*),ADDCM(*),CHAINE(2,*)
245 INTEGER CAND_M(*),CAND_S(*),NLG(*)
246 INTEGER ESHIFT,ILD, NB_N_B, , NCONT,
247 . ITAB(*), I_MEM,II_STOKE
250 . GAP,TZINF,MAXBOX,MINBOX,
253 . XA(3,*),GAP_S(*),STIFS(*),PENIS(2,*),STIFM(*)
258 PARAMETER (I_ADD_MAX = 1001)
260 INTEGER I, J, N1, N2, , MAXSIZ,
261 . add(2,i_add_max), n
264 . xyzm(6,i_add_max-1)
265 INTEGER NB_OLD(2,I_ADD_MAX+1)
281 maxsiz = 3*(
max(nlinma,nlinsa+nlinsr)+100)
294 xyzm(1,i_add) = bminma(4)
295 xyzm(2,i_add) = bminma(5)
296 xyzm(3,i_add) = bminma(6)
297 xyzm(4,i_add) = bminma(1)
298 xyzm(5,i_add) = bminma(2)
299 xyzm(6,i_add) = bminma(3)
312 2 ixlins ,ixlinm ,nlinma ,nlinsr ,
313 3 xyzm ,i_add ,maxsiz ,ii_stoke ,cand_s ,
314 4 cand_m ,ncontact,noint ,tzinf ,maxbox ,
315 5 minbox ,i_mem ,nb_n_b ,i_add_max,eshift ,
316 6 addcm ,chaine ,nlinsa ,itab ,nb_old ,
317 7 stifs ,stifm ,iauto ,nin )
322 IF (i_mem == 1 .OR. i_mem==2)
RETURN
325 IF ( nb_n_b >
max(nlinma,nlinsa))
THEN
326 CALL ancmsg(msgid=85,anmode=aninfo,
331 ELSEIF(i_mem==2)
THEN
335 WRITE(istdo,*)
' **WARNING INTERFACE/MEMORY'
336 WRITE(iout,*)
' **WARNING INTERFACE NB:',noint
337 WRITE(iout,*)
' TOO MANY POSSIBLE IMPACTS'
338 WRITE(iout,*)
' SIZE OF INFLUENCE ZONE IS'
339 WRITE(iout,*)
' MULTIPLIED BY 0.75'
340#include "lockoff.inc"
343 tzinf = three_over_4*tzinf
347 IF( tzinf<=gap )
THEN
348 CALL ancmsg(msgid=98,anmode=aninfo,
349 . i1=noint,c1=
'(I20BUCE)')
355 IF ( nb_n_b >
max(nlinma,nlinsa))
THEN
356 CALL ancmsg(msgid=99,anmode=aninfo,
357 . i1=noint,c1=
'(I20BUCE)')
subroutine i20buc_edge(xa, ixlins, ixlinm, nlg, nlinsa, nmne, nlinma, cand_m, cand_s, gap, noint, ii_stoke, bminma, tzinf, maxbox, minbox, nb_n_b, eshift, ild, ncontact, addcm, chaine, nin, itab, nlinsr, ncont, gap_s, stifs, penis, igap, stifm, iauto, i_mem)
subroutine i20buce(xa, irect, nsv, inacti, cand_p, nmn, nrtm, nsn, cand_e, cand_n, gap, noint, ii_stok, tzinf, maxbox, minbox, mwag, curv_max, ncontact, bminma, nb_n_b, eshift, ild, ifq, ifpen, stfa, nin, stf, igap, gap_s, nsnr, ncont, renum, nsnrold, gap_m, gapmin, gapmax, num_imp, nln, nlg, gap_sh, nbinflg, mbinflg, isym, i_mem, intheat, idt_therm, nodadt_therm)
subroutine i20tri_edge(add, xa, nlg, ixlins, ixlinm, nlinma, nlinsr, xyzm, i_add, maxsiz, ii_stoke, cand_s, cand_m, nsn4, noint, tzinf, maxbox, minbox, i_mem, nb_n_b, i_add_max, eshift, addcm, chaine, nlinsa, itab, nb_old, stfs, stfm, iauto, nin)
subroutine i20tri(add, nsn, renum, nsnr, isznsnr, irect, xa, stf, stfa, xyzm, i_add, nsv, maxsiz, ii_stok, cand_n, cand_e, mulnsn, noint, tzinf, maxbox, minbox, i_mem, nb_n_b, i_add_max, eshift, inacti, ifq, cand_a, cand_p, ifpen, nrtm, nsnrold, igap, gap, gap_s, gap_m, gapmin, gapmax, marge, curv_max, nin, gap_sh, nbinflg, mbinflg, isym, intheat, idt_therm, nodadt_therm)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)