53 1 npari ,IPARI ,X ,V ,
54 2 MS ,NIN ,ITASK ,MWAG ,WEIGHT ,
55 3 ISENDTO ,IRCVFROM,RETRI ,IAD_ELEM,FR_ELEM ,
56 5 NRTM_T ,RENUM ,NSNFIOLD,ESHIFT ,NUM_IMP ,
57 6 IND_IMP ,NODNX_SMS,ITAB ,INTBUF_TAB ,
58 7 H3D_DATA,GLOB_THERM)
67 use check_sorting_criteria_mod ,
only : check_sorting_criteria
72#include "implicit_f.inc"
80#include "timeri_c.inc"
81 COMMON /i10mainc/bminma,result,nsnr,nsnrold,i_memg
82 INTEGER RESULT,NSNR,NSNROLD,I_MEMG
88 TYPE(timer_),
intent(inout) :: TIMERS
89 integer,
intent(in) :: npari
90 INTEGER ITASK, NIN, RETRI, NRTM_T, ESHIFT,
91 . NUM_IMP ,IND_IMP(*),
92 . IPARI(npari), MWAG(*), ITAB(*),
93 . ISENDTO(NINTER+1,*),IRCVFROM(NINTER+1,*),
94 . weight(*), iad_elem(2,*) ,fr_elem(*),
95 . renum(numnod), nsnfiold(nspmd), nodnx_sms(*)
99 TYPE(intbuf_struct_) INTBUF_TAB
100 TYPE(H3D_DATABASE) :: H3D_DATA
101 TYPE(glob_therm_),
INTENT(IN) :: GLOB_THERM
106 . i, k11_t, ip0, ip1, ip2, ip3, jlt , nft, j17_t,
107 . i_sk_old, i_stok1, itied,
108 . add1, ild, noint, multimp, ityp, ncont, ncontact,
109 . ibid,i_mem,cand_n_old
112 . gap, maxbox, minbox, tzinf,dist1,
113 . xmaxl, ymaxl, zmaxl, xminl, yminl, zminl, gapmin, gapmax
114 INTEGER :: NMN, NSN,NRTM,NTY
115 logical :: need_computation
120 call check_sorting_criteria( need_computation,nin,npari,nspmd,
121 . itask,ipari,tt,intbuf_tab )
122 if( .not.need_computation )
return
136 ncontact=multimp*ncont
139 gap =intbuf_tab%VARIABLES(2)
140 gapmin=intbuf_tab%VARIABLES(13)
141 gapmax=intbuf_tab%VARIABLES(16)
148 maxbox = intbuf_tab%VARIABLES(9)
149 minbox = intbuf_tab%VARIABLES(12)
150 tzinf = intbuf_tab%VARIABLES(8)
164 ip1 = ip0 + nsn + nsnrold + 3
165 i_sk_old = intbuf_tab%I_STOK(1)
167 1 nsn+nsnrold ,i_sk_old ,intbuf_tab%CAND_N,intbuf_tab%CAND_E,
168 2 intbuf_tab%CAND_F,mwag(ip0),num_imp ,ind_imp )
169 intbuf_tab%I_STOK(1)=i_sk_old
176 1 x ,intbuf_tab%NSV,intbuf_tab%MSR,nsn ,nmn ,
177 2 itask ,intbuf_tab%XSAV,xminl ,yminl ,zminl ,
178 3 xmaxl ,ymaxl ,zmaxl )
180 bminma(1) =
max(bminma(1),xmaxl)
181 bminma(2) =
max(bminma(2),ymaxl)
182 bminma(3) =
max(bminma(3),zmaxl)
183 bminma(4) =
min(bminma(4),xminl)
184 bminma(5) =
min(bminma(5),yminl)
185 bminma(6) =
min(bminma(6),zminl)
186#include "lockoff.inc"
192 IF(abs(bminma(6)-bminma(3))>2*ep30.OR.
193 + abs(bminma(5)-bminma(2))>2*ep30.OR.
194 + abs(bminma(4)-bminma(1))>2*ep30)
THEN
195 CALL ancmsg(msgid=87,anmode=aninfo,
200 bminma(1)=bminma(1)+tzinf
201 bminma(2)=bminma(2)+tzinf
202 bminma(3)=bminma(3)+tzinf
203 bminma(4)=bminma(4)-tzinf
204 bminma(5)=bminma(5)-tzinf
205 bminma(6)=bminma(6)-tzinf
212 1 intbuf_tab%NSV,nsn ,x ,v ,ms ,
213 2 bminma ,weight ,intbuf_tab%STFNS,nin ,isendto ,
214 3 ircvfrom ,iad_elem,fr_elem ,nsnr ,ipari(21),
215 4 intbuf_tab%GAP_S,nsnfiold,nodnx_sms ,itab ,itied)
221 1 intbuf_tab%CAND_N,renum ,intbuf_tab%I_STOK(1), nin, nsn,
226 cand_n_old = intbuf_tab%I_STOK(1)
236 IF (imonm > 0)
CALL startime(timers,30)
240 1 x ,intbuf_tab%IRECTM(1+4*eshift),intbuf_tab%NSV,nmn ,nrtm_t ,
241 2 nsn ,ncont ,intbuf_tab%CAND_E,intbuf_tab%CAND_N,gap ,
242 3 noint ,intbuf_tab%I_STOK(1),tzinf ,maxbox ,minbox ,
243 4 nb_n_b ,eshift ,bminma ,mwag ,ild ,
244 7 ncontact ,nsnrold ,intbuf_tab%STFNS,nin ,ipari(21) ,
245 8 intbuf_tab%GAP_S,nsnr ,renum ,intbuf_tab%STFM(1+eshift),intbuf_tab%GAP_M,
246 9 gapmin ,gapmax ,i_mem,glob_therm%INTHEAT, glob_therm%IDT_THERM, glob_therm%NODADT_THERM)
252#include "lockoff.inc"
262 multimp = ipari(23) + 4
267 intbuf_tab%I_STOK(1)=cand_n_old
269 ncontact=multimp*ncont
272 IF (imonm > 0)
CALL stoptime(timers,30)
275 intbuf_tab%VARIABLES(9) =
min(maxbox,intbuf_tab%VARIABLES(9))
276 intbuf_tab%VARIABLES(12)=
min(minbox,intbuf_tab%VARIABLES(12))
277 intbuf_tab%VARIABLES(8) =
min(tzinf,intbuf_tab%VARIABLES(8))
279 intbuf_tab%VARIABLES(5) = intbuf_tab%VARIABLES(8)-gap
280 result = result + ild
281#include "lockoff.inc"
288 intbuf_tab%I_STOK(1) = i_sk_old
293 maxbox = intbuf_tab%VARIABLES(9)
294 minbox = intbuf_tab%VARIABLES(12)
295 tzinf = intbuf_tab%VARIABLES(8)
304 IF (imonm > 0)
CALL startime(timers,26)
306 intbuf_tab%VARIABLES(5) = -intbuf_tab%VARIABLES(5)
312 1 result ,nsn ,intbuf_tab%CAND_N,intbuf_tab%I_STOK(1),nin,
313 2 ipari(21),nsnr,multimp ,nty,ibid,h3d_data)
317 .
CALL imp_rnumcd(intbuf_tab%CAND_N,nin,nsn,num_imp,ind_imp )
319 IF (imonm > 0)
CALL stoptime(timers,26)
subroutine i10buce(x, irect, nsv, nmn, nrtm, nsn, ncont, cand_e, cand_n, gap, noint, ii_stok, tzinf, maxbox, minbox, nb_n_b, eshift, bminma, mwag, ild, ncontact, nsnrold, stfn, nin, igap, gap_s, nsnr, renum, stf, gap_m, gapmin, gapmax, i_mem, intheat, idt_therm, nodadt_therm)
subroutine i10main_tri(timers, npari, ipari, x, v, ms, nin, itask, mwag, weight, isendto, ircvfrom, retri, iad_elem, fr_elem, nrtm_t, renum, nsnfiold, eshift, num_imp, ind_imp, nodnx_sms, itab, intbuf_tab, h3d_data, glob_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)