SUBROUTINE RDS2R3 ( R, D, CHI, DIST, NCH ) ! -- COORDINATE TRANSFORM, R,D(SCALED),CHI --> R1,R2,R3 ! R -- SCALED ATOM-MOLECULE DISTANCE ! D -- SCALED MOLECULAR INTERNUCLEAR SEPARATION ! CHI -- MOLECULAR ORIENTATION ANGLE IN RADIANS ! DIST(3) -- OUTPUT UNSCALED INTERNUCLEAR DISTANCES ! NCH -- NCH=1,2,3 ==> ALPHA,BETA,GAMMA ARRANGEMENT CHANNEL(INPUT) USE DVRMasses_Module INTEGER i1, i2, i3, nch, ix REAL(Kind=WP_Kind) DS, D, Rs, R, HC0, HCPI, HC, CHI, Alfa, UMinW, UU REAL(Kind=WP_Kind) BETA, SinGam, F, DSx, Dsz, UVX REAL(Kind=WP_Kind) DIST(3), dist2 LOGICAL MATCH, MDRNG COMMON / UVCHI / UU, UVX(11), UMINW, IX, MATCH DS = D RS = R 2 CONTINUE I1 = NCH I2 = MOD(I1,3) + 1 I3 = MOD(I2,3) + 1 IF(.NOT.MATCH) GO TO 1 HC0=-1D0/TANG(I3) HCPI=-1D0/TANG(I2) HC=HC0 IF(CHI>XSTAR(I1))HC=HCPI ALFA=HC*(UMINW-UU) BETA= 1.0D0 / TAN(ZETA(I1))-ALFA IF(CHI>XSTAR(I1))ALFA=-ALFA SINGAM=ALFA/BETA*SIN(CHI) F=ALFA*COS(CHI)+BETA*SQRT(1D0-SINGAM*SINGAM) DS=DS/(SIN(ZETA(NCH))*SQRT(1D0+F*F)) RS=F*DS 1 DSX = DS*SIN(CHI) DSZ = DS*COS(CHI) DIST(I1) = DS/SCALE(I1) DIST(I2) = SQRT( DIST2(SINE(I3)*RS, COSN(I3)*DSX, COSN(I3)*DSZ))/ SCALE(I2) DIST(I3) = SQRT( DIST2(-SINE(I2)*RS, COSN(I2)*DSX, COSN(I2)*DSZ))/ SCALE(I3) RETURN ! ! ENTRY RD2R3 ( R, D, CHI, DIST, NCH ) ! -- COORDINATE TRANSFORM, R,D,(UNSCALED),CHI --> R1,R2,R3 ! ENTRY RD2R3 ( R, D, CHI, DIST, NCH ) DS = D*SCALE(NCH) RS = R/SCALE(NCH) GO TO 2 ! ! NCC2R3 IS NOT NECESSARY (ROB, MESSAGE UVTORR 3/4/88) ! ! ENTRY NCC2R3 ( U, V, CHI, DIST, NCH ) ! -- COORDINATE TRANSFORM, U,V,CHI --> R1,R2,R3 ! ! ENTRY NCC2R3 ( U, V, CHI, DIST, NCH ) ! IF(MATCH)GO TO 105 ! CALL UVTORR ( U, V, RS, DS, NCH ) ! GO TO 2 ! 105 CONTINUE ! I1=NCH ! I2=MOD(I1,3)+1 ! I3=MOD(I2,3)+1 ! II=I3 ! IF(CHI>XSTAR(I1))II=I2 ! HC=-1D0/TANG(II) ! ALFA=HC*(UMINW-UU) ! BETA= 1.0D0 / TAN(ZETA(I1))-ALFA ! SINCHI=SIN(CHI) ! MDRNG=SINCHI>BETA/SQRT(ALFA*ALFA+BETA*BETA) ! COSCHI=COS(CHI) ! IF(CHI>XSTAR(I1))COSCHI=-COSCHI ! SINGAM=ALFA/BETA*SIN(CHI) ! F=ALFA*COSCHI+BETA*SQRT(1D0-SINGAM*SINGAM) ! IF(MDRNG)F=BETA/SINCHI ! DS=V/SQRT(1D0+F*F) ! RS=F*DS ! GO TO 1 END