38 1 INTLIST25,IPARI ,INTBUF_TAB ,JTASK ,X ,
39 2 ITAB ,NSENSOR ,SENSOR_TAB,IAD_FRNOR ,FR_NOR ,
40 3 IAD_FREDG,FR_EDG,IAD_ELEM,FR_ELEM,FSKYN25,
52#include "implicit_f.inc"
65 INTEGER ,
INTENT(IN) :: JTASK,NSENSOR
66 INTEGER (NPARI,NINTER), INTLIST25(*), ITAB(*),
67 . IAD_FRNOR(NINTER25,*), FR_NOR(*), IAD_FREDG(,*), FR_EDG(*),
68 . IAD_ELEM(2,*), FR_ELEM(*),ADDCSRECT(*), PROCNOR(*)
71 TYPE(intbuf_struct_),
DIMENSION(NINTER) :: INTBUF_TAB
72 TYPE(MPI_COMM_NOR_STRUCT) ,
DIMENSION(NINTER25) :: BUFFERS
74 TYPE (SENSOR_STR_) ,
DIMENSION(NSENSOR) ,
INTENT(IN) :: SENSOR_TAB
78 INTEGER N, NTY, ISENS, SIZE, NI25, NADMSR, IEDGE, NADMSRF6, NADMSRL6,
79 . NRTM, NSN, NSNR, NIN, NRTM_SH, NRTM0, FLAGREMN ,NCSHIFT ,ISHIFT,
80 . SIZE_NODNOR_E2S,I,J,NOD,CC,SOL_EDGE
95 ALLOCATE(intbuf_tab(n)%TAGNOD(numnod), intbuf_tab(n)%WNOD_NORMAL(3,4,nrtm))
96 ALLOCATE(intbuf_tab(n)%TAGE(nrtm))
108 startt=intbuf_tab(n)%VARIABLES(3)
109 stopt =intbuf_tab(n)%VARIABLES(11)
115 ts = sensor_tab(isens)%TSTART
127 IF(iedge /= 0) sol_edge =iedge/10
131 IF(iad_frnor(ni25,i+1)-iad_frnor(ni25,i)>0)
THEN
132 DO j=iad_frnor(ni25,i),iad_frnor(ni25,i+1)-1
133 nod = ishift + fr_nor(j)
134 DO cc = addcsrect(nod),addcsrect(nod+1)-1
135 IF(procnor(cc)==i)
THEN
136 size_nodnor_e2s = size_nodnor_e2s + 6
144 ALLOCATE(buffers(ni25)%SEND_BUF( 3*(iad_fredg(ni25,nspmd+1)-iad_fredg(ni25,1))
145 . +2*3*(iad_frnor(ni25,nspmd+1)-iad_frnor(ni25,1))
146 . + (iad_frnor(ni25,nspmd+1)-iad_frnor(ni25,1))
147 . + size_nodnor_e2s))
148 ALLOCATE(buffers(ni25)%RECV_BUF( 3*(iad_fredg(ni25,nspmd+1)-iad_fredg(ni25,1))
149 . +2*3*(iad_frnor(ni25,nspmd+1)-iad_frnor(ni25,1))
150 . + (iad_frnor(ni25,nspmd+1)-iad_frnor(ni25,1))
151 . + size_nodnor_e2s))
153 ALLOCATE(buffers(ni25)%ISINDEX(nspmd))
154 ALLOCATE(buffers(ni25)%IRINDEX(nspmd))
155 ALLOCATE(buffers(ni25)%SEND_RQ(nspmd))
156 ALLOCATE(buffers(ni25)%RECV_RQ(nspmd))
157 ALLOCATE(buffers(ni25)%IAD_RECV(nspmd+1))
158 ALLOCATE(buffers(ni25)%IAD_SEND(nspmd+1))
170 flagremn = ipari(63,n)
175 IF(iedge /= 0) sol_edge =iedge/10
177 CALL i25tagn(ni25 ,n ,nrtm ,nsn ,nsnr ,
178 2 jtask ,iad_frnor ,fr_nor ,intbuf_tab(n)%IRTLM,intbuf_tab(n)%MSEGTYP24 ,
179 3 intbuf_tab(n)%I_STOK(2), intbuf_tab(n)%I_STOK(3), intbuf_tab(n)%CAND_OPT_E,
180 . intbuf_tab(n)%STFNS, intbuf_tab(n)%ACTNOR,intbuf_tab(n)%IRECTM,
181 4 intbuf_tab(n)%TAGNOD,iad_elem,fr_elem ,intbuf_tab(n)%ADMSR,intbuf_tab(n)%KNOR2MSR,
182 5 intbuf_tab(n)%NOR2MSR,flagremn,intbuf_tab(n)%KREMNOR,intbuf_tab(n)%REMNOR,
183 6 iedge, nedge, intbuf_tab(n)%LEDGE,intbuf_tab(n)%NRTM_FREE,
184 . intbuf_tab(n)%FREE_IRECT_ID,intbuf_tab(n)%I_STOK_E(2),
185 7 intbuf_tab(n)%CANDM_E2S,intbuf_tab(n)%CANDS_E2S,intbuf_tab(n)%MVOISIN,
186 8 intbuf_tab(n)%E2S_ACTNOR,nadmsr,intbuf_tab(n)%STFM,
187 8 intbuf_tab(n)%NUMBER_EDGE_TYPE1,intbuf_tab(n)%NUMBER_EDGE_TYPE1_0,
188 . intbuf_tab(n)%EDGE_TYPE1,intbuf_tab(n)%EDGE_TYPE1_0 )
192 nadmsrf6= 1+(jtask-1)*6*nadmsr/ nthread
193 nadmsrl6= jtask*6*nadmsr/nthread
194 intbuf_tab(n)%VTX_BISECTOR(nadmsrf6:nadmsrl6)=rzero
196 IF(jtask==1)
ALLOCATE(intbuf_tab(n)%TAGSEG(4,4*nrtm))
202 1 ni25,nrtm,nrtm0,intbuf_tab(n)%IRECTM,x ,
203 2 intbuf_tab(n)%EDGE_BISECTOR,ipari(6,n),intbuf_tab(n)%MSR ,
204 . jtask,intbuf_tab(n)%STFM,intbuf_tab(n)%STFE,
205 3 intbuf_tab(n)%ACTNOR,intbuf_tab(n)%MSEGTYP24,intbuf_tab(n)%TAGNOD,
206 . intbuf_tab(n)%MVOISIN,intbuf_tab(n)%EVOISIN,
207 4 iad_fredg,fr_edg,intbuf_tab(n)%WNOD_NORMAL,buffers(ni25),iedge,ipari(68,n),
208 5 intbuf_tab(n)%LEDGE,intbuf_tab(n)%LBOUND,nadmsr,intbuf_tab(n)%ADMSR,
209 6 iad_frnor,fr_nor,intbuf_tab(n)%VTX_BISECTOR,1,
210 7 intbuf_tab(n)%NB_TAGSEG, intbuf_tab(n)%TAGSEG,intbuf_tab(n)%TAGE,intbuf_tab(n)%FREE_IRECT_ID,intbuf_tab(n)%NRTM_FREE,
211 8 fskyn25(1,ncshift),intbuf_tab(n)%IADNOR,ishift,addcsrect,procnor,sol_edge ,
217 ncshift=ncshift+intbuf_tab(n)%ADSKYN(nadmsr+1)-1
218 ishift = ishift + ipari(67,n)
220 IF(jtask==1)
DEALLOCATE(intbuf_tab(n)%TAGSEG)
233 startt=intbuf_tab(n)%VARIABLES(3)
234 stopt =intbuf_tab(n)%VARIABLES(11)
240 ts = sensor_tab(isens)%TSTART
257 IF(iedge /= 0) sol_edge =iedge/10
262 1 ni25,nrtm,nrtm0,intbuf_tab(n)%IRECTM,x ,
263 2 intbuf_tab(n)%EDGE_BISECTOR,ipari(6,n),intbuf_tab(n)%MSR ,
264 . jtask,intbuf_tab(n)%STFM,intbuf_tab(n)%STFE,
265 3 intbuf_tab(n)%ACTNOR,intbuf_tab(n)%MSEGTYP24,intbuf_tab(n)%TAGNOD,
266 . intbuf_tab(n)%MVOISIN,intbuf_tab(n)%EVOISIN,
267 4 iad_fredg,fr_edg,intbuf_tab(n)%WNOD_NORMAL,buffers(ni25),iedge,ipari(68,n),
268 5 intbuf_tab(n)%LEDGE,intbuf_tab(n)%LBOUND,nadmsr,intbuf_tab(n)%ADMSR,
269 6 iad_frnor,fr_nor,intbuf_tab(n)%VTX_BISECTOR,2,
270 7 intbuf_tab(n)%NB_TAGSEG,intbuf_tab(n)%TAGSEG,intbuf_tab(n)%TAGE,intbuf_tab(n)%FREE_IRECT_ID,intbuf_tab(n)%NRTM_FREE,
271 8 fskyn25(1,ncshift),intbuf_tab(n)%IADNOR,ishift,addcsrect,procnor,sol_edge,
277 ncshift=ncshift+intbuf_tab(n)%ADSKYN(nadmsr+1)-1
278 ishift = ishift + ipari(67,n)
281 DEALLOCATE(buffers(ni25)%SEND_BUF)
282 DEALLOCATE(buffers(ni25)%RECV_BUF)
283 DEALLOCATE(buffers(ni25)%ISINDEX)
284 DEALLOCATE(buffers(ni25)%IRINDEX)
285 DEALLOCATE(buffers(ni25)%SEND_RQ)
286 DEALLOCATE(buffers(ni25)%RECV_RQ)
287 DEALLOCATE(buffers(ni25)%IAD_RECV)
288 DEALLOCATE(buffers(ni25)%IAD_SEND)
303 IF(iedge /= 0) sol_edge =iedge/10
309 ts = sensor_tab(isens)%TSTART
317 1 jtask ,nadmsr ,intbuf_tab(n)%E2S_NOD_NORMAL,intbuf_tab(n)%ADMSR,intbuf_tab(n)%ADSKYN,
318 2 intbuf_tab(n)%IADNOR,intbuf_tab(n)%E2S_ACTNOR,fskyn25(1,ncshift))
321 ncshift=ncshift+intbuf_tab(n)%ADSKYN(nadmsr+1)-1
332 DEALLOCATE(intbuf_tab(n)%TAGNOD, intbuf_tab(n)%WNOD_NORMAL,intbuf_tab(n)%TAGE)
subroutine i25main_norm(intlist25, ipari, intbuf_tab, jtask, x, itab, nsensor, sensor_tab, iad_frnor, fr_nor, iad_fredg, fr_edg, iad_elem, fr_elem, fskyn25, addcsrect, procnor)
subroutine i25normp(ni25, nrtm, nrtm0, irect, x, nod_normal, nmn, msr, jtask, stifm, stfe, actnor, msegtyp, tagnod, mvoisin, evoisin, iad_fredg, fr_edg, wnod_normal, buffers, iedge, nedge, ledge, lbound, nadmsr, admsr, iad_frnor, fr_nor, vtx_bisector, flag, nb_free_bound, free_bound, tage, free_irect_id, nrtm_free, fskyt, iadnor, ishift, addcsrect, procnor, sol_edge, fskyn25)
subroutine i25tagn(ni25, nin, nrtm, nsn, nsnr, jtask, iad_frnor, fr_nor, irtlm, msegtyp, i_stok_glo, i_stok_rtlm, cand_opt_e, stfns, actnor, irect, tagnod, iad_elem, fr_elem, admsr, knor2msr, nor2msr, flagremn, kremnor, remnor, iedge, nedge, ledge, nrtm_free, free_irect_id, i_stok_e2s, candm_e2s, cands_e2s, mvoisin, e2s_actnor, nadmsr, stfm, number_edge_type1, number_edge_type1_0, edge_type1, edge_type1_0)