SUBROUTINE Grid(Rho, S, NS, CapTheta, NT, Chi, Theta, xij) USE Numeric_Kinds_Module USE Numbers_Module USE FileUnits_Module IMPLICIT NONE INTEGER k, IS, NS, JT, NT, KM REAL(Kind=WP_Kind) xmin, xmax, Sin2Chi, Cos2Chi, CapS, CapSDots, Denominator, TanTheta REAL(Kind=WP_Kind) RHO, S(0:NS), CapTheta(0:NT), Chi(0:NS,0:NT), Theta(0:NS,0:NT), xij(0:7) KM=1 Xij(0)= -Pi/6.d0 Xij(1)= Zero Xij(2)= Pi/6.d0 Xij(3)= 2*Pi/6.d0 Xij(4)= 3*Pi/6.d0 Xij(5)= 4*Pi/6.d0 Xij(6)= 5*Pi/6.d0 Xij(7)= 6*Pi/6.d0 xmin=-Pi/12 xmax= Pi/12 OPEN(UNIT=GridNodes_Unit,FILE='Nodes.txt') OPEN(UNIT=GridDebug_Unit,FILE='Debug.txt') Chi=-1024.d0 DO IS=0,NS WRITE(GridDebug_Unit,*)"IS=",IS DO k=1,KM WRITE(GridDebug_Unit,*)"---- k=",k DO JT=0,NT Caps=SQRT(Rho**2-s(IS)**2) CapSDots=CapS*s(IS)*Cos(CapTheta(JT)) Denominator=SQRT((CapS**2-s(IS)**2)**2+(Two*CapSDots)**2) Sin2Chi=Two*CapSDots/Denominator Cos2Chi=(CapS**2-s(IS)**2)/Denominator Chi(IS,JT)=Half*ATAN2(Sin2Chi,Cos2Chi) TanTheta=Denominator/(Two*CapS*s(IS)*Sin(CapTheta(JT))) Theta(IS,JT)=ATAN(TanTheta) !IF(Chi(IS,JT)-xij(k).ge.-(Xij(k)+Xij(k+1))/2.and.Chi(IS,JT)-xij(k).le.-(Xij(k)+Xij(k-1))/2)THEN WRITE(GridNodes_Unit,*)Theta(IS,JT),Chi(IS,JT)-xij(k) WRITE(GridDebug_Unit,'(4es14.7)')S(IS),CapTheta(JT),Theta(IS,JT),Chi(IS,JT)-xij(k) !ENDIF ENDDO ENDDO WRITE(GridNodes_Unit,'(A1)')'&' ENDDO !IF(Pi.ne.0)RETURN DO k=1,KM DO JT=0,NT DO IS=0,NS WRITE(GridNodes_Unit,*)Theta(IS,JT),Chi(IS,JT)-xij(k) ENDDO WRITE(GridNodes_Unit,'(A1)')'&' ENDDO ENDDO RETURN END SUBROUTINE Grid