C^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 5/1, 2009 SUBROUTINE KBINT C^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ IMPLICIT REAL(A-H,O-Y) IMPLICIT COMPLEX(Z) INCLUDE 'PACVPP' CCC!$OMP THREADPRIVATE( /PSSNL/, /DIV/, /WORK8/, /XY123/ ) C!$OMP THREADPRIVATE( /PSSNL/ ) C DIMENSION XL(KNG1),YL1(KNG1),YL2(KNG1),YL3(KNG1) & , YL4(KNG1),YLD(KNG1) & ,QLX(KNG1),QLY(KNG1),QLZ(KNG1) & ,QLA1(KNG1),QLA2(KNG1),QLA3(KNG1) & ,QLA4(KNG1),QLA5(KNG1) & ,ALK2(KNG1) DIMENSION SNP(KNG1,KNV3,KTYP,10) & ,SNP2(KNG1,KNV3,KTYP,9) & ,SNP3(KNG1,KNV3,KTYP,4) CX,Y1,Y2,Y3,Y4,YD,QX,QY,QZ, QA1,QA2,QA3,QA4,QA5, AK2 C C K-B TYPE ADDITION C INTEGRATION OF K-B TYPE POTENTIAL C MODIFIED TO STRESS CALCULATION FOR KB-SEPARABLE FORM C NSEK=2 CO0=DSQRT(2.0D0) CO1=DSQRT(3.0D0) SC=DSQRT(PAI4) PC=DSQRT(3.0D0*PAI4) DC=DSQRT(5.0D0*PAI4) C C WRITE (6,*) 'CHECK POINT 0 IN KBINT' C C DO 1003 IK=1,KV3 C WRITE (6,*) 'CHECK POINT 01 IN KBINT, IK = ',IK C AKX = VX(IK) C AKY = VY(IK) C AKZ = VZ(IK) C C DO 1004 I=1,KNG1 C RAK(I,IK) = 0.0D0 C 1004 CONTINUE C IIBA = IBA(IK) C DO 1005 I=1,IBA(IK) C RK=SQRT((AKX+GX(NBASE(I,IK)))**2 C & +(AKY+GY(NBASE(I,IK)))**2 + (AKZ+GZ(NBASE(I,IK)))**2 ) C IF (RK.NE.0.0D0) THEN C RAK(I,IK)=1.0D0/RK C ELSE C RAK(I,IK)=0.0D0 C END IF C 1005 CONTINUE C 1003 CONTINUE C !$OMP PARALLEL DEFAULT(NONE) C!$OMP& COPYIN( SNL,SNL2,SNL3 ) !$OMP& FIRSTPRIVATE( NSEK, CO1, SC,PC,DC ) !$OMP& PRIVATE(XL,YL1,YL2,YL3,YL4,YLD,QLX,QLY,QLZ, !$OMP& QLA1,QLA2,QLA3,QLA4,QLA5, ALK2, !$OMP& AKX,AKY,AKZ, R, RK, IIBA, !$OMP& FACS,FACP,FACD, FAC1,FAC2,FAC3 ) !$OMP& SHARED( KV3, RAK, SNP,SNP2,SNP3, !$OMP& VX,VY,VZ,IBA,NBASE, !$OMP& MESHR,WVS,WVP,WVD, DX,RAD, OMO, !$OMP& GX,GY,GZ, NLSPD ) !$OMP DO DO 1006 NNN=1,KV3 C WRITE (6,*) 'CHECK POINT 1 IN KBINT, NNN,DX = ',NNN,DX AKX = VX(NNN) AKY = VY(NNN) AKZ = VZ(NNN) C DO 1225 I = 1,KNG1 C XL(I) = 0.0D0 C YL1(I) = 0.0D0 C YL2(I) = 0.0D0 C YL3(I) = 0.0D0 C YL4(I) = 0.0D0 C YLD(I) = 0.0D0 C QLX(I) = 0.0D0 C QLY(I) = 0.0D0 C QLZ(I) = 0.0D0 C QLA1(I) = 0.0D0 C QLA2(I) = 0.0D0 C QLA3(I) = 0.0D0 C QLA4(I) = 0.0D0 C QLA5(I) = 0.0D0 C ALK2(I) = 0.0D0 C 1225 CONTINUE C IIBA = IBA(NNN) DO 1004 I=1,KNG1 RAK(I,NNN) = 0.0D0 1004 CONTINUE DO 1005 I=1,IBA(NNN) RK=SQRT((AKX+GX(NBASE(I,NNN)))**2 & +(AKY+GY(NBASE(I,NNN)))**2 + (AKZ+GZ(NBASE(I,NNN)))**2 ) IF (RK.NE.0.0D0) THEN RAK(I,NNN)=1.0D0/RK ELSE RAK(I,NNN)=0.0D0 END IF 1005 CONTINUE C WRITE (6,*) 'CHECK POINT 2 IN KBINT, NNN = ',NNN IIBA = IBA(NNN) C DO 7500 J =1,IIBA QLX(J)=AKX+GX(NBASE(J,NNN)) QLY(J)=AKY+GY(NBASE(J,NNN)) QLZ(J)=AKZ+GZ(NBASE(J,NNN)) QLA1(J)=0.5D0*(2.0D0*QLZ(J)*QLZ(J)-QLX(J)*QLX(J)-QLY(J)*QLY(J)) QLA2(J)=0.5D0*CO1*(QLX(J)*QLX(J)-QLY(J)*QLY(J)) QLA3(J)=CO1*QLX(J)*QLY(J) QLA4(J)=CO1*QLX(J)*QLZ(J) QLA5(J)=CO1*QLY(J)*QLZ(J) ALK2(J) = SQRT( QLX(J)**2 + QLY(J)**2 + QLZ(J)**2 ) 7500 CONTINUE C DO 7300 ITY=1,KTYP C ATTN] IL=1,4 (S,P ONLY) DO 7311 KN=1,KNG1 SNP(KN,NNN,ITY,1)=0.0D0 SNP(KN,NNN,ITY,2)=0.0D0 SNP(KN,NNN,ITY,3)=0.0D0 SNP(KN,NNN,ITY,4)=0.0D0 SNP2(KN,NNN,ITY,1)=0.0D0 SNP2(KN,NNN,ITY,2)=0.0D0 SNP2(KN,NNN,ITY,3)=0.0D0 SNP2(KN,NNN,ITY,4)=0.0D0 SNP3(KN,NNN,ITY,1)=0.0D0 7311 CONTINUE C DO 7320 N=1,MESHR R=RAD(N) FACS= OMO(N)*WVS(N,ITY)*R**NSEK*SC*DX FACP= OMO(N)*WVP(N,ITY)*R**NSEK*PC*DX FAC1=-OMO(N)*WVS(N,ITY)*R**(NSEK+1)*SC*DX FAC2= OMO(N)*WVP(N,ITY)*R**(NSEK+1)*PC*DX DO 7777 KN=1,IIBA XL(KN)=ALK2(KN)*R 7777 CONTINUE CALL DSJNV(0,IIBA,XL,YL1) CALL DSJNV(1,IIBA,XL,YL2) CALL DSJNV(2,IIBA,XL,YL3) DO 7878 KN=1,IIBA YL3(KN)=(YL1(KN)-2.0D0*YL3(KN))/3.0D0 7878 CONTINUE DO 7330 KN=1,IIBA C RKS(N)=$DMSJM(0,AK2(KN)*RAD(N)) SNP(KN,NNN,ITY,1) =SNP(KN,NNN,ITY,1) +FACS*YL1(KN) SNP(KN,NNN,ITY,2) =SNP(KN,NNN,ITY,2) & +FACP*YL2(KN)*QLX(KN)*RAK(KN,NNN) SNP(KN,NNN,ITY,3) =SNP(KN,NNN,ITY,3) & +FACP*YL2(KN)*QLY(KN)*RAK(KN,NNN) SNP(KN,NNN,ITY,4) =SNP(KN,NNN,ITY,4) & +FACP*YL2(KN)*QLZ(KN)*RAK(KN,NNN) SNP2(KN,NNN,ITY,1) =SNP2(KN,NNN,ITY,1)+FAC1*YL2(KN) SNP2(KN,NNN,ITY,2) =SNP2(KN,NNN,ITY,2) & +FAC2*YL3(KN)*QLX(KN)*RAK(KN,NNN) SNP2(KN,NNN,ITY,3) =SNP2(KN,NNN,ITY,3) & +FAC2*YL3(KN)*QLY(KN)*RAK(KN,NNN) SNP2(KN,NNN,ITY,4) =SNP2(KN,NNN,ITY,4) & +FAC2*YL3(KN)*QLZ(KN)*RAK(KN,NNN) SNP3(KN,NNN,ITY,1) =SNP3(KN,NNN,ITY,1)+FACP*YL2(KN) 7330 CONTINUE 7320 CONTINUE C IF (NLSPD(ITY).EQ.2) THEN C DO 7314 KN=1,KNG1 SNP(KN,NNN,ITY,5)=0.0D0 SNP(KN,NNN,ITY,6)=0.0D0 SNP(KN,NNN,ITY,7)=0.0D0 SNP(KN,NNN,ITY,8)=0.0D0 SNP(KN,NNN,ITY,9)=0.0D0 SNP(KN,NNN,ITY,10)=0.0D0 SNP2(KN,NNN,ITY,5)=0.0D0 SNP2(KN,NNN,ITY,6)=0.0D0 SNP2(KN,NNN,ITY,7)=0.0D0 SNP2(KN,NNN,ITY,8)=0.0D0 SNP2(KN,NNN,ITY,9)=0.0D0 SNP3(KN,NNN,ITY,2)=0.0D0 SNP3(KN,NNN,ITY,3)=0.0D0 SNP3(KN,NNN,ITY,4)=0.0D0 7314 CONTINUE C DO 7321 N=1,MESHR R=RAD(N) FACS= OMO(N)*WVS(N,ITY)*R**NSEK*SC*DX FACP= OMO(N)*WVP(N,ITY)*R**NSEK*PC*DX FACD= OMO(N)*WVD(N,ITY)*R**NSEK*DC*DX FAC1=-OMO(N)*WVS(N,ITY)*R**(NSEK+1)*SC*DX FAC2= OMO(N)*WVP(N,ITY)*R**(NSEK+1)*PC*DX FAC3= OMO(N)*WVD(N,ITY)*R**(NSEK+1)*DC*DX DO 8778 KN=1,IIBA XL(KN)=ALK2(KN)*R 8778 CONTINUE CALL DSJNV(0,IIBA,XL,YL1) CALL DSJNV(1,IIBA,XL,YL2) CALL DSJNV(2,IIBA,XL,YL3) CALL DSJNV(3,IIBA,XL,YL4) DO 7788 KN=1,IIBA YLD(KN)= YL3(KN) YL3(KN)=(YL1(KN)-2.0D0*YL3(KN))/3.0D0 YL4(KN)=(2.0D0*YL2(KN)-3.0D0*YL4(KN))/5.0D0 7788 CONTINUE DO 7331 KN=1,IIBA C ATTN] FOR SSL2 (IN ISSP) C---*----1----*----2----*----3----*----4----*----5----*----6----*----7 SNP(KN,NNN,ITY,5) =SNP(KN,NNN,ITY,5) & +FACD*YLD(KN)*QLA1(KN)*RAK(KN,NNN)*RAK(KN,NNN) SNP(KN,NNN,ITY,6) =SNP(KN,NNN,ITY,6) & +FACD*YLD(KN)*QLA2(KN)*RAK(KN,NNN)*RAK(KN,NNN) SNP(KN,NNN,ITY,7) =SNP(KN,NNN,ITY,7) & +FACD*YLD(KN)*QLA3(KN)*RAK(KN,NNN)*RAK(KN,NNN) SNP(KN,NNN,ITY,8) =SNP(KN,NNN,ITY,8) & +FACD*YLD(KN)*QLA4(KN)*RAK(KN,NNN)*RAK(KN,NNN) SNP(KN,NNN,ITY,9) =SNP(KN,NNN,ITY,9) & +FACD*YLD(KN)*QLA5(KN)*RAK(KN,NNN)*RAK(KN,NNN) SNP(KN,NNN,ITY,10)=SNP(KN,NNN,ITY,10)+FACD*YLD(KN) SNP2(KN,NNN,ITY,5)=SNP2(KN,NNN,ITY,5) & +FAC3*YL4(KN)*QLA1(KN)*RAK(KN,NNN)*RAK(KN,NNN) SNP2(KN,NNN,ITY,6)=SNP2(KN,NNN,ITY,6) & +FAC3*YL4(KN)*QLA2(KN)*RAK(KN,NNN)*RAK(KN,NNN) SNP2(KN,NNN,ITY,7)=SNP2(KN,NNN,ITY,7) & +FAC3*YL4(KN)*QLA3(KN)*RAK(KN,NNN)*RAK(KN,NNN) SNP2(KN,NNN,ITY,8)=SNP2(KN,NNN,ITY,8) & +FAC3*YL4(KN)*QLA4(KN)*RAK(KN,NNN)*RAK(KN,NNN) SNP2(KN,NNN,ITY,9)=SNP2(KN,NNN,ITY,9) & +FAC3*YL4(KN)*QLA5(KN)*RAK(KN,NNN)*RAK(KN,NNN) SNP3(KN,NNN,ITY,2)=SNP3(KN,NNN,ITY,2)+CO1*FACD*QLX(KN)*YLD(KN) & *RAK(KN,NNN) SNP3(KN,NNN,ITY,3)=SNP3(KN,NNN,ITY,3)+CO1*FACD*QLY(KN)*YLD(KN) & *RAK(KN,NNN) SNP3(KN,NNN,ITY,4)=SNP3(KN,NNN,ITY,4)+CO1*FACD*QLZ(KN)*YLD(KN) & *RAK(KN,NNN) 7331 CONTINUE 7321 CONTINUE END IF 7300 CONTINUE 1006 CONTINUE !$OMP END DO !$OMP END PARALLEL C C!$OMP DO DO 4000 NNN=1,KV3 C WRITE (6,*) 'CHECK POINT 3 IN KBINT, NNN,DX = ',NNN DO 4010 ITY=1,KTYP DO 7351 KN=1,KNG1 SNL(KN,NNN,ITY,1)=SNP(KN,NNN,ITY,1) SNL(KN,NNN,ITY,2)=SNP(KN,NNN,ITY,2) SNL(KN,NNN,ITY,3)=SNP(KN,NNN,ITY,3) SNL(KN,NNN,ITY,4)=SNP(KN,NNN,ITY,4) SNL2(KN,NNN,ITY,1)=SNP2(KN,NNN,ITY,1) SNL2(KN,NNN,ITY,2)=SNP2(KN,NNN,ITY,2) SNL2(KN,NNN,ITY,3)=SNP2(KN,NNN,ITY,3) SNL2(KN,NNN,ITY,4)=SNP2(KN,NNN,ITY,4) SNL3(KN,NNN,ITY,1)=SNP3(KN,NNN,ITY,1) 7351 CONTINUE C IF (NLSPD(ITY).EQ.2) THEN C WRITE (6,*) 'CHECK POINT 4 IN KBINT' DO 7354 KN=1,KNG1 SNL(KN,NNN,ITY,5)=SNP(KN,NNN,ITY,5) SNL(KN,NNN,ITY,6)=SNP(KN,NNN,ITY,6) SNL(KN,NNN,ITY,7)=SNP(KN,NNN,ITY,7) SNL(KN,NNN,ITY,8)=SNP(KN,NNN,ITY,8) SNL(KN,NNN,ITY,9)=SNP(KN,NNN,ITY,9) SNL(KN,NNN,ITY,10)=SNP(KN,NNN,ITY,10) SNL2(KN,NNN,ITY,5)=SNP2(KN,NNN,ITY,5) SNL2(KN,NNN,ITY,6)=SNP2(KN,NNN,ITY,6) SNL2(KN,NNN,ITY,7)=SNP2(KN,NNN,ITY,7) SNL2(KN,NNN,ITY,8)=SNP2(KN,NNN,ITY,8) SNL2(KN,NNN,ITY,9)=SNP2(KN,NNN,ITY,9) SNL3(KN,NNN,ITY,2)=SNP3(KN,NNN,ITY,2) SNL3(KN,NNN,ITY,3)=SNP3(KN,NNN,ITY,3) SNL3(KN,NNN,ITY,4)=SNP3(KN,NNN,ITY,4) 7354 CONTINUE END IF 4010 CONTINUE 4000 CONTINUE C!$OMP END DO C!$OMP END PARALLEL C RETURN END