SUBROUTINE upsiln (vecold,tstore,xsq,xk,rhoval,chinuj) ! USE FileUnits_Module USE Narran_Module USE rotmax_Module USE melm_Module USE NumNuj_Module USE new_Module USE Qall_Module USE GaussQuady_Module USE opts_Module USE pow_Module USE chltot_Module USE Spectro_Module USE Arrch_Module USE Storage_Module USE Regins_Module USE Masses_Module USE TotalEng_Module USE Oops_Module USE region_Module USE cherm1_Module USE cherm2_Module USE qnumsp_Module USE rhonum_Module USE NState_Module USE Parms_module USE DiatomicPot_MODULE, ONLY: DiatomicPot USE Convrsns_Module, ONLY: autoev IMPLICIT NONE LOGICAL little,medium,full INTEGER i, ii, ind1, ind2, index, iold, ithcll, ithcnl, ithsub, ip1, ip2, ip3 INTEGER jl, jlmax, jlp1, jold, mgh, nend, nosq, nstrt, nu, nudim, nuhigh INTEGER nulow, nuold, nvp1, i1, i2, inew, innew, inold, jlmin, ms, nst REAL(Kind=WP_Kind)al, rhoval, rmax, sqj, v2, xksq, xxk, expen, eint REAL(Kind=WP_Kind) chinuj(nvbrthrt) REAL(Kind=WP_Kind) xsq(nvibrot+500), xk(nvibrot+500) REAL(Kind=WP_Kind) tstore(*), vecold(*) !REAL(Kind=WP_Kind) tstore(nvibrot**2), vecold(nvibrot**2) REAL(Kind=WP_Kind) esave(nstate+500) REAL(Kind=WP_Kind) enrgy(nstate+500) INTEGER,PARAMETER::NBasisFac=1 DATA ithcll/0/,ithsub/0/ DATA little/.false./,medium/.false./,full/.false./ CALL popt('upsiln ',little,medium,full,ithcll,ithsub) !WRITE(Out_Unit,*)'Entering Upsiln' !----------------------------------------------------------------------- IF(nrigid)RETURN IF(.Not.Allocated(Numax))ALLOCATE(numax(nvibrot),numin(nvibrot)) jrmax=0 DO 160 karran=1,narran IF(nchanl(1)==0.AND.karran==1) GOTO 160 IF(nchanl(2)==0.AND.karran==2) GOTO 160 IF(nchanl(3)==0.AND.karran==3) GOTO 160 IF(little) WRITE(Out_Unit,170) karran,rhoval rhonum=rhoval rmax=finish IF(karran==1)THEN Ip1=2 Ip2=3 nstrt=1 nend=nchanl(1) ELSEIF(karran==2)THEN Ip1=3 Ip2=1 nstrt=nchanl(1)+1 nend=nchanl(1)+nchanl(2) ELSE Ip1=1 Ip2=2 nstrt=nchanl(1)+nchanl(2)+1 nend=nchanl(1)+nchanl(2)+nchanl(3) ENDIF DiatomicPot=TRIM(AtomicSymbol(ip1))//TRIM(AtomicSymbol(ip2)) !------------------------------------------------------------------- ! calculate alpha !------------------------------------------------------------------- IF(nrigid) alpha(karran)=1.0d+00 IF(.NOT.nrigid) alpha(karran)=ralpha(karran)*sqrt(we(karran)*usys)*re(karran) IF(medium) WRITE(Out_Unit,240) IF(medium) WRITE(Out_Unit,250) ralpha(karran),alpha(karran),rx(karran),re(karran),we(karran),wexe(karran),be(karran), de(karran),al !----------------------------------------------------------------------- ! Determine the minimum/maximum little j used in this channel. ! Also find the maximum rotational quantum number in all channels. !----------------------------------------------------------------------- jlmax=0 jlmin=10000 DO ii=nstrt,nend IF(jrot3(ii)>jlmax) jlmax=jrot3(ii) IF(jrot3(ii)