5 &(x,y,zf,npoin,xrelv,yrelv,zrelv,np,nbor,kp1bor,nptfr,dm)
52 INTEGER,
INTENT(IN) :: NPOIN,NP,NPTFR
53 INTEGER,
INTENT(IN) :: NBOR(nptfr),KP1BOR(nptfr)
54 DOUBLE PRECISION,
INTENT(IN) :: X(npoin),Y(npoin),DM
55 DOUBLE PRECISION,
INTENT(IN) :: XRELV(np),YRELV(np),ZRELV(np)
56 DOUBLE PRECISION,
INTENT(OUT) :: ZF(npoin)
62 DOUBLE PRECISION DIST1,DIST2,DIST3,DIST4
63 DOUBLE PRECISION ZCADR1,ZCADR2,ZCADR3,ZCADR4
64 DOUBLE PRECISION DIFX,DIFY,DIST,X1,Y1,X2,Y2,X3,Y3,X4,Y4
65 DOUBLE PRECISION ZNUM,ZDEN
67 LOGICAL OK1,OK2,OK3,OK4
98 dist = difx*difx + dify*dify
100 IF ( dist.LT.1.d-6 ) dist=1.d-6
102 IF( difx.LE.0.d0.AND.dify.LE.0.d0)
THEN 103 IF(dist.LE.dist1)
THEN 111 ELSE IF( difx.GE.0.d0.AND.dify.LE.0.d0)
THEN 112 IF(dist.LE.dist2)
THEN 120 ELSE IF( difx.GE.0.d0.AND.dify.GE.0.d0)
THEN 121 IF(dist.LE.dist3)
THEN 129 ELSE IF( difx.LE.0.d0.AND.dify.GE.0.d0)
THEN 130 IF(dist.LE.dist4)
THEN 142 IF(ok1)
CALL crosfr(x(i),y(i),x1,y1,x,y,npoin,nbor,kp1bor,
144 IF(ok2)
CALL crosfr(x(i),y(i),x2,y2,x,y,npoin,nbor,kp1bor,
146 IF(ok3)
CALL crosfr(x(i),y(i),x3,y3,x,y,npoin,nbor,kp1bor,
148 IF(ok4)
CALL crosfr(x(i),y(i),x4,y4,x,y,npoin,nbor,kp1bor,
155 znum = znum + zcadr1/dist1
156 zden = zden + 1.d0/dist1
160 znum = znum + zcadr2/dist2
161 zden = zden + 1.d0/dist2
165 znum = znum + zcadr3/dist3
166 zden = zden + 1.d0/dist3
170 znum = znum + zcadr4/dist4
171 zden = zden + 1.d0/dist4
subroutine fasp(X, Y, ZF, NPOIN, XRELV, YRELV, ZRELV, NP, NBOR, KP1BOR, NPTFR, DM)
subroutine crosfr(X, Y, XR, YR, XMAIL, YMAIL, NPMAX, NBOR, KP1BOR, NPTFR, DM, OK)