33       character*1 covered(ng,ng)
    35       character*20 sideload(*)
    37       integer ntr,i,j,k,l,mi(*),ntria,ntrib,
    38      &     ncovered,kontri(4,*),nloadtr(*),
    39      &     i1,j1,istart,iend,jstart,jend,imin,imid,imax,
    40      &     k1,kflag,
idist(*),ndist,i2,i3,ng,idi,idj,ntri,
    41      &     ix,iy,ntrit,limev,ier,nw,idata(1),ncalls,
    42      &     irowrad(*),jqrad(*),nzsrad,i0,nzsradv(3)
    44       real*8 w(239),vold(0:mi(2),*),co(3,*),xn(3),xxn,xy(ng),
    45      &     pmid(3,*),e3(4,*),e1(3,*),e2(3,*),p1(3),p2(3),p3(3),
    46      &     x,y,porigin(3),yqmin,yqmax,xqmin,anglemin,distance,
    47      &     xxmid,xqmax,dummy,a(3,3),b(3,3),c(3,3),ddd(3),p31(3),
    49      &     dirloc(3),
dist(*),area(*),dd,p21(3),sidemean,r(3,3),
    50      &     
fform,pl(2,3),epsabs,epsrel,abserr,q(3,3),
    51      &     rdata(21),factor,argument
    61       anglemin=dacos((ng/2.d0-1.d0)/(ng/2.d0))
    75          if(area(i).lt.1.d-20) cycle
    90             porigin(j)=co(j,i1)+vold(j,i1)
    91             p2(j)=co(j,i2)+vold(j,i2)
    92             p3(j)=co(j,i3)+vold(j,i3)
    93             p21(j)=p2(j)-porigin(j)
    94             p31(j)=p3(j)-porigin(j)
    98          pl(1,2)=dsqrt(p21(1)**2+p21(2)**2+p21(3)**2)
   100          pl(1,3)=p31(1)*e1(1,i)+p31(2)*e1(2,i)+p31(3)*e1(3,i)
   101          pl(2,3)=p31(1)*e2(1,i)+p31(2)*e2(2,i)+p31(3)*e2(3,i)
   114             if((kontri(1,j).eq.0).or.(area(j).lt.1.d-20).or.
   122             distance=dsqrt((pmid(1,j)-pmid(1,i))**2+
   123      &           (pmid(2,j)-pmid(2,i))**2+
   124      &           (pmid(3,j)-pmid(3,i))**2)
   125             if((pmid(1,j)*e3(1,i)+pmid(2,j)*e3(2,i)+
   126      &           pmid(3,j)*e3(3,i)+e3(4,i))/distance.le.anglemin) cycle
   127             if((pmid(1,i)*e3(1,j)+pmid(2,i)*e3(2,j)+
   128      &           pmid(3,i)*e3(3,j)+e3(4,j))/distance.le.anglemin) cycle
   135             if(sideload(nloadtr(idi))(18:20).ne.
   136      &           sideload(nloadtr(idj))(18:20)) cycle
   155             xy(i1)=((i1-0.5d0)*dint-1.d0)**2
   165                if(x+xy(j1).gt.1.d0) 
then   189                r(k,1)=co(k,kontri(1,j))+vold(k,kontri(1,j))-pmid(k,i)
   191             ddd(1)=dsqrt(r(1,1)*r(1,1)+r(2,1)*r(2,1)+r(3,1)*r(3,1))
   195             xq(1)=r(1,1)*e1(1,i)+r(2,1)*e1(2,i)+r(3,1)*e1(3,i)
   196             yq(1)=r(1,1)*e2(1,i)+r(2,1)*e2(2,i)+r(3,1)*e2(3,i)
   199                r(k,2)=co(k,kontri(2,j))+vold(k,kontri(2,j))-pmid(k,i)
   201             ddd(2)=dsqrt(r(1,2)*r(1,2)+r(2,2)*r(2,2)+r(3,2)*r(3,2))
   205             xq(2)=r(1,2)*e1(1,i)+r(2,2)*e1(2,i)+r(3,2)*e1(3,i)
   206             yq(2)=r(1,2)*e2(1,i)+r(2,2)*e2(2,i)+r(3,2)*e2(3,i)
   209                r(k,3)=co(k,kontri(3,j))+vold(k,kontri(3,j))-pmid(k,i)
   211             ddd(3)=dsqrt(r(1,3)*r(1,3)+r(2,3)*r(2,3)+r(3,3)*r(3,3))
   215             xq(3)=r(1,3)*e1(1,i)+r(2,3)*e1(2,i)+r(3,3)*e1(3,i)
   216             yq(3)=r(1,3)*e2(1,i)+r(2,3)*e2(2,i)+r(3,3)*e2(3,i)
   242             dirloc(1)=(xq(1)+xq(2)+xq(3))/3.d0
   243             dirloc(2)=(yq(1)+yq(2)+yq(3))/3.d0
   247             ix=int((dirloc(1)+1.d0)/dint)+1
   248             iy=int((dirloc(2)+1.d0)/dint)+1
   249             if(covered(ix,iy).eq.
'T') 
then   256                dir(k)=(pmid(k,j)-pmid(k,i))/
dist(k1)
   261             dirloc(3)=
dir(1)*e3(1,i)+
dir(2)*e3(2,i)+
dir(3)*e3(3,i)
   266             if(
dist(k1).le.factor*dsqrt(area(i))*dirloc(3)) 
then   272                      q(l,k)=co(l,kontri(k,j))+vold(l,kontri(k,j))
   310                call cubtri(
fform,pl,epsrel,limev,ftij,abserr,ncalls,
   311      &              w,nw,idata,rdata,ier)
   347             if(dabs(xq(2)-xq(1)).lt.1.d-5) xq(2)=xq(1)+1.d-5
   348             if(dabs(xq(2)-xq(1)).lt.1.d-5) xq(2)=xq(1)+1.d-5
   353             if(
dist(k1).gt.factor*dsqrt(area(i))*dirloc(3)) 
then   358                   xn(1)=r(2,k)*r(3,l)-r(2,l)*r(3,k)
   359                   xn(2)=r(3,k)*r(1,l)-r(3,l)*r(1,k)
   360                   xn(3)=r(1,k)*r(2,l)-r(1,l)*r(2,k)
   361                   xxn=dsqrt(xn(1)**2+xn(2)**2+xn(3)**2)
   369      &                 r(1,k)*r(1,l)+r(2,k)*r(2,l)+r(3,k)*r(3,l)
   372                   if(dabs(argument).gt.1.d0) 
then   373                      if(argument.gt.0.d0) 
then   382      &                 +e3(3,i)*xn(3))/xxn
   385                ftij=ftij*area(i)/2.d0
   391      &           idi,idj,ftij,i0,i0,nzsradv)          
   398                if(xq(k).lt.xqmin) 
then   402                if(xq(k).gt.xqmax) 
then   408             if(((imin.eq.1).and.(imax.eq.2)).or.
   409      &           ((imin.eq.2).and.(imax.eq.1))) 
then   412             elseif(((imin.eq.2).and.(imax.eq.3)).or.
   413      &              ((imin.eq.3).and.(imax.eq.2))) 
then   423             if(xxmid-xqmin.lt.1.d-5) 
then   427             if(xqmax-xxmid.lt.1.d-5) 
then   437             c(1,2)=yq(1)*xq(2)-xq(1)*yq(2)
   441             c(2,3)=yq(2)*xq(3)-xq(2)*yq(3)
   445             c(3,1)=yq(3)*xq(1)-xq(3)*yq(1)
   457             istart=int((xqmin+1.d0+dint/2.d0)/dint)+1
   458             iend=int((xxmid+1.d0+dint/2.d0)/dint)
   460                x=dint*(i1-0.5d0)-1.d0
   461                yqmin=-(a(imin,imid)*x+c(imin,imid))/b(imin,imid)
   462                yqmax=-(a(imin,imax)*x+c(imin,imax))/b(imin,imax)
   463                if(yqmin.gt.yqmax) 
then   468                jstart=int((yqmin+1.d0+dint/2.d0)/dint)+1
   469                jend=int((yqmax+1.d0+dint/2.d0)/dint)
   473                ncovered=ncovered+jend-jstart+1
   476             istart=int((xxmid+1.d0+dint/2.d0)/dint)+1
   477             iend=int((xqmax+1.d0+dint/2.d0)/dint)
   479                x=dint*(i1-0.5d0)-1.d0
   480                yqmin=-(a(imid,imax)*x+c(imid,imax))/b(imid,imax)
   481                yqmax=-(a(imin,imax)*x+c(imin,imax))/b(imin,imax)
   482                if(yqmin.gt.yqmax) 
then   487                jstart=int((yqmin+1.d0+dint/2.d0)/dint)+1
   488                jend=int((yqmax+1.d0+dint/2.d0)/dint)
   492                ncovered=ncovered+jend-jstart+1
   494             if(ncovered.eq.ng*ng)
exit subroutine dir(N, B, X, NELT, IA, JA, A, ISYM, MATVEC, MSOLVE, ITOL, TOL, ITMAX, ITER, ERR, IERR, IUNIT, R, Z, DZ, RWORK, IWORK)
Definition: dir.f:5
 
subroutine cubtri(F, T, EPS, MCALLS, ANS, ERR, NCALLS, W, NW, IDATA, RDATA, IER)
Definition: cubtri.f:7
 
static ITG * idist
Definition: radflowload.c:39
 
static double * dist
Definition: radflowload.c:42
 
static double * adview
Definition: radflowload.c:42
 
real *8 function fform(x, y, idata, rdata)
Definition: calcview.f:505
 
subroutine add_sm_st_as(au, ad, jq, irow, i, j, value, i0, i1, nzs)
Definition: add_sm_st_as.f:20
 
subroutine dsort(dx, iy, n, kflag)
Definition: dsort.f:6
 
static double * auview
Definition: radflowload.c:42