SUBROUTINE bascal2(nang, thaph, chiaph, nbasis, phi, pn, dpndx, oscil, doscdz, parityfn, bfaci) USE FileUnits_Module USE Narran_Module USE Parms_Module USE Gaussb_Module USE Quantb_Module USE MassFactor2_Module USE TotJ_Module USE AzBzCz_Module USE LBasis_Module IMPLICIT NONE INTEGER Nang, Nbasis, karran, iang, n, l, ibasis, marran, isp REAL(KIND=WP_Kind) chi, schi, cchi, cthaph, sthaph, top, denom, xbig, product REAL(KIND=WP_Kind) tanth, thlitdel, sinthd, costhd, sinths, cosths, AZSBZC, bfac, Zlit REAL(KIND=WP_Kind), PARAMETER :: zero = 0.0D0, one = 1.0D0 REAL(KIND=WP_Kind), PARAMETER :: two = 2.0D0, four = 4.0D0 REAL(KIND=WP_Kind) thaph(nang), chiaph(nang), pn(0:mxl,nang,narran) REAL(KIND=WP_Kind) dpndx(0:mxl,nang,narran) REAL(KIND=WP_Kind) oscil(0:mxn,nang,narran), doscdz(0:mxn,nang,narran) REAL(KIND=WP_Kind) parityfn(nang,narran) REAL(KIND=WP_Kind) bfaci(nang,narran), phi(nang,nbasis), nfac(0:1000) REAL(KIND=WP_Kind) fnorm(0:1000) WRITE(Out_Unit,*)'nang=', nang WRITE(Out_Unit,*)'nbasis=', nbasis WRITE(Out_Unit,*)'mega=', mega WRITE(Out_Unit,*)'Parity=', parity DO karran = 1, narran WRITE(Out_Unit,*) WRITE(Out_Unit,*)'Arrangement Channel=', karran WRITE(Out_Unit,*)'chij(karran,1)=', chij(karran,1) WRITE(Out_Unit,*)'nlegndre(karran)', nlegndre(karran) WRITE(Out_Unit,*)'noscil(karran)', noscil(karran) WRITE(Out_Unit,*)'az(karran),bz(karran),cz(karran)', az(karran), bz(karran), & & cz(karran) DO iang = 1, nang chi = chiaph(iang) - chij(karran,1) schi = sin(two*chi) cchi = cos(two*chi) cthaph = cos(thaph(iang)) sthaph = sin(thaph(iang)) top = sqrt(cthaph**2*cchi**2+schi**2) !---------------------------------------------------------------------- ! Calculate Legendre Basis !---------------------------------------------------------------------- IF(top/=0D0)THEN denom = one/top xbig = sthaph*schi*denom CALL legendrd(nlegndre(karran),mega,pn(0,iang,karran), & & dpndx(0,iang,karran),xbig,nfac) ELSE DO isp = 0, mxl pn(isp,iang,karran) = 0D0 ENDDO ENDIF product = sthaph*cchi IF(productnbasis', ibasis, nbasis STOP 'bascal' ENDIF phi(iang,ibasis) = pn(l,iang,marran)*oscil(n,iang,marran) & & *parityfn(iang,marran)*bfaci(iang,marran) ENDDO ENDDO ENDDO ENDDO WRITE(Out_Unit,*)'Number of Basis Functions = ', ibasis ENDSUBROUTINE BASCAL2