📄 dadi-fdtd.f90
字号:
Ccc=1.+Sigmh*Dt/4.
Chh1=1.-Sigmh*Dt/4.; Chh1=Chh1/Ccc
Che1=SS; Che1=Che1/Ccc
n=Object(i,j,k-1,8); Sigmh=CMedia(n,3)
Ccc=1.+Sigmh*Dt/4.
Chh2=1.-Sigmh*Dt/4.; Chh2=Chh2/Ccc
Che2=SS; Che2=Che2/Ccc
IF(K.NE.Kmin+1) Az(KK)=-Ceh*Che2
IF(K.NE.Kmax-1) Cz(KK)=-Ceh*Che1
Bz(KK)=1.+Ceh*(Che1+Che2)
THx1=(Chh1*Hxz(i,j,k)+Che1*(Eyx(i,j,k+1)-Eyx(i,j,k)))+Hxy(i,j,k)
THx2=(Chh2*Hxz(i,j,k-1)+Che2*(Eyx(i,j,k)-Eyx(i,j,k-1)))+Hxy(i,j,k-1)
Rz(KK)=Cee*Eyz(i,j,k)+Ceh*(THx1-THx2)
IF(Condition(1).AND.Condition(2)) THEN
SELECTCASE(K)
CASE(KCmin-1)
Z=FLOAT(K+1); T1=X*Sxi*Cpi+Y*Sxi*Spi+Z*Cxi
T1=Time3-(T1-Source)/S; CALL IncWave(S1,T1); S1=S1*Cin(2)
Rz(KK)=Rz(KK)-SS*SS*S1
CASE(KCmin)
Z=FLOAT(K); T1=X*Sxi*Cpi+Y*Sxi*Spi+Z*Cxi
T1=Time3-(T1-Source)/S; CALL IncWave(S1,T1); S1=S1*Cin(2)
Z=FLOAT(K)-0.5; T2=X*Sxi*Cpi+Y*Sxi*Spi+Z*Cxi
T2=Time3-(T2-Source)/S; CALL IncWave(S2,T2); S2=S2*Cin(4)
Rz(KK)=Rz(KK)+SS*(SS*S1-S2)
CASE(KCmax)
Z=FLOAT(K); T1=X*Sxi*Cpi+Y*Sxi*Spi+Z*Cxi
T1=Time3-(T1-Source)/S; CALL IncWave(S1,T1); S1=S1*Cin(2)
Z=FLOAT(K)+0.5; T2=X*Sxi*Cpi+Y*Sxi*Spi+Z*Cxi
T2=Time3-(T2-Source)/S; CALL IncWave(S2,T2); S2=S2*Cin(4)
Rz(KK)=Rz(KK)+SS*(SS*S1+S2)
CASE(KCmax+1)
Z=FLOAT(K-1); T1=X*Sxi*Cpi+Y*Sxi*Spi+Z*Cxi
T1=Time3-(T1-Source)/S; CALL IncWave(S1,T1); S1=S1*Cin(2)
Rz(KK)=Rz(KK)-SS*SS*S1
ENDSELECT
ENDIF
ENDIF
ENDDO
! CALL MyLSLTR(Kmax-Kmin-1,Az,Bz,Cz,Rz)
Eyz(i,j,kmin+1:kmax-1)=Rz(:)
ENDDO
ENDDO
!*********** 直接完成 Pyz 场量迭代 ****************
DO J=JCmin,JCmax-1
DO I=ICmin+1,ICmax-1
DO K=KCmin+1,KCmax-1
n1=Object(i-1,j,k-1,3); n2=Object(i-1,j,k,3)
n3=Object(i,j,k-1,3); n4=Object(i,j,k,3)
Perm1=0.25*(CMedia(n1,1)+CMedia(n2,1)+CMedia(n3,1)+CMedia(n4,1))
Perm2=0.25*(CMedia(n1,2)+CMedia(n2,2)+CMedia(n3,2)+CMedia(n4,2))
Ccc=Dt+4.*Tau
Cpe1=Eps0*(Dt*(Perm1-1.)+4.*Tau*(Perm2-1.)); Cpe1=Cpe1/Ccc
Cpe2=Eps0*(Dt*(Perm1-1.)-4.*Tau*(Perm2-1.)); Cpe2=Cpe2/Ccc
Cpp=Dt-4.*Tau; Cpp=Cpp/Ccc
Pyz(i,j,k)=Cpe1*Eyz(i,j,k)+Cpe2*TmpE(i,j,k)-Cpp*Pyz(i,j,k)
ENDDO
ENDDO
ENDDO
!*********** 直接完成 Hxz 场量迭代 ****************
DO I=Imin+1,Imax-1
DO J=Jmin,Jmax-1
DO K=Kmin,Kmax-1
n=Object(i,j,k,8); Sigm=CMedia(n,3)
Ccc=1.+Sigm*Dt/4.
Chh=1.-Sigm*Dt/4.; Chh=Chh/Ccc
Che=SS; Che=Che/Ccc
THxz=Che*((Eyz(i,j,k+1)+Eyx(i,j,k+1))-(Eyz(i,j,k)+Eyx(i,j,k)))
Hxz(i,j,k)=Chh*Hxz(i,j,k)+THxz
ENDDO
ENDDO
ENDDO
Z1=FLOAT(KCmin); Z2=FLOAT(KCmax)
DO I=ICmin,ICmax; X=FLOAT(I)
DO J=JCmin,JCmax-1; Y=FLOAT(J)+0.5
T1=X*Sxi*Cpi+Y*Sxi*Spi+Z1*Cxi; T1=Time3-(T1-Source)/S
T2=X*Sxi*Cpi+Y*Sxi*Spi+Z2*Cxi; T2=Time3-(T2-Source)/S
CALL IncWave(S1,T1); S1=SS*S1*Cin(2)
CALL IncWave(S2,T2); S2=SS*S2*Cin(2)
Hxz(i,j,kcmin-1)=Hxz(i,j,kcmin-1)-S1
Hxz(i,j,kcmax)=Hxz(i,j,kcmax)+S2
ENDDO
ENDDO
!****** 通过求解线性方程组来完成Ezx的场量迭代 *****
TmpE(ICmin+1:ICmax-1,JCmin+1:JCmax-1,KCmin:KCmax-1)=Ezx(ICmin+1:ICmax-1,JCmin+1:JCmax-1,KCmin:KCmax-1)
DO K=Kmin,Kmax-1
Z=FLOAT(K)+0.5; Condition(1)=K.GE.KCmin.AND.K.LT.KCmax
DO J=Jmin+1,Jmax-1
Y=FLOAT(J); Condition(2)=J.GT.JCmin.AND.J.LT.JCmax
DO I=Imin+1,Imax-1; Condition(3)=I.GT.ICmin.AND.I.LT.ICmax
II=I-Imin
n1=Object(i-1,j-1,k,5); n2=Object(i,j-1,k,5)
n3=Object(i-1,j,k,5); n4=Object(i,j,k,5)
Perm1=0.25*(CMedia(n1,1)+CMedia(n2,1)+CMedia(n3,1)+CMedia(n4,1))
Perm2=0.25*(CMedia(n1,2)+CMedia(n2,2)+CMedia(n3,2)+CMedia(n4,2))
Sigme=0.25*(CMedia(n1,3)+CMedia(n2,3)+CMedia(n3,3)+CMedia(n4,3))
IF(Condition(1).AND.Condition(2).AND.Condition(3)) THEN
Ccc=1.+Sigme*Dt/4.+(Dt*(Perm1-1.)+4.*Tau*(Perm2-1.))/(Dt+4.*Tau)
Cee=1.-Sigme*Dt/4.-(Dt*(Perm1-1.)-4.*Tau*(Perm2-1.))/(Dt+4.*Tau); Cee=Cee/Ccc
Cep=2.*Dt/(Eps0*(Dt+4.*Tau)); Cep=Cep/Ccc
Ceh=SS; Ceh=Ceh/Ccc
Che=SS
Ax(II)=-Ceh*Che; Cx(II)=-Ceh*Che
Bx(II)=1.+Ceh*S
THy1=(Hyx(i,j,k)+Che*(Ezy(i+1,j,k)-Ezy(i,j,k)))+Hyz(i,j,k)
THy2=(Hyx(i-1,j,k)+Che*(Ezy(i,j,k)-Ezy(i-1,j,k)))+Hyz(i-1,j,k)
Rx(II)=Cee*Ezx(i,j,k)+Cep*Pzx(i,j,k)+Ceh*(THy1-THy2)
ELSE
Ccc=1.+Sigme*Dt/4.
Cee=1.-Sigme*Dt/4.; Cee=Cee/Ccc
Ceh=SS; Ceh=Ceh/Ccc
n=Object(i,j,k,10); Sigmh=CMedia(n,3)
Ccc=1.+Sigmh*Dt/4.
Chh1=1.-Sigmh*Dt/4.; Chh1=Chh1/Ccc
Che1=SS; Che1=Che1/Ccc
n=Object(i-1,j,k,10); Sigmh=CMedia(n,3)
Ccc=1.+Sigmh*Dt/4.
Chh2=1.-Sigmh*Dt/4.; Chh2=Chh2/Ccc
Che2=SS; Che2=Che2/Ccc
IF(I.NE.Imin+1) Ax(II)=-Ceh*Che2
IF(I.NE.Imax-1) Cx(II)=-Ceh*Che1
Bx(II)=1.+Ceh*(Che1+Che2)
THy1=(Chh1*Hyx(i,j,k)+Che1*(Ezy(i+1,j,k)-Ezy(i,j,k)))+Hyz(i,j,k)
THy2=(Chh2*Hyx(i-1,j,k)+Che2*(Ezy(i,j,k)-Ezy(i-1,j,k)))+Hyz(i-1,j,k)
Rx(II)=Cee*Ezx(i,j,k)+Ceh*(THy1-THy2)
IF(Condition(1).AND.Condition(2)) THEN
SELECTCASE(I)
CASE(ICmin-1)
X=FLOAT(I+1); T1=X*Sxi*Cpi+Y*Sxi*Spi+Z*Cxi
T1=Time3-(T1-Source)/S; CALL IncWave(S1,T1); S1=S1*Cin(3)
Rx(II)=Rx(II)-SS*SS*S1
CASE(ICmin)
X=FLOAT(I); T1=X*Sxi*Cpi+Y*Sxi*Spi+Z*Cxi
T1=Time3-(T1-Source)/S; CALL IncWave(S1,T1); S1=S1*Cin(3)
X=FLOAT(I)-0.5; T2=X*Sxi*Cpi+Y*Sxi*Spi+Z*Cxi
T2=Time3-(T2-Source)/S; CALL IncWave(S2,T2); S2=S2*Cin(5)
Rx(II)=Rx(II)+SS*(SS*S1-S2)
CASE(ICmax)
X=FLOAT(I); T1=X*Sxi*Cpi+Y*Sxi*Spi+Z*Cxi
T1=Time3-(T1-Source)/S; CALL IncWave(S1,T1); S1=S1*Cin(3)
X=FLOAT(I)+0.5; T2=X*Sxi*Cpi+Y*Sxi*Spi+Z*Cxi
T2=Time3-(T2-Source)/S; CALL IncWave(S2,T2); S2=S2*Cin(5)
Rx(II)=Rx(II)+SS*(SS*S1+S2)
CASE(ICmax+1)
X=FLOAT(I-1); T1=X*Sxi*Cpi+Y*Sxi*Spi+Z*Cxi
T1=Time3-(T1-Source)/S; CALL IncWave(S1,T1); S1=S1*Cin(3)
Rx(II)=Rx(II)-SS*SS*S1
ENDSELECT
ENDIF
ENDIF
ENDDO
!CALL MyLSLTR(Imax-Imin-1,Ax,Bx,Cx,Rx)
Ezx(imin+1:imax-1,j,k)=Rx(:)
ENDDO
ENDDO
!*********** 直接完成 Pzx 场量迭代 ****************
DO K=KCmin,KCmax-1
DO J=JCmin+1,JCmax-1
DO I=ICmin+1,ICmax-1
n1=Object(i-1,j-1,k,5); n2=Object(i,j-1,k,5)
n3=Object(i-1,j,k,5); n4=Object(i,j,k,5)
Perm1=0.25*(CMedia(n1,1)+CMedia(n2,1)+CMedia(n3,1)+CMedia(n4,1))
Perm2=0.25*(CMedia(n1,2)+CMedia(n2,2)+CMedia(n3,2)+CMedia(n4,2))
Ccc=Dt+4.*Tau
Cpe1=Eps0*(Dt*(Perm1-1.)+4.*Tau*(Perm2-1.)); Cpe1=Cpe1/Ccc
Cpe2=Eps0*(Dt*(Perm1-1.)-4.*Tau*(Perm2-1.)); Cpe2=Cpe2/Ccc
Cpp=Dt-4.*Tau; Cpp=Cpp/Ccc
Pzx(i,j,k)=Cpe1*Ezx(i,j,k)+Cpe2*TmpE(i,j,k)-Cpp*Pzx(i,j,k)
ENDDO
ENDDO
ENDDO
!*********** 直接完成 Hyx 场量迭代 ****************
DO J=Jmin+1,Jmax-1
DO K=Kmin,Kmax-1
DO I=Imin,Imax-1
n=Object(i,j,k,10); Sigm=CMedia(n,3)
Ccc=1.+Sigm*Dt/4.
Chh=1.-Sigm*Dt/4.; Chh=Chh/Ccc
Che=SS; Che=Che/Ccc
THyx=Che*((Ezx(i+1,j,k)+Ezy(i+1,j,k))-(Ezx(i,j,k)+Ezy(i,j,k)))
Hyx(i,j,k)=Chh*Hyx(i,j,k)+THyx
ENDDO
ENDDO
ENDDO
X1=FLOAT(ICmin); X2=FLOAT(ICmax)
DO J=JCmin,JCmax; Y=FLOAT(J)
DO K=KCmin,KCmax-1; Z=FLOAT(K)+0.5
T1=X1*Sxi*Cpi+Y*Sxi*Spi+Z*Cxi; T1=Time3-(T1-Source)/S
T2=X2*Sxi*Cpi+Y*Sxi*Spi+Z*Cxi; T2=Time3-(T2-Source)/S
CALL IncWave(S1,T1); S1=SS*S1*Cin(3)
CALL IncWave(S2,T2); S2=SS*S2*Cin(3)
Hyx(icmin-1,j,k)=Hyx(icmin-1,j,k)-S1
Hyx(icmax,j,k)=Hyx(icmax,j,k)+S2
ENDDO
ENDDO
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ITime2=2*ITime+1
DO IXta=0,NXta
Xtao=FLOAT(IXta); Cxo=COSD(Xtao); Sxo=SIND(Xtao)
SZ=FLOAT(KOmin); IF(IXta.LT.90) SZ=FLOAT(KOmax)
CJx(1)=Cxo*Cpo; CJx(2)=-Spo; CMx(1)=CJx(2); CMx(2)=-CJx(1)
CJy(1)=Cxo*Spo; CJy(2)=Cpo; CMy(1)=CJy(2); CMy(2)=-CJy(1)
CJz(1)=-Sxo; CJz(2)=0.D0; CMz(1)=CJz(2); CMz(2)=-CJz(1)
DJ1=FLOAT(JOmin); DJ2=FLOAT(JOmax)
DO I=IOmin,IOmax-1; DI=FLOAT(I)+0.5
DO K=KOmin,KOmax; DK=FLOAT(K)
Jx1=-0.5*(Hzx(I,JOmin,K)+Hzy(I,JOmin,K)+Hzx(I,JOmin-1,K)+Hzy(I,JOmin-1,K))
Jx2=0.5*(Hzx(I,JOmax,K)+Hzy(I,JOmax,K)+Hzx(I,JOmax-1,K)+Hzy(I,JOmax-1,K))
Mz1=-Exy(I,JOmin,K)-Exz(I,JOmin,K)
Mz2=Exy(I,JOmax,K)+Exz(I,JOmax,K)
IF(K.EQ.KOmin.OR.K.EQ.KOmax) THEN
Jx1=0.5*Jx1; Mz1=0.5*Mz1; Jx2=0.5*Jx2; Mz2=0.5*Mz2
ENDIF
T1=(SX-DI)*Sxo*Cpo+(SY-DJ1)*Sxo*Spo+(SZ-DK)*Cxo; T1=T1/SS; N1=FLOOR(T1); T1=T1-N1
T2=(SX-DI)*Sxo*Cpo+(SY-DJ2)*Sxo*Spo+(SZ-DK)*Cxo; T2=T2/SS; N2=FLOOR(T2); T2=T2-N2
IF((ITime2+N1+1).LE.NTime2) THEN
Ercs(IXta,ITime2+N1,1)=(1.-T1)*(Jx1*CJx(1)+Mz1*CMz(1))+Ercs(IXta,ITime2+N1,1)
Ercs(IXta,ITime2+N1,2)=(1.-T1)*(Jx1*CJx(2)+Mz1*CMz(2))+Ercs(IXta,ITime2+N1,2)
Ercs(IXta,ITime2+N1+1,1)=T1*(Jx1*CJx(1)+Mz1*CMz(1))+Ercs(IXta,ITime2+N1+1,1)
Ercs(IXta,ITime2+N1+1,2)=T1*(Jx1*CJx(2)+Mz1*CMz(2))+Ercs(IXta,ITime2+N1+1,2)
ENDIF
IF((ITime2+N2+1).LE.NTime2) THEN
Ercs(IXta,ITime2+N2,1)=(1.-T1)*(Jx2*CJx(1)+Mz2*CMz(1))+Ercs(IXta,ITime2+N2,1)
Ercs(IXta,ITime2+N2,2)=(1.-T1)*(Jx2*CJx(2)+Mz2*CMz(2))+Ercs(IXta,ITime2+N2,2)
Ercs(IXta,ITime2+N2+1,1)=T1*(Jx2*CJx(1)+Mz2*CMz(1))+Ercs(IXta,ITime2+N2+1,1)
Ercs(IXta,ITime2+N2+1,2)=T1*(Jx2*CJx(2)+Mz2*CMz(2))+Ercs(IXta,ITime2+N2+1,2)
ENDIF
ENDDO
ENDDO
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
DK1=FLOAT(KOmin); DK2=FLOAT(KOmax)
DO I=IOmin,IOmax-1; DI=FLOAT(I)+0.5
DO J=JOmin,JOmax; DJ=FLOAT(J)
Jx1=0.5*(Hyz(I,J,KOmin)+Hyx(I,J,KOmin)+Hyz(I,J,KOmin-1)+Hyx(I,J,KOmin-1))
Jx2=-0.5*(Hyz(I,J,KOmax)+Hyx(I,J,KOmax)+Hyz(I,J,KOmax-1)+Hyx(I,J,KOmax-1))
My1=Exy(I,J,KOmin)+Exz(I,J,KOmin)
My2=-Exy(I,J,KOmax)-Exz(I,J,KOmax)
IF(J.EQ.JOmin.OR.J.EQ.JOmax) THEN
Jx1=0.5*Jx1; Jx2=0.5*Jx2; My1=0.5*My1; My2=0.5*My2
ENDIF
T1=(SX-DI)*Sxo*Cpo+(SY-DJ)*Sxo*Spo+(SZ-DK1)*Cxo; T1=T1/SS; N1=FLOOR(T1); T1=T1-N1
T2=(SX-DI)*Sxo*Cpo+(SY-DJ)*Sxo*Spo+(SZ-DK2)*Cxo; T2=T2/SS; N2=FLOOR(T2); T2=T2-N2
IF((ITime2+N1+1).LE.NTime2) THEN
Ercs(IXta,ITime2+N1,1)=(1.-T1)*(Jx1*CJx(1)+My1*CMy(1))+Ercs(IXta,ITime2+N1,1)
Ercs(IXta,ITime2+N1,2)=(1.-T1)*(Jx1*CJx(2)+My1*CMy(2))+Ercs(IXta,ITime2+N1,2)
Ercs(IXta,ITime2+N1+1,1)=T1*(Jx1*CJx(1)+My1*CMy(1))+Ercs(IXta,ITime2+N1+1,1)
Ercs(IXta,ITime2+N1+1,2)=T1*(Jx1*CJx(2)+My1*CMy(2))+Ercs(IXta,ITime2+N1+1,2)
ENDIF
IF((ITime2+N2+1).LE.NTime2) THEN
Ercs(IXta,ITime2+N2,1)=(1.-T1)*(Jx2*CJx(1)+My2*CMy(1))+Ercs(IXta,ITime2+N2,1)
Ercs(IXta,ITime2+N2,2)=(1.-T1)*(Jx2*CJx(2)+My2*CMy(2))+Ercs(IXta,ITime2+N2,2)
Ercs(IXta,ITime2+N2+1,1)=T1*(Jx2*CJx(1)+My2*CMy(1))+Ercs(IXta,ITime2+N2+1,1)
Ercs(IXta,ITime2+N2+1,2)=T1*(Jx2*CJx(2)+My2*CMy(2))+Ercs(IXta,ITime2+N2+1,2)
ENDIF
ENDDO
ENDDO
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
DK1=FLOAT(KOmin); DK2=FLOAT(KOmax)
DO J=JOmin,JOmax-1; DJ=FLOAT(J)+0.5
DO I=IOmin,IOmax; DI=FLOAT(I)
Jy1=-0.5*(Hxy(I,J,KOmin)+Hxz(I,J,KOmin)+Hxy(I,J,KOmin-1)+Hxz(I,J,KOmin-1))
Jy2=0.5*(Hxy(I,J,KOmax)+Hxz(I,J,KOmax)+Hxy(I,J,KOmax-1)+Hxz(I,J,KOmax-1))
Mx1=-Eyz(I,J,KOmin)-Eyx(I,J,KOmin)
Mx2=Eyz(I,J,KOmax)+Eyx(I,J,KOmax)
IF(I.EQ.IOmin.OR.I.EQ.IOmax) THEN
Jy1=0.5*Jy1; Jy2=0.5*Jy2; Mx1=0.5*Mx1; Mx2=0.5*Mx2
ENDIF
T1=(SX-DI)*Sxo*Cpo+(SY-DJ)*Sxo*Spo+(SZ-DK1)*Cxo; T1=T1/SS; N1=FLOOR(T1); T1=T1-N1
T2=(SX-DI)*Sxo*Cpo+(SY-DJ)*Sxo*Spo+(SZ-DK2)*Cxo; T2=T2/SS; N2=FLOOR(T2); T2=T2-N2
IF((ITime2+N1+1).LE.NTime2) THEN
Ercs(IXta,ITime2+N1,1)=(1.-T1)*(Jy1*CJy(1)+Mx1*CMx(1))+Ercs(IXta,ITime2+N1,1)
Ercs(IXta,ITime2+N1,2)=(1.-T1)*(Jy1*CJy(2)+Mx1*CMx(2))+Ercs(IXta,ITime2+N1,2)
Ercs(IXta,ITime2+N1+1,1)=T1*(Jy1*CJy(1)+Mx1*CMx(1))+Ercs(IXta,ITime2+N1+1,1)
Ercs(IXta,ITime2+N1+1,2)=T1*(Jy1*CJy(2)+Mx1*CMx(2))+Ercs(IXta,ITime2+N1+1,2)
ENDIF
IF((ITime2+N2+1).LE.NTime2) THEN
Ercs(IXta,ITime2+N2,1)=(1.-T1)*(Jy2*CJy(1)+Mx2*CMx(1))+Ercs(IXta,ITime2+N2,1)
Ercs(IXta,ITime2+N2,2)=(1.-T1)*(Jy2*CJy(2)+Mx2*CMx(2))+Ercs(IXta,ITime2+N2,2)
Ercs(IXta,ITime2+N2+1,1)=T1*(Jy2*CJy(1)+Mx2*CMx(1))+Ercs(IXta,ITime2+N2+1,1)
Ercs(IXta,ITime2+N2+1,2)=T1*(Jy2*CJy(2)+Mx2*CMx(2))+Ercs(IXta,ITime2+N2+1,2)
ENDIF
ENDDO
ENDDO
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
DI1=FLOAT(IOmin); DI2=FLOAT(IOmax)
DO J=JOmin,JOmax-1; DJ=FLOAT(J)+0.5
DO K=KOmin,KOmax; DK=FLOAT(K)
Jy1=0.5*(Hzx(IOmin,J,K)+Hzy(IOmin,J,K)+Hzx(IOmin-1,J,K)+Hzy(IOmin-1,J,K))
Jy2=-0.5*(Hzx(IOmax,J,K)+Hzy(IOmax,J,K)+Hzx(IOmax-1,J,K)+Hzy(IOmax-1,J,K))
Mz1=Eyz(IOmin,J,K)+Eyx(IOmin,J,K)
Mz2=-Eyz(IOmax,J,K)-Eyx(IOmax,J,K)
IF(K.EQ.KOmin.OR.K.EQ.KOmax) THEN
Jy1=0.5*Jy1; Jy2=0.5*Jy2; Mz1=0.5*Mz1; Mz2=0.5*Mz2
ENDIF
T1=(SX-DI1)*Sxo*Cpo+(SY-DJ)*Sxo*Spo+(SZ-DK)*Cxo; T1=T1/SS; N1=FLOOR(T1); T1=T1-N1
T2=(SX-DI2)*Sxo*Cpo+(SY-DJ)*Sxo*Spo+(SZ-DK)*Cxo; T2=T2/SS; N2=FLOOR(T2); T2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -