1 SUBROUTINE THERMO(A,B,C,LINEAR,SYM,WT,VIBS,NVIBS,ESCF)
2 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5 CHARACTER KEYWRD*241, KOMENT*81, TITLE*81, TMPKEY*241
7 COMMON /TITLES/ KOMENT,TITLE
10 C THERMO CALCULATES THE VARIOUS THERMODYNAMIC QUANTITIES FOR A
11 C SPECIFIED TEMPERATURE GIVEN THE VIBRATIONAL FREQUENCIES, MOMENTS OF
12 C INERTIA, MOLECULAR WEIGHT AND SYMMETRY NUMBER.
14 C REFERENCE: G.HERZBERG MOLECULAR SPECTRA AND MOLECULAR STRUCTURE
17 C ---- TABLE OF SYMMETRY NUMBERS ----
19 C C1 CI CS 1 D2 D2D D2H 4 C(INF)V 1
20 C C2 C2V C2H 2 D3 D3D D3H 6 D(INF)H 2
21 C C3 C3V C3H 3 D4 D4D D4H 8 T TD 12
22 C C4 C4V C4H 4 D6 D6D D6H 12 OH 24
26 C PROGRAM LIMITATIONS: THE EQUATIONS USED ARE APPROPRIATE TO THE
27 C HIGH TEMPERATURE LIMIT AND WILL BEGIN TO BE INADEQUATE AT TEMPERA-
28 C TURES BELOW ABOUT 100 K. SECONDLY THIS PROGRAM IS ONLY APPROPRIATE
29 C IN THE CASE OF MOLECULES IN WHICH THERE IS NO FREE ROTATION
34 *******************************************************************
36 * THE FOLLOWING CONSTANTS ARE NOW DEFINED:
37 * PI = CIRCUMFERENCE TO DIAMETER OF A CIRCLE
38 * R = GAS CONSTANT IN CALORIES/MOLE
39 * H = PLANCK'S CONSTANT IN ERG-SECONDS
40 * AK = BOLTZMANN CONSTANT IN ERG/DEGREE
41 * AC = SPEED OF LIGHT IN CM/SEC
42 *******************************************************************
50 *******************************************************************
55 I=INDEX(TMPKEY,'THERMO(')
58 C ERASE ALL TEXT FROM TMPKEY EXCEPT THERMO DATA
61 TMPKEY(INDEX(TMPKEY,')'):)=' '
64 WRITE(6,'(//10X,''TEMPERATURE RANGE STARTS TOO LOW,'',
65 1'' LOWER BOUND IS RESET TO 30K'')')
85 IF(ISTEP.GE.2.AND. ISTEP.LT.5)ISTEP=2
86 IF(ISTEP.GE.5.AND. ISTEP.LT.10)ISTEP=5
87 IF(ISTEP.GE.10.AND. ISTEP.LT.20)ISTEP=10
88 IF(ISTEP.GT.20.AND. ISTEP.LT.50)ISTEP=20
89 IF(ISTEP.GT.50.AND. ISTEP.LT.100)ISTEP=50
90 IF(ISTEP.GT.100)ISTEP=100
97 WRITE(6,'(//,A)')TITLE
100 WRITE(6,'(//10X,''MOLECULE IS LINEAR'')')
102 WRITE(6,'(//10X,''MOLECULE IS NOT LINEAR'')')
104 WRITE(6,'(/10X,''THERE ARE'',I3,'' GENUINE VIBRATIONS IN THIS '',
107 20 FORMAT(10X,'THIS THERMODYNAMICS CALCULATION IS LIMITED TO',/
108 110X,'MOLECULES WHICH HAVE NO INTERNAL ROTATIONS'//)
109 WRITE(6,'(//20X,''CALCULATED THERMODYNAMIC PROPERTIES'')')
110 WRITE(6,'(42X,''*'')')
111 WRITE(6,'('' TEMP. (K) PARTITION FUNCTION H.O.F.'',
112 1'' ENTHALPY HEAT CAPACITY ENTROPY'')')
113 WRITE(6,'( '' KCAL/MOL'',
114 1'' CAL/MOLE CAL/K/MOL CAL/K/MOL'',/)')
116 30 VIBS(I)=ABS(VIBS(I))
118 DO 40 ITEMP=IT1,IT2,ISTEP
120 40 TRANGE(ILIM)=ITEMP
125 C *** INITIALISE SOME VARIABLES ***
133 C *** CONSTRUCT THE FREQUENCY DEPENDENT PARTS OF PARTITION FUNCTION
140 CPV=CPV+WI*WI*EWJ/(1-EWJ)/(1-EWJ)
141 SV1=SV1+LOG(1.0D0-EWJ)
142 50 SV2=SV2+WI*EWJ/(1-EWJ)
143 C *** FINISH CALCULATION OF VIBRATIONAL PARTS ***
148 C *** NOW CALCULATE THE ROTATIONAL PARTS (FIRST LINEAR MOLECULES
149 IF(.NOT.LINEAR) GOTO 60
153 SR=R*(LOG(T*AK/(H*AC*A*SYM)))+R
155 60 QR=SQRT(PI/(A*B*C*C1*C1*C1))/SYM
158 SR=0.5D0*R*(3.D0*LOG(T*AK/(H*AC))
159 1-2.D0*LOG(SYM)+LOG(PI/(A*B*C))+3.D0)
161 C *** CALCULATE INTERNAL CONTRIBUTIONS ***
166 C *** CONSTRUCT TRANSLATION CONTRIBUTIONS ***
167 QTR=(SQRT(2.D0*PI*WT*T*AK*1.6606D-24)/H)**3
170 STR=2.2868D0*(5.0D0*LOG10(T)+3.0D0*LOG10(WT))-2.3135D0
171 C *** CONSTRUCT TOTALS ***
175 C *** OUTPUT SECTION ***
179 WRITE(6,'(/,I7,'' VIB.'',G18.4
180 1 ,13X,3F11.5 )')ITEMP,QV, HV, CPV, SV
181 WRITE(6,'(7X,'' ROT.'',G13.3
182 1 ,16X,3F11.3 )') QR, HR, CPR, SR
183 WRITE(6,'(7X,'' INT.'',G13.3
184 1 ,16X,3F11.3 )') QINT,HINT,CPINT,SINT
185 WRITE(6,'(7X,'' TRA.'',G13.3
187 2 QTR, HTR, CPTR, STR
188 WRITE(6,'(7X,'' TOT.'',13X,F17.3,F11.4,2F11.4)')
189 1 ESCF+(HTOT-H298)/1000.D0,HTOT,CPTOT,STOT
192 WRITE(6,'(/3X,'' * NOTE: HEATS OF FORMATION ARE RELATIVE TO THE'',
193 1/12X,'' ELEMENTS IN THEIR STANDARD STATE AT 298K'')')