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
94 sh_edge =iedge-10*sol_edge
111 IF(stf(ne) <= zero)cycle
112 aaa = marge+curv_max(ne)+vmaxdt
113 + +
max(
max(pmax_gap,bgapsmx+gap_m(ne))+dgapload,drad)
117 IF(sol_edge > 0) aaa =
max(aaa,marge+bgapemx+dgapload)
131 xmaxe=
max(xx1,xx2,xx3,xx4)
132 xmine=
min(xx1,xx2,xx3,xx4)
138 ymaxe=
max(yy1,yy2,yy3,yy4)
139 ymine=
min(yy1,yy2,yy3,yy4)
145 zmaxe=
max(zz1,zz2,zz3,zz4)
146 zmine=
min(zz1,zz2,zz3,zz4)
148 IF(sol_edge > 0 )
THEN
149 dx=em02*(xmaxe-xmine)
150 dy=em02*(ymaxe-ymine)
151 dz=em02*(zmaxe-zmine)
162 ix1=int(nbx*(xmine-aaa-xminb)/(xmaxb-xminb))
163 iy1=int(nby*(ymine-aaa-yminb)/(ymaxb-yminb))
164 iz1=int(nbz*(zmine-aaa-zminb)/(zmaxb-zminb))
170 ix2=int(nbx*(xmaxe+aaa-xminb)/(xmaxb-xminb))
171 iy2=int(nby*(ymaxe+aaa-yminb)/(ymaxb-yminb))
172 iz2=int(nbz*(zmaxe+aaa-zminb)/(zmaxb-zminb))
202 1 X ,BMINMAL ,NRTM ,STFE ,MARGE ,
203 2 CURV_MAX,GAP_M ,IRECT ,GAP ,BGAPSMX,
204 3 PMAX_GAP,VMAXDT,BGAPEMX, IEDGE,IGAP0 ,
205 4 LEDGE, NEDGE, NLEDGE,
215#include "implicit_f.inc"
216#include "comlock.inc"
224 INTEGER,
INTENT(IN) :: NRTM
225 INTEGER,
INTENT(IN) :: NLEDGE
226 INTEGER,
INTENT(IN) :: NEDGE
227 INTEGER,
INTENT(IN) :: IEDGE, IGAP0
228 INTEGER,
INTENT(IN) :: LEDGE(NLEDGE,NEDGE)
229 INTEGER IRECT(4,NRTM)
231 . X(3,*), BMINMAL(*),
232 . STFE(NEDGE), GAP_M(*), BGAPSMX,PMAX_GAP,VMAXDT,
233 . MARGE,GAP,CURV_MAX(NRTM),
236 my_real ,
INTENT(IN) :: dgapload
241 . NBX,NBY,NBZ,NE,M1,M2,M3,M4,
242 . IX1,IY1,IZ1,IX2,IY2,IZ2,IX,IY,IZ
245 . xmaxb,ymaxb,zmaxb,xminb,yminb,zminb,
246 . xmine,ymine,zmine,xmaxe,ymaxe,zmaxe,
247 . xx1,xx2,xx3,xx4,yy1,yy2,yy3,yy4,zz1,zz2,zz3,zz4
249 INTEGER :: SOL_EDGE,SH_EDGE
263 sh_edge =iedge-10*sol_edge
281 IF(stfe(ie) <= zero ) cycle
282 IF(ledge(9,ie) == 0) cycle
306 xmaxe=
max(xx1,xx2)+gape(ie)
307 xmine=
min(xx1,xx2)-gape(ie)
308 ymaxe=
max(yy1,yy2)+gape(ie)
309 ymine=
min(yy1,yy2)-gape(ie)
310 zmaxe=
max(zz1,zz2)+gape(ie)
311 zmine=
min(zz1,zz2)-gape(ie)
317 ix1=int(nbx*(xmine-aaa-xminb)/(xmaxb-xminb))
318 iy1=int(nby*(ymine-aaa-yminb)/(ymaxb-yminb))
319 iz1=int(nbz*(zmine-aaa-zminb)/(zmaxb-zminb))
325 ix2=int(nbx*(xmaxe+aaa-xminb)/(xmaxb-xminb))
326 iy2=int(nby*(ymaxe+aaa-yminb)/(ymaxb-yminb))
327 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)