SUBROUTINE qlevel (negvl, vect, haml, xsq, h, eint, nnuj, chinuj) !----------------------------------------------------------------------- ! this routine determine the quantum numbers for a particular ! symmetry and the unweighted vibrational wavefunctions ! for that symmetry. ! written by g. a. parker. modified by jim lill. !this routine is called by: input !this routine calls: popt, figure, VibFun_Old, VibFun_New, eigfun !----------------------------------------------------------------------- USE Numeric_Kinds_Module USE fileunits_Module USE potzero_Module USE das_Module USE Arrch_Module USE Masses_Module USE Qnumber_Module USE quantb_Module USE new_Module !USE Gaussb_Module USE GaussQuady_Module !, ONLY: wpth, xpth USE opts_Module USE pow_Module USE melm_Module USE Spectro_Module USE TotalEng_Module USE totj_Module USE approx_Module USE elemnt_Module USE qnumsp_Module USE convrsns_Module USE rhonum_MODULE USE Regins_Module USE Parms_Module USE DiatomicPot_MODULE, ONLY: DiatomicPot LOGICAL little, medium, full INTEGER Negvl, i, ii, index, ithcll, ithsub, jl, jlmax, jlmin, jlp1, kthcall, mgh, mprnt INTEGER nprnt, nudim, nuhigh, nulow, nvp1 INTEGER msvib(nstate), msrot(nstate), mslrb(nstate), msega(nstate), nsuj(nstate), mstype(nstate) INTEGER nnuj(narran) INTEGER ib, ib1, im1, imin, inew, iold, is2, jold, mt, neg1, nu, nuold INTEGER i1, i2, icount, innew, inold, is, n, nsgvl, nulevl INTEGER jrots, lorbs, meg, megas, megmax, megs, ms, mvibs REAL(Kind=WP_Kind) emin, esave, expen, sqj, v2 REAL(Kind=WP_Kind) chinuj(nvbrthrt) REAL(Kind=WP_Kind) eint(nvbrthrt) !eint(nvibrot) REAL(Kind=WP_Kind) energs(nstate+500) REAL(Kind=WP_Kind) vect(nvbrthrt) !vect(nvibrot**2) REAL(Kind=WP_Kind) haml(nvbrthrt) !haml(nvibrot**2) REAL(Kind=WP_Kind) xsq(nvibrot+500), h(nvibrot+500) INTEGER,PARAMETER::NBasisFac=1 DATA kthcall /1/ DATA ithcll/0/,ithsub/0/ DATA little/.false./,medium/.false./,full/.false./ CALL popt('qlevel ',little, medium, full, ithcll, ithsub) !little=.true. !medium=.true. !full=.true. !!determine rho rhonum=endaph IF(little)WRITE(Out_Unit,380) jtot,karran mprnt=minvib(karran) nprnt=maxvib(karran) IF(little)WRITE(Out_Unit,370) mprnt,nprnt !----------------------------------------------------------------------- ! determine quantum numbers. !----------------------------------------------------------------------- CALL figure (jmin(0,karran,0),jmax(0,karran),mvib,jthrot,lorb,megaz,negvl,minvib(karran),maxvib(karran)) !----------------------------------------------------------------------- ! check to see if negvl is bigger than the dimensions ! statements allow. !----------------------------------------------------------------------- IF(negvl>nvibrot)THEN WRITE(Out_Unit,390) negvl STOP 'qlevel' ENDIF DO i=1,negvl msrot(i)=jthrot(i) mslrb(i)=lorb(i) msega(i)=megaz(i) msvib(i)=mvib(i) ENDDO nsgvl=negvl !----------------------------------------------------------------------- ! determine the maximum little j used. ! determine the minimum little j used !----------------------------------------------------------------------- jlmax=0 jlmin=10000 DO ii=1,negvl IF(jthrot(ii)>jlmax) jlmax=jthrot(ii) IF(jthrot(ii)numax(jlp1)) numax(jlp1)=msvib(i) IF(msvib(i)