SUBROUTINE CSPEC(I,J,IC,OS,CP,U0,T,CS) C ====================================== C C Non-standard evaluation of collision rates C Basically user-supplied procedure; here is an example C C Van Regemorter's formula following the recommendations of C Mihalas (1978, Stellar Atmospheres, 2nd edition) C IC=-1 for neutrals C IC=-2 for ions C INCLUDE 'IMPLIC.FOR' INCLUDE 'BASICS.FOR' INCLUDE 'ATOMIC.FOR' DIMENSION CHE1FB(3,4) DATA CHE1FB/ 9.63675,-2.22941,-17.30103, * 10.85578,-2.40931,-27.00903, * 8.38043,-2.04791,-7.36621, * 6.95825,-2.01967,-5.98779/ PARAMETER (EXPIA1=-0.57721566,EXPIA2=0.99999193, * EXPIA3=-0.24991055,EXPIA4=0.05519968, * EXPIA5=-0.00976004,EXPIA6=0.00107857, * EXPIB1=0.2677734343,EXPIB2=8.6347608925, * EXPIB3=18.059016973,EXPIB4=8.5733287401, * EXPIC1=3.9584969228,EXPIC2=21.0996530827, * EXPIC3=25.6329561486,EXPIC4=9.5733223454) CS=0. IF(IC.GT.-10) THEN IF(U0.LE.UN) THEN EXPIU0=-LOG(U0)+EXPIA1+U0*(EXPIA2+U0*(EXPIA3+U0*(EXPIA4+ * U0*(EXPIA5+U0*EXPIA6)))) ELSE EXPIU0=EXP(-U0)*((EXPIB1+U0*(EXPIB2+U0*(EXPIB3+ * U0*(EXPIB4+U0))))/(EXPIC1+U0*(EXPIC2+ * U0*(EXPIC3+U0*(EXPIC4+U0)))))/U0 END IF CCCCCC Neutrals (See Auer & Mihalas 1973) IF(IC.EQ.-1) THEN IF(U0.LE.14.) THEN GG=0.276*EXP(U0)*EXPIU0 ELSE GG=0.066*(1.+1.5/U0)/SQRT(U0) ENDIF CCCCCC Ions (See Mihalas 1972) ELSE IF(IC.EQ.-2) THEN GG0=0.276*EXP(U0)*EXPIU0 GG=CP IF(GG0.GT.CP) GG=GG0 END IF T32=T**(-1.5) CS=CS+19.7363*T32*EXP(-U0)/U0*GG*OS RETURN END IF C IF(IC.EQ.-11) THEN XR=-1.68D0 CS=CS+2.16*U0**XR/T/SQRT(T)*EXP(-U0)*OS C C Forbidden transitions between n=2 He I sublevels C (from Klaus Werner) C ELSE IF(IC.EQ.-12) THEN N0I=NFIRST(IELHE1) I=I-N0I+1 J=J-N0I+1 IFORB=0 IF(I.EQ.2 .AND. J.EQ.3) IFORB=1 IF(I.EQ.2 .AND. J.EQ.5) IFORB=2 IF(I.EQ.3 .AND. J.EQ.4) IFORB=3 IF(I.EQ.4 .AND. J.EQ.5) IFORB=4 IF(IFORB.EQ.0) CALL QUIT(' Inconsistent ICOL - CSPEC',iforb,0) XT=LOG10(T) GAM=CHE1FB(1,IFORB)+CHE1FB(2,IFORB)*XT+CHE1FB(3,IFORB)/XT/XT GAM=EXP(2.30258509299405*GAM) CS=CS+5.465D-11*SQRT(T)*EXP(-U0)*GAM END IF RETURN END