REAL(Kind=WP_Kind) FUNCTION VNENE(rnene) USE Numeric_Kinds_Module ! original Aziz-Slaman routine used reduced units. This version has ! r and v in atomic units. Russ Pack 98/5/5 IMPLICIT NONE REAL(Kind=WP_Kind) epsnene, rmnene, x, x2, x6, x8, x10, rnene, ua, a, ub, b REAL(Kind=WP_Kind) alpha, beta, uc, c6, c8, c10, d1x, chnge, en, d, ud, c, em INTEGER icall CHARACTER(LEN=21), PARAMETER:: ProcName='vnene ' ! ------1---------2---------3---------4---------5---------6---------7-- COMMON/POTNENE/A,ALPHA,C6,C8,C10,C,D,CHNGE,B,BETA,EN,EM data icall /0/ SAVE ! determine parameters on first CALL. IF(icall==0)THEN CALL nenedat ! well depth and rm, both in au. epsnene = 1.337985194d-04 rmnene = 5.841143031d0 icall=1 ENDIF ! start here on further calls vnene = 0.d0 x = rnene/rmnene IF(x>1.d04) RETURN X2=X*X X6=X2**3 X8=X2*X6 X10=X8*X2 UA=A UB=ALPHA*X-BETA*X*X UC=C6/X6+C8/X8+C10/X10 D1X=D/X-1.D0 UD=DEXP(-DMIN1(174.D0,C*D1X*D1X)) IF(X>=CHNGE)THEN VNENE=UA*DEXP(-DMIN1(174.D0,UB))-UC ELSE VNENE=UA*DEXP(-DMIN1(174.D0,UB))-UC*UD ENDIF vnene = epsnene*vnene RETURN END