27       integer nterms,i,j,k,imin,jmin,kmin,kflag,n,iy
    29       real*8 ratio(20),pneigh(3,20),pnode(3),dummy,
    30      &  a(-1:1,-1:1,-1:1),xi(-1:1,-1:1,-1:1),et(-1:1,-1:1,-1:1),p(3),
    31      &  aold(-1:1,-1:1,-1:1),ze(-1:1,-1:1,-1:1),zeold(-1:1,-1:1,-1:1),
    32      &  xiold(-1:1,-1:1,-1:1),etold(-1:1,-1:1,-1:1),distmin,xiopt,etopt,
    33      &  d1,d2,d3,d4,
dist,xil,etl,zel,zeopt,dx(3),al
    35       intent(in) pneigh,nterms
    37       intent(inout) xil,etl,zel,
dist,pnode,ratio
    59               call distattach_3d(xi(i,j,k),et(i,j,k),ze(i,j,k),pneigh,
    60      &                        pnode,a(i,j,k),p,ratio,nterms)
    79                 if(a(i,j,k).lt.distmin) 
then    94         if((imin.eq.0).and.(jmin.eq.0).and.(kmin.eq.0)) 
exit   100                 xiold(i,j,k)=xi(i,j,k)
   101                 etold(i,j,k)=et(i,j,k)
   102                 zeold(i,j,k)=ze(i,j,k)
   110                 if((i+imin.ge.-1).and.(i+imin.le.1).and.
   111      &             (j+jmin.ge.-1).and.(j+jmin.le.1).and.
   112      &             (k+kmin.ge.-1).and.(k+kmin.le.1)) 
then   113                    a(i,j,k)=aold(i+imin,j+jmin,k+kmin)
   114                    xi(i,j,k)=xiold(i+imin,j+jmin,k+kmin)
   115                    et(i,j,k)=etold(i+imin,j+jmin,k+kmin)
   116                    ze(i,j,k)=zeold(i+imin,j+jmin,k+kmin)
   118                    xi(i,j,k)=xi(i,j,k)+imin*d1
   119                    et(i,j,k)=et(i,j,k)+jmin*d1
   120                    ze(i,j,k)=ze(i,j,k)+kmin*d1
   122                    xi(i,j,k)=
min(xi(i,j,k),1.d0)
   123                    xi(i,j,k)=
max(xi(i,j,k),-1.d0)
   124                    et(i,j,k)=
min(et(i,j,k),1.d0)
   125                    et(i,j,k)=
max(et(i,j,k),-1.d0)
   126                    ze(i,j,k)=
min(ze(i,j,k),1.d0)
   127                    ze(i,j,k)=
max(ze(i,j,k),-1.d0)
   131      &                  pnode,a(i,j,k),p,ratio,nterms)
   153               xi(i,j,k)=
min(xi(i,j,k),1.d0)
   154               xi(i,j,k)=
max(xi(i,j,k),-1.d0)
   155               et(i,j,k)=
min(et(i,j,k),1.d0)
   156               et(i,j,k)=
max(et(i,j,k),-1.d0)
   157               ze(i,j,k)=
min(ze(i,j,k),1.d0)
   158               ze(i,j,k)=
max(ze(i,j,k),-1.d0)
   159               call distattach_3d(xi(i,j,k),et(i,j,k),ze(i,j,k),pneigh,
   160      &             pnode,a(i,j,k),p,ratio,nterms)
   175                 if(a(i,j,k).lt.distmin) 
then   188         if((imin.eq.0).and.(jmin.eq.0).and.(kmin.eq.0)) 
exit   194                 xiold(i,j,k)=xi(i,j,k)
   195                 etold(i,j,k)=et(i,j,k)
   196                 zeold(i,j,k)=ze(i,j,k)
   204                 if((i+imin.ge.-1).and.(i+imin.le.1).and.
   205      &             (j+jmin.ge.-1).and.(j+jmin.le.1).and.
   206      &             (k+kmin.ge.-1).and.(k+kmin.le.1)) 
then   207                    a(i,j,k)=aold(i+imin,j+jmin,k+kmin)
   208                    xi(i,j,k)=xiold(i+imin,j+jmin,k+kmin)
   209                    et(i,j,k)=etold(i+imin,j+jmin,k+kmin)
   210                    ze(i,j,k)=zeold(i+imin,j+jmin,k+kmin)
   212                    xi(i,j,k)=xi(i,j,k)+imin*d2
   213                    et(i,j,k)=et(i,j,k)+jmin*d2
   214                    ze(i,j,k)=ze(i,j,k)+kmin*d2
   216                    xi(i,j,k)=
min(xi(i,j,k),1.d0)
   217                    xi(i,j,k)=
max(xi(i,j,k),-1.d0)
   218                    et(i,j,k)=
min(et(i,j,k),1.d0)
   219                    et(i,j,k)=
max(et(i,j,k),-1.d0)
   220                    ze(i,j,k)=
min(ze(i,j,k),1.d0)
   221                    ze(i,j,k)=
max(ze(i,j,k),-1.d0)
   225      &                  pnode,a(i,j,k),p,ratio,nterms)
   245               xi(i,j,k)=
min(xi(i,j,k),1.d0)
   246               xi(i,j,k)=
max(xi(i,j,k),-1.d0)
   247               et(i,j,k)=
min(et(i,j,k),1.d0)
   248               et(i,j,k)=
max(et(i,j,k),-1.d0)
   249               ze(i,j,k)=
min(ze(i,j,k),1.d0)
   250               ze(i,j,k)=
max(ze(i,j,k),-1.d0)
   251               call distattach_3d(xi(i,j,k),et(i,j,k),ze(i,j,k),pneigh,
   252      &             pnode,a(i,j,k),p,ratio,nterms)
   267                 if(a(i,j,k).lt.distmin) 
then   280         if((imin.eq.0).and.(jmin.eq.0).and.(kmin.eq.0)) 
exit   286                 xiold(i,j,k)=xi(i,j,k)
   287                 etold(i,j,k)=et(i,j,k)
   288                 zeold(i,j,k)=ze(i,j,k)
   296                 if((i+imin.ge.-1).and.(i+imin.le.1).and.
   297      &               (j+jmin.ge.-1).and.(j+jmin.le.1).and.
   298      &               (k+kmin.ge.-1).and.(k+kmin.le.1)) 
then   299                    a(i,j,k)=aold(i+imin,j+jmin,k+kmin)
   300                    xi(i,j,k)=xiold(i+imin,j+jmin,k+kmin)
   301                    et(i,j,k)=etold(i+imin,j+jmin,k+kmin)
   302                    ze(i,j,k)=zeold(i+imin,j+jmin,k+kmin)
   304                    xi(i,j,k)=xi(i,j,k)+imin*d3
   305                    et(i,j,k)=et(i,j,k)+jmin*d3
   306                    ze(i,j,k)=ze(i,j,k)+kmin*d3
   308                    xi(i,j,k)=
min(xi(i,j,k),1.d0)
   309                    xi(i,j,k)=
max(xi(i,j,k),-1.d0)
   310                    et(i,j,k)=
min(et(i,j,k),1.d0)
   311                    et(i,j,k)=
max(et(i,j,k),-1.d0)
   312                    ze(i,j,k)=
min(ze(i,j,k),1.d0)
   313                    ze(i,j,k)=
max(ze(i,j,k),-1.d0)
   317      &                  pnode,a(i,j,k),p,ratio,nterms)
   337               xi(i,j,k)=
min(xi(i,j,k),1.d0)
   338               xi(i,j,k)=
max(xi(i,j,k),-1.d0)
   339               et(i,j,k)=
min(et(i,j,k),1.d0)
   340               et(i,j,k)=
max(et(i,j,k),-1.d0)
   341               ze(i,j,k)=
min(ze(i,j,k),1.d0)
   342               ze(i,j,k)=
max(ze(i,j,k),-1.d0)
   343               call distattach_3d(xi(i,j,k),et(i,j,k),ze(i,j,k),pneigh,
   344      &           pnode,a(i,j,k),p,ratio,nterms)
   359                 if(a(i,j,k).lt.distmin) 
then   372         if((imin.eq.0).and.(jmin.eq.0).and.(kmin.eq.0)) 
exit   378                 xiold(i,j,k)=xi(i,j,k)
   379                 etold(i,j,k)=et(i,j,k)
   380                 zeold(i,j,k)=ze(i,j,k)
   388                 if((i+imin.ge.-1).and.(i+imin.le.1).and.
   389      &               (j+jmin.ge.-1).and.(j+jmin.le.1).and.
   390      &               (k+kmin.ge.-1).and.(k+kmin.le.1)) 
then   391                    a(i,j,k)=aold(i+imin,j+jmin,k+kmin)
   392                    xi(i,j,k)=xiold(i+imin,j+jmin,k+kmin)
   393                    et(i,j,k)=etold(i+imin,j+jmin,k+kmin)
   394                    ze(i,j,k)=zeold(i+imin,j+jmin,k+kmin)
   396                    xi(i,j,k)=xi(i,j,k)+imin*d4
   397                    et(i,j,k)=et(i,j,k)+jmin*d4
   398                    ze(i,j,k)=ze(i,j,k)+kmin*d4
   400                    xi(i,j,k)=
min(xi(i,j,k),1.d0)
   401                    xi(i,j,k)=
max(xi(i,j,k),-1.d0)
   402                    et(i,j,k)=
min(et(i,j,k),1.d0)
   403                    et(i,j,k)=
max(et(i,j,k),-1.d0)
   404                    ze(i,j,k)=
min(ze(i,j,k),1.d0)
   405                    ze(i,j,k)=
max(ze(i,j,k),-1.d0)
   409      &                  pnode,a(i,j,k),p,ratio,nterms)
   417       call distattach_3d(xi(0,0,0),et(0,0,0),ze(0,0,0),pneigh,pnode,
   418      &     a(0,0,0),p,ratio,nterms)
   426       if((nterms.eq.20).or.(nterms.eq.8)) 
then   430       elseif((nterms.eq.4).or.(nterms.eq.10)) 
then   431          xil=(xi(0,0,0)+1.d0)/2.d0
   432          etl=(et(0,0,0)+1.d0)/2.d0
   433          zel=(ze(0,0,0)+1.d0)/2.d0
   437          call dsort(dx,iy,n,kflag)
   438          if(dx(3).gt.1.d-30) 
then   439             al=dx(3)/(xil+etl+zel)
   450       elseif((nterms.eq.6).or.(nterms.eq.15)) 
then   451          xil=(xi(0,0,0)+1.d0)/2.d0
   452          etl=(et(0,0,0)+1.d0)/2.d0
   453          if(xil+etl.gt.1.d0) 
then #define max(a, b)
Definition: cascade.c:32
 
#define min(a, b)
Definition: cascade.c:31
 
static double * dist
Definition: radflowload.c:42
 
subroutine dsort(dx, iy, n, kflag)
Definition: dsort.f:6
 
subroutine distattach_3d(xig, etg, zeg, pneigh, pnode, a, p, ratio, nterms)
Definition: distattach_3d.f:21