32 1 X ,BMINMAL ,NRTM ,STF ,MARGE ,
33 2 CURV_MAX,GAP_M ,IRECT ,GAP ,BGAPSMX,
34 3 PMAX_GAP,VMAXDT,BGAPEMX, IEDGE,
35 4 LEDGE, NEDGE, NLEDGE,
36 5 GAPE , DRAD ,DGAPLOAD)
45#include
"implicit_f.inc"
54 INTEGER,
INTENT(IN) :: NRTM
55 INTEGER,
INTENT(IN) :: NLEDGE
56 INTEGER,
INTENT(IN) :: NEDGE
57 INTEGER,
INTENT(IN) :: IEDGE
58 INTEGER,
INTENT(IN) :: LEDGE(NLEDGE,NEDGE)
62 . stf(*), gap_m(*), bgapsmx,pmax_gap,vmaxdt,
63 . marge,gap,curv_max(nrtm),
66 my_real ,
INTENT(IN) :: dgapload
71 . nbx,nby,nbz,ne,m1,m2,m3,m4,
72 . ix1,iy1,iz1,ix2,iy2,iz2,ix,iy,iz
75 . xmaxb,ymaxb,zmaxb,xminb,yminb,zminb,
76 . xmine,ymine,zmine,xmaxe,ymaxe,zmaxe,
77 . xx1,xx2,xx3,xx4,yy1,yy2,yy3,yy4,zz1,zz2,zz3,zz4
79 INTEGER :: SOL_EDGE,SH_EDGE
92 sh_edge =iedge-10*sol_edge
109 IF(stf(ne) <= zero)cycle
110 aaa = marge+curv_max(ne)+vmaxdt
111 + +
max(
max(pmax_gap,bgapsmx+gap_m(ne))+dgapload,drad)
115 IF(sol_edge > 0) aaa =
max(aaa,marge+bgapemx+dgapload)
129 xmaxe=
max(xx1,xx2,xx3,xx4)
130 xmine=
min(xx1,xx2,xx3,xx4)
136 ymaxe=
max(yy1,yy2,yy3,yy4)
137 ymine=
min(yy1,yy2,yy3,yy4)
143 zmaxe=
max(zz1,zz2,zz3,zz4)
144 zmine=
min(zz1,zz2,zz3,zz4)
146 IF(sol_edge > 0 )
THEN
147 dx=em02*(xmaxe-xmine)
148 dy=em02*(ymaxe-ymine)
149 dz=em02*(zmaxe-zmine)
160 ix1=int(nbx*(xmine-aaa-xminb)/(xmaxb-xminb))
161 iy1=int(nby*(ymine-aaa-yminb)/(ymaxb-yminb))
162 iz1=int(nbz*(zmine-aaa-zminb)/(zmaxb-zminb))
168 ix2=int(nbx*(xmaxe+aaa-xminb)/(xmaxb-xminb))
169 iy2=int(nby*(ymaxe+aaa-yminb)/(ymaxb-yminb))
170 iz2=int(nbz*(zmaxe+aaa-zminb)/(zmaxb-zminb))
200 1 X ,BMINMAL ,NRTM ,STFE ,MARGE ,
201 2 CURV_MAX,GAP_M ,IRECT ,GAP ,BGAPSMX,
202 3 PMAX_GAP,VMAXDT,BGAPEMX, IEDGE,IGAP0 ,
203 4 LEDGE, NEDGE, NLEDGE,
213#include "implicit_f.inc"
214#include "comlock.inc"
222 INTEGER,
INTENT(IN) :: NRTM
223 INTEGER,
INTENT(IN) :: NLEDGE
224 INTEGER,
INTENT(IN) :: NEDGE
225 INTEGER,
INTENT(IN) :: IEDGE, IGAP0
226 INTEGER,
INTENT(IN) :: LEDGE(NLEDGE,NEDGE)
227 INTEGER IRECT(4,NRTM)
229 . X(3,*), BMINMAL(*),
230 . STFE(NEDGE), GAP_M(*), BGAPSMX,PMAX_GAP,VMAXDT,
231 . MARGE,GAP,CURV_MAX(NRTM),
234 my_real ,
INTENT(IN) :: dgapload
240 . IX1,IY1,IZ1,IX2,IY2,IZ2,IX,IY,
243 . xmaxb,ymaxb,zmaxb,xminb,yminb,zminb,
244 . xmine,ymine,zmine,xmaxe,ymaxe,zmaxe,
245 . xx1,xx2,yy1,yy2,zz1,zz2
247 INTEGER :: SOL_EDGE,SH_EDGE
261 sh_edge =iedge-10*sol_edge ! shells
279 IF(stfe(ie) <= zero ) cycle
280 IF(ledge(9,ie) == 0) cycle
304 xmaxe=
max(xx1,xx2)+gape(ie)
305 xmine=
min(xx1,xx2)-gape(ie)
306 ymaxe=
max(yy1,yy2)+gape(ie)
307 ymine=
min(yy1,yy2)-gape(ie)
308 zmaxe=
max(zz1,zz2)+gape(ie)
309 zmine=
min(zz1,zz2)-gape(ie)
315 ix1=int(nbx*(xmine-aaa-xminb)/(xmaxb-xminb))
316 iy1=int(nby*(ymine-aaa-yminb)/(ymaxb-yminb))
317 iz1=int(nbz*(zmine-aaa-zminb)/(zmaxb-zminb))
323 ix2=int(nbx*(xmaxe+aaa-xminb)/(xmaxb-xminb))
324 iy2=int(nby*(ymaxe+aaa-yminb)/(ymaxb-yminb))
325 iz2=int(nbz*(zmaxe+aaa-zminb)/(zmaxb-zminb))
subroutine spmd_tri25vox0_edge(x, bminmal, nrtm, stfe, marge, curv_max, gap_m, irect, gap, bgapsmx, pmax_gap, vmaxdt, bgapemx, iedge, igap0, ledge, nedge, nledge, gape, dgapload)
subroutine spmd_tri25vox0(x, bminmal, nrtm, stf, marge, curv_max, gap_m, irect, gap, bgapsmx, pmax_gap, vmaxdt, bgapemx, iedge, ledge, nedge, nledge, gape, drad, dgapload)