6 PUBLIC :: f_polar, p_polar, phi_polar
15 SUBROUTINE f_polar ( fdd, fqq, fdq )
17 USE eos_variables, ONLY: ncomp, parame, dd_term, qq_term, dq_term
20 REAL,
INTENT(OUT) :: fdd, fqq, fdq
25 INTEGER :: dipole_quad
35 IF ( sum( parame(1:ncomp,6) ) /= 0.0 ) dipole = 1
36 IF ( sum( parame(1:ncomp,7) ) /= 0.0 ) quadrupole = 1
37 IF ( dipole == 1 .AND. quadrupole == 1 ) dipole_quad = 1
44 IF (dd_term ==
'GV')
CALL f_dd_gross_vrabec( fdd )
53 IF (quadrupole == 1)
THEN 55 IF (qq_term ==
'JG')
CALL f_qq_gross( fqq )
64 IF (dipole_quad == 1)
THEN 66 IF (dq_term ==
'VG')
CALL f_dq_vrabec_gross( fdq )
71 END SUBROUTINE f_polar
78 SUBROUTINE f_dd_gross_vrabec( fdd )
81 USE eos_variables, ONLY: nc, ncomp, uij, parame, mseg, sig_ij, rho, eta, x, t
85 REAL,
INTENT(IN OUT) :: fdd
88 INTEGER :: ddit, ddmax
89 REAL :: factor2, factor3
90 REAL :: xijfa, xijkfa, xijf_j, xijkf_j, eij
92 REAL,
DIMENSION(nc) :: my2dd, my0, alph_tst, z1dd, z2dd, dderror
93 REAL,
DIMENSION(nc) :: fdd2m, fdd3m, fdd2m2, fdd3m2, fddm, fddm2
94 REAL,
DIMENSION(nc,nc) :: idd2, idd4
95 REAL,
DIMENSION(nc,nc,nc) :: idd3
103 IF ( uij(i,i) == 0.0 )
write (*,*)
'F_DD_GROSS_VRABEC: do not use dimensionless units' 104 IF ( uij(i,i) == 0.0 ) stop
105 my2dd(i) = (parame(i,6))**2 *1.e-49 /(uij(i,i)*kbol* mseg(i)*sig_ij(i,i)**3 *1.e-30)
106 alph_tst(i) = parame(i,11) / (mseg(i)*sig_ij(i,i)**3 ) * t/parame(i,3)
107 IF ( alph_tst(i) /= 0.0 ) ddmax = 25
108 z1dd(i) = my2dd(i) + 3.0*alph_tst(i)
109 z2dd(i) = 3.0*alph_tst(i)
119 idd2(i,j) = idd2(i,j) + ddp2(i,j,m)*eta**m
120 idd4(i,j) = idd4(i,j) + ddp4(i,j,m)*eta**m
126 idd3(i,j,k) = idd3(i,j,k) + ddp3(i,j,k,m)*eta**m
135 factor3 = -4.0/3.0*pi**2 * rho**2
148 xijfa =x(i)*parame(i,3)/t*parame(i,2)**3 * x(j)*parame(j,3)/t*parame(j,2)**3 &
149 /((parame(i,2)+parame(j,2))/2.0)**3 * (z1dd(i)*z1dd(j)-z2dd(i)*z2dd(j))
150 eij = (parame(i,3)*parame(j,3))**0.5
151 fdd2= fdd2 + factor2 * xijfa * ( idd2(i,j) + eij/t*idd4(i,j) )
152 xijf_j = parame(i,3)/t*parame(i,2)**3 *x(j)*parame(j,3)/t*parame(j,2)**3 &
153 /((parame(i,2)+parame(j,2))/2.0)**3
154 fdd2m(i)=fdd2m(i)+4.0*sqrt(my2dd(i))*z1dd(j)*factor2* xijf_j *(idd2(i,j)+eij/t*idd4(i,j))
155 fdd2m2(i)=fdd2m2(i) + 4.0*z1dd(j)*factor2* xijf_j *(idd2(i,j)+eij/t*idd4(i,j))
156 IF (j == i) fdd2m2(i) =fdd2m2(i) +8.0*factor2* xijf_j*my2dd(i) *(idd2(i,j)+eij/t*idd4(i,j))
159 xijkfa = x(i)*parame(i,3)/t*parame(i,2)**3 *x(j)*parame(j,3)/t*parame(j,2)**3 &
160 *x(k)*parame(k,3)/t*parame(k,2)**3 / ((parame(i,2)+parame(j,2))/2.0) &
161 /((parame(i,2)+parame(k,2))/2.0) / ((parame(j,2)+parame(k,2))/2.0) &
162 *(z1dd(i)*z1dd(j)*z1dd(k)-z2dd(i)*z2dd(j)*z2dd(k))
164 fdd3 = fdd3 + factor3 * xijkfa * idd3(i,j,k)
165 xijkf_j = parame(i,3)/t*parame(i,2)**3 *x(j)*parame(j,3)/t*parame(j,2)**3 &
166 *x(k)*parame(k,3)/t*parame(k,2)**3 /((parame(i,2)+parame(j,2))/2.0) &
167 /((parame(i,2)+parame(k,2))/2.0) /((parame(j,2)+parame(k,2))/2.0)
169 fdd3m(i)=fdd3m(i)+6.0*factor3*sqrt(my2dd(i))*z1dd(j)*z1dd(k) *xijkf_j*idd3(i,j,k)
170 fdd3m2(i)=fdd3m2(i)+6.0*factor3*z1dd(j)*z1dd(k) *xijkf_j*idd3(i,j,k)
171 IF(j == i) fdd3m2(i) =fdd3m2(i)+24.0*factor3*my2dd(i)*z1dd(k) *xijkf_j*idd3(i,j,k)
178 IF (fdd2 < -1.e-50 .AND. fdd3 /= 0.0)
THEN 179 fdd = fdd2 / ( 1.0 - fdd3/fdd2 )
180 IF ( ddmax /= 0 )
THEN 183 fddm(i) =fdd2*(fdd2*fdd2m(i) -2.0*fdd3*fdd2m(i)+fdd2*fdd3m(i)) /(fdd2-fdd3)**2
184 fddm2(i) = fdd2m(i) * (fdd2*fdd2m(i)-2.0*fdd3*fdd2m(i) +fdd2*fdd3m(i)) / (fdd2-fdd3)**2 &
185 + fdd2*(fdd2*fdd2m2(i) -2.0*fdd3*fdd2m2(i)+fdd2m(i)**2 &
186 -fdd2m(i)*fdd3m(i) +fdd2*fdd3m2(i)) / (fdd2-fdd3)**2 &
187 - 2.0*fdd2*(fdd2*fdd2m(i) -2.0*fdd3*fdd2m(i) +fdd2*fdd3m(i)) /(fdd2-fdd3)**3 &
189 dderror(i)= sqrt( my2dd(i) ) - sqrt( my0(i) ) + alph_tst(i)*fddm(i)
190 my2dd(i) = ( sqrt( my2dd(i) ) - dderror(i) / (1.0+alph_tst(i)*fddm2(i)) )**2
191 z1dd(i) = my2dd(i) + 3.0 * alph_tst(i)
194 IF (abs(dderror(i)) > 1.e-11 .AND. ddit < ddmax)
GOTO 9
196 fdd = fdd + sum( 0.5*x(1:ncomp)*alph_tst(1:ncomp)*fddm(1:ncomp)**2 )
201 END SUBROUTINE f_dd_gross_vrabec
209 SUBROUTINE f_qq_gross( fqq )
212 USE eos_variables, ONLY: nc, ncomp, uij, parame, mseg, sig_ij, rho, eta, x, t
216 REAL,
INTENT(IN OUT) :: fqq
218 INTEGER :: i, j, k, m
219 REAL :: factor2, factor3
220 REAL :: xijfa, xijkfa, eij
222 REAL,
DIMENSION(nc) :: qq2
223 REAL,
DIMENSION(nc,nc) :: iqq2, iqq4
224 REAL,
DIMENSION(nc,nc,nc) :: iqq3
230 qq2(i) = (parame(i,7))**2 *1.e-69 / (uij(i,i)*kbol*mseg(i)*sig_ij(i,i)**5 *1.e-50)
237 IF (parame(i,7) /= 0.0 .AND. parame(j,7) /= 0.0)
THEN 239 iqq2(i,j) = iqq2(i,j) + qqp2(i,j,m)*eta**m
240 iqq4(i,j) = iqq4(i,j) + qqp4(i,j,m)*eta**m
244 IF (parame(k,7) /= 0.0)
THEN 246 iqq3(i,j,k) = iqq3(i,j,k) + qqp3(i,j,k,m)*eta**m
254 factor2 = -9.0/16.0*pi *rho
255 factor3 = 9.0/16.0*pi**2 * rho**2
261 IF (parame(i,7) /= 0.0 .AND. parame(j,7) /= 0.0)
THEN 262 xijfa=x(i)*uij(i,i)*qq2(i)*sig_ij(i,i)**5 /t &
263 *x(j)*uij(j,j)*qq2(j)*sig_ij(j,j)**5 /t/sig_ij(i,j)**7
264 eij = (parame(i,3)*parame(j,3))**0.5
265 fqq2= fqq2 +factor2* xijfa * (iqq2(i,j)+eij/t*iqq4(i,j))
267 IF (parame(k,7) /= 0.0)
THEN 268 xijkfa=x(i)*uij(i,i)*qq2(i)*sig_ij(i,i)**5 /t/sig_ij(i,j)**3 &
269 *x(j)*uij(j,j)*qq2(j)*sig_ij(j,j)**5 /t/sig_ij(i,k)**3 &
270 *x(k)*uij(k,k)*qq2(k)*sig_ij(k,k)**5 /t/sig_ij(j,k)**3
271 fqq3 = fqq3 + factor3 * xijkfa * iqq3(i,j,k)
278 IF ( fqq2 < -1.e-50 .AND. fqq3 /= 0.0 )
THEN 279 fqq = fqq2 / ( 1.0 - fqq3/fqq2 )
284 END SUBROUTINE f_qq_gross
290 SUBROUTINE f_dq_vrabec_gross( fdq )
293 USE eos_variables, ONLY: nc, ncomp, uij, parame, mseg, sig_ij, rho, eta, x, t
297 REAL,
INTENT(IN OUT) :: fdq
299 INTEGER :: i, j, k, m
300 REAL :: factor2, factor3
301 REAL :: xijfa, xijkfa, eij
303 REAL,
DIMENSION(nc) :: my2dd, myfac, qq2, q_fac
304 REAL,
DIMENSION(nc,nc) :: idq2, idq4
305 REAL,
DIMENSION(nc,nc,nc) :: idq3
311 my2dd(i) = (parame(i,6))**2 *1.e-49 /(uij(i,i)*kbol* mseg(i)*sig_ij(i,i)**3 *1.e-30)
312 myfac(i) = parame(i,3)/t*parame(i,2)**4 *my2dd(i)
314 qq2(i) = (parame(i,7))**2 *1.e-69 / (uij(i,i)*kbol*mseg(i)*sig_ij(i,i)**5 *1.e-50)
315 q_fac(i) = parame(i,3)/t*parame(i,2)**4 *qq2(i)
322 IF (myfac(i) /= 0.0 .AND. q_fac(j) /= 0.0)
THEN 324 idq2(i,j) = idq2(i,j) + dqp2(i,j,m)*eta**m
325 idq4(i,j) = idq4(i,j) + dqp4(i,j,m)*eta**m
329 IF (myfac(k) /= 0.0 .OR. q_fac(k) /= 0.0)
THEN 331 idq3(i,j,k) = idq3(i,j,k) + dqp3(i,j,k,m)*eta**m
339 factor2 = -9.0/4.0 * pi *rho
340 factor3 = pi**2 * rho**2
346 IF (myfac(i) /= 0.0 .AND. q_fac(j) /= 0.0)
THEN 347 xijfa = x(i)*myfac(i) * x(j)*q_fac(j) /sig_ij(i,j)**5
348 eij = (parame(i,3)*parame(j,3))**0.5
349 fdq2 = fdq2 +factor2* xijfa*(idq2(i,j)+eij/t*idq4(i,j))
351 IF (myfac(k) /= 0.0 .OR. q_fac(k) /= 0.0)
THEN 352 xijkfa=x(i)*x(j)*x(k)/(sig_ij(i,j)*sig_ij(i,k)*sig_ij(j,k))**2 &
353 *( myfac(i)*q_fac(j)*myfac(k) + myfac(i)*q_fac(j)*q_fac(k)*1.1937350 )
354 fdq3 = fdq3 + factor3*xijkfa*idq3(i,j,k)
361 IF (fdq2 < -1.e-50 .AND. fdq3 /= 0.0)
THEN 362 fdq = fdq2 / ( 1.0 - fdq3/fdq2 )
365 END SUBROUTINE f_dq_vrabec_gross
373 SUBROUTINE p_polar ( zdd, zddz, zddz2, zddz3, zqq, zqqz, zqqz2, zqqz3, zdq, zdqz, zdqz2, zdqz3 )
375 USE eos_variables, ONLY: ncomp, parame, dd_term, qq_term, dq_term
378 REAL,
INTENT(OUT) :: zdd, zddz, zddz2, zddz3
379 REAL,
INTENT(OUT) :: zqq, zqqz, zqqz2, zqqz3
380 REAL,
INTENT(OUT) :: zdq, zdqz, zdqz2, zdqz3
384 INTEGER :: quadrupole
385 INTEGER :: dipole_quad
404 IF ( sum( parame(1:ncomp,6) ) /= 0.0 ) dipole = 1
405 IF ( sum( parame(1:ncomp,7) ) /= 0.0 ) quadrupole = 1
406 IF ( dipole == 1 .AND. quadrupole == 1 ) dipole_quad = 1
411 IF (dipole == 1)
THEN 413 IF (dd_term ==
'GV')
CALL p_dd_gross_vrabec( zdd, zddz, zddz2, zddz3 )
415 IF (dd_term /=
'GV' .AND. dd_term /=
'SF')
write (*,*)
'specify dipole term !' 422 IF (quadrupole == 1)
THEN 425 IF (qq_term ==
'JG')
CALL p_qq_gross( zqq, zqqz, zqqz2, zqqz3 )
426 IF (qq_term /=
'JG' .AND. qq_term /=
'SF')
write (*,*)
'specify quadrupole term !' 433 IF (dipole_quad == 1)
THEN 435 IF (dq_term ==
'VG')
CALL p_dq_vrabec_gross( zdq, zdqz, zdqz2, zdqz3 )
436 IF (dq_term /=
'VG' )
write (*,*)
'specify DQ-cross term !' 440 END SUBROUTINE p_polar
447 SUBROUTINE p_dd_gross_vrabec( zdd, zddz, zddz2, zddz3 )
450 USE eos_variables, ONLY: nc, ncomp, uij, parame, mseg, sig_ij, rho, eta, x, t
454 REAL,
INTENT(IN OUT) :: zdd, zddz, zddz2, zddz3
456 INTEGER :: i, j, k, m
457 REAL :: factor2, factor3, z3
458 REAL :: xijfa, xijkfa, eij
459 REAL :: fdddr, fddd2, fddd3, fddd4
460 REAL :: fdd2, fdd2z, fdd2z2, fdd2z3, fdd2z4
461 REAL :: fdd3, fdd3z, fdd3z2, fdd3z3, fdd3z4
462 REAL,
DIMENSION(nc) :: my2dd
463 REAL,
DIMENSION(nc,nc) :: idd2, idd2z, idd2z2, idd2z3, idd2z4
464 REAL,
DIMENSION(nc,nc) :: idd4, idd4z, idd4z2, idd4z3, idd4z4
465 REAL,
DIMENSION(nc,nc,nc) :: idd3, idd3z, idd3z2, idd3z3, idd3z4
475 my2dd(i) = (parame(i,6))**2 *1.e-49 / (uij(i,i)*kbol*mseg(i)*sig_ij(i,i)**3 *1.e-30)
492 idd2(i,j) =idd2(i,j) + ddp2(i,j,m) *z3**(m+1)
493 idd4(i,j) =idd4(i,j) + ddp4(i,j,m) *z3**(m+1)
494 idd2z(i,j) =idd2z(i,j) +ddp2(i,j,m)*
REAL(m+1) *z3**m
495 idd4z(i,j) =idd4z(i,j) +ddp4(i,j,m)*
REAL(m+1) *z3**m
496 idd2z2(i,j)=idd2z2(i,j)+ddp2(i,j,m)*
REAL((m+1)*m) *z3**(m-1)
497 idd4z2(i,j)=idd4z2(i,j)+ddp4(i,j,m)*
REAL((m+1)*m) *z3**(m-1)
498 idd2z3(i,j)=idd2z3(i,j)+ddp2(i,j,m)*
REAL((m+1)*m*(m-1)) *z3**(m-2)
499 idd4z3(i,j)=idd4z3(i,j)+ddp4(i,j,m)*
REAL((m+1)*m*(m-1)) *z3**(m-2)
500 idd2z4(i,j)=idd2z4(i,j)+ddp2(i,j,m)*
REAL((m+1)*m*(m-1)*(m-2)) *z3**(m-3)
501 idd4z4(i,j)=idd4z4(i,j)+ddp4(i,j,m)*
REAL((m+1)*m*(m-1)*(m-2)) *z3**(m-3)
511 idd3(i,j,k) =idd3(i,j,k) +ddp3(i,j,k,m)*z3**(m+2)
512 idd3z(i,j,k) =idd3z(i,j,k) +ddp3(i,j,k,m)*
REAL(m+2)*z3**(m+1)
513 idd3z2(i,j,k)=idd3z2(i,j,k)+ddp3(i,j,k,m)*
REAL((m+2)*(m+1))*z3**m
514 idd3z3(i,j,k)=idd3z3(i,j,k)+ddp3(i,j,k,m)*
REAL((m+2)*(m+1)*m)*z3**(m-1)
515 idd3z4(i,j,k)=idd3z4(i,j,k)+ddp3(i,j,k,m)*
REAL((m+2)*(m+1)*m*(m-1)) *z3**(m-2)
524 factor3= -4.0/3.0*pi**2 * (rho/z3)**2
539 xijfa = x(i)*parame(i,3)/t*parame(i,2)**3 *x(j)*parame(j,3)/t*parame(j,2)**3 &
540 / ((parame(i,2)+parame(j,2))/2.0)**3 *my2dd(i)*my2dd(j)
541 eij = (parame(i,3)*parame(j,3))**0.5
542 fdd2 = fdd2 +factor2*xijfa*(idd2(i,j) +eij/t*idd4(i,j))
543 fdd2z = fdd2z +factor2*xijfa*(idd2z(i,j) +eij/t*idd4z(i,j))
544 fdd2z2 = fdd2z2+factor2*xijfa*(idd2z2(i,j)+eij/t*idd4z2(i,j))
545 fdd2z3 = fdd2z3+factor2*xijfa*(idd2z3(i,j)+eij/t*idd4z3(i,j))
546 fdd2z4 = fdd2z4+factor2*xijfa*(idd2z4(i,j)+eij/t*idd4z4(i,j))
549 xijkfa= x(i)*parame(i,3)/t*parame(i,2)**3 *x(j)*parame(j,3)/t*parame(j,2)**3 &
550 *x(k)*parame(k,3)/t*parame(k,2)**3 /((parame(i,2)+parame(j,2))/2.0) &
551 /((parame(i,2)+parame(k,2))/2.0) /((parame(j,2)+parame(k,2))/2.0) &
552 *my2dd(i)*my2dd(j)*my2dd(k)
553 fdd3 = fdd3 + factor3 * xijkfa*idd3(i,j,k)
554 fdd3z = fdd3z + factor3 * xijkfa*idd3z(i,j,k)
555 fdd3z2 = fdd3z2 + factor3 * xijkfa*idd3z2(i,j,k)
556 fdd3z3 = fdd3z3 + factor3 * xijkfa*idd3z3(i,j,k)
557 fdd3z4 = fdd3z4 + factor3 * xijkfa*idd3z4(i,j,k)
563 IF (fdd2 < -1.e-50 .AND. fdd3 /= 0.0 .AND. fdd2z /= 0.0 .AND. fdd3z /= 0.0)
THEN 565 fdddr= fdd2* (fdd2*fdd2z - 2.0*fdd3*fdd2z+fdd2*fdd3z) / (fdd2-fdd3)**2
566 fddd2=(2.0*fdd2*fdd2z*fdd2z +fdd2*fdd2*fdd2z2 &
567 -2.0*fdd2z**2 *fdd3-2.0*fdd2*fdd2z2*fdd3+fdd2*fdd2*fdd3z2) &
568 /(fdd2-fdd3)**2 + fdddr * 2.0*(fdd3z-fdd2z)/(fdd2-fdd3)
569 fddd3=(2.0*fdd2z**3 +6.0*fdd2*fdd2z*fdd2z2+fdd2*fdd2*fdd2z3 &
570 -6.0*fdd2z*fdd2z2*fdd3-2.0*fdd2z**2 *fdd3z &
571 -2.0*fdd2*fdd2z3*fdd3 -2.0*fdd2*fdd2z2*fdd3z &
572 +2.0*fdd2*fdd2z*fdd3z2+fdd2*fdd2*fdd3z3) /(fdd2-fdd3)**2 &
573 + 2.0/(fdd2-fdd3)* ( 2.0*fddd2*(fdd3z-fdd2z) &
574 + fdddr*(fdd3z2-fdd2z2) &
575 - fdddr/(fdd2-fdd3)*(fdd3z-fdd2z)**2 )
576 fddd4=( 12.0*fdd2z**2 *fdd2z2+6.0*fdd2*fdd2z2**2 &
577 +8.0*fdd2*fdd2z*fdd2z3+fdd2*fdd2*fdd2z4-6.0*fdd2z2**2 *fdd3 &
578 -12.0*fdd2z*fdd2z2*fdd3z -8.0*fdd2z*fdd2z3*fdd3 &
579 -2.0*fdd2*fdd2z4*fdd3-4.0*fdd2*fdd2z3*fdd3z &
580 +4.0*fdd2*fdd2z*fdd3z3+fdd2**2 *fdd3z4 ) /(fdd2-fdd3)**2 &
581 + 6.0/(fdd2-fdd3)* ( fddd3*(fdd3z-fdd2z) &
582 -fddd2/(fdd2-fdd3)*(fdd3z-fdd2z)**2 &
583 - fdddr/(fdd2-fdd3)*(fdd3z-fdd2z)*(fdd3z2-fdd2z2) &
584 + fddd2*(fdd3z2-fdd2z2) +1.0/3.0*fdddr*(fdd3z3-fdd2z3) )
586 zddz = fddd2*eta + fdddr
587 zddz2 = fddd3*eta + 2.0* fddd2
588 zddz3 = fddd4*eta + 3.0* fddd3
593 END SUBROUTINE p_dd_gross_vrabec
601 SUBROUTINE p_qq_gross( zqq, zqqz, zqqz2, zqqz3 )
604 USE eos_variables, ONLY: nc, ncomp, uij, parame, mseg, sig_ij, rho, eta, x, t
608 REAL,
INTENT(IN OUT) :: zqq, zqqz, zqqz2, zqqz3
610 INTEGER :: i, j, k, m
611 REAL :: factor2, factor3, z3
612 REAL :: xijfa, xijkfa, eij
613 REAL :: fqqdr, fqqd2, fqqd3, fqqd4
614 REAL :: fqq2, fqq2z, fqq2z2, fqq2z3, fqq2z4
615 REAL :: fqq3, fqq3z, fqq3z2, fqq3z3, fqq3z4
616 REAL,
DIMENSION(nc) :: qq2
617 REAL,
DIMENSION(nc,nc) :: iqq2, iqq2z, iqq2z2, iqq2z3, iqq2z4
618 REAL,
DIMENSION(nc,nc) :: iqq4, iqq4z, iqq4z2, iqq4z3, iqq4z4
619 REAL,
DIMENSION(nc,nc,nc) :: iqq3, iqq3z, iqq3z2, iqq3z3, iqq3z4
628 qq2(i) = (parame(i,7))**2 *1.e-69 / (uij(i,i)*kbol*mseg(i)*sig_ij(i,i)**5 *1.e-50)
643 IF (parame(i,7) /= 0.0 .AND. parame(j,7) /= 0.0)
THEN 645 iqq2(i,j) =iqq2(i,j) + qqp2(i,j,m)*z3**(m+1)
646 iqq4(i,j) =iqq4(i,j) + qqp4(i,j,m)*z3**(m+1)
647 iqq2z(i,j) =iqq2z(i,j) +qqp2(i,j,m)*
REAL(m+1)*z3**m
648 iqq4z(i,j) =iqq4z(i,j) +qqp4(i,j,m)*
REAL(m+1)*z3**m
649 iqq2z2(i,j)=iqq2z2(i,j)+qqp2(i,j,m)*
REAL((m+1)*m)*z3**(m-1)
650 iqq4z2(i,j)=iqq4z2(i,j)+qqp4(i,j,m)*
REAL((m+1)*m)*z3**(m-1)
651 iqq2z3(i,j)=iqq2z3(i,j)+qqp2(i,j,m)*
REAL((m+1)*m*(m-1)) *z3**(m-2)
652 iqq4z3(i,j)=iqq4z3(i,j)+qqp4(i,j,m)*
REAL((m+1)*m*(m-1)) *z3**(m-2)
653 iqq2z4(i,j)=iqq2z4(i,j)+qqp2(i,j,m)*
REAL((m+1)*m*(m-1)*(m-2)) *z3**(m-3)
654 iqq4z4(i,j)=iqq4z4(i,j)+qqp4(i,j,m)*
REAL((m+1)*m*(m-1)*(m-2)) *z3**(m-3)
662 IF (parame(k,7) /= 0.0)
THEN 664 iqq3(i,j,k) =iqq3(i,j,k) + qqp3(i,j,k,m)*z3**(m+2)
665 iqq3z(i,j,k)=iqq3z(i,j,k)+qqp3(i,j,k,m)*
REAL(m+2)*z3**(m+1)
666 iqq3z2(i,j,k)=iqq3z2(i,j,k)+qqp3(i,j,k,m)*
REAL((m+2)*(m+1)) *z3**m
667 iqq3z3(i,j,k)=iqq3z3(i,j,k)+qqp3(i,j,k,m)*
REAL((m+2)*(m+1)*m) *z3**(m-1)
668 iqq3z4(i,j,k)=iqq3z4(i,j,k)+qqp3(i,j,k,m) *
REAL((m+2)*(m+1)*m*(m-1)) *z3**(m-2)
677 factor2= -9.0/16.0*pi *rho/z3
678 factor3= 9.0/16.0*pi**2 * (rho/z3)**2
692 IF (parame(i,7) /= 0.0 .AND. parame(j,7) /= 0.0)
THEN 693 xijfa =x(i)*uij(i,i)*qq2(i)*sig_ij(i,i)**5 /t &
694 *x(j)*uij(j,j)*qq2(j)*sig_ij(j,j)**5 /t/sig_ij(i,j)**7
695 eij = (parame(i,3)*parame(j,3))**0.5
696 fqq2= fqq2 +factor2*xijfa*(iqq2(i,j) +eij/t*iqq4(i,j) )
697 fqq2z =fqq2z +factor2*xijfa*(iqq2z(i,j) +eij/t*iqq4z(i,j) )
698 fqq2z2=fqq2z2+factor2*xijfa*(iqq2z2(i,j)+eij/t*iqq4z2(i,j))
699 fqq2z3=fqq2z3+factor2*xijfa*(iqq2z3(i,j)+eij/t*iqq4z3(i,j))
700 fqq2z4=fqq2z4+factor2*xijfa*(iqq2z4(i,j)+eij/t*iqq4z4(i,j))
702 IF (parame(k,7) /= 0.0)
THEN 703 xijkfa=x(i)*uij(i,i)*qq2(i)*sig_ij(i,i)**5 /t/sig_ij(i,j)**3 &
704 *x(j)*uij(j,j)*qq2(j)*sig_ij(j,j)**5 /t/sig_ij(i,k)**3 &
705 *x(k)*uij(k,k)*qq2(k)*sig_ij(k,k)**5 /t/sig_ij(j,k)**3
706 fqq3 = fqq3 + factor3 * xijkfa*iqq3(i,j,k)
707 fqq3z = fqq3z + factor3 * xijkfa*iqq3z(i,j,k)
708 fqq3z2 = fqq3z2 + factor3 * xijkfa*iqq3z2(i,j,k)
709 fqq3z3 = fqq3z3 + factor3 * xijkfa*iqq3z3(i,j,k)
710 fqq3z4 = fqq3z4 + factor3 * xijkfa*iqq3z4(i,j,k)
716 IF (fqq2 < -1.e-50 .AND. fqq3 /= 0.0 .AND. fqq2z /= 0.0 .AND. fqq3z /= 0.0)
THEN 717 fqqdr = fqq2* (fqq2*fqq2z - 2.0*fqq3*fqq2z+fqq2*fqq3z) /(fqq2-fqq3)**2
718 fqqd2= (2.0*fqq2*fqq2z*fqq2z +fqq2*fqq2*fqq2z2 &
719 -2.0*fqq2z**2 *fqq3-2.0*fqq2*fqq2z2*fqq3+fqq2*fqq2*fqq3z2) &
720 /(fqq2-fqq3)**2 + fqqdr * 2.0*(fqq3z-fqq2z)/(fqq2-fqq3)
721 fqqd3=(2.0*fqq2z**3 +6.0*fqq2*fqq2z*fqq2z2+fqq2*fqq2*fqq2z3 &
722 -6.0*fqq2z*fqq2z2*fqq3-2.0*fqq2z**2 *fqq3z &
723 -2.0*fqq2*fqq2z3*fqq3 -2.0*fqq2*fqq2z2*fqq3z &
724 +2.0*fqq2*fqq2z*fqq3z2+fqq2*fqq2*fqq3z3) /(fqq2-fqq3)**2 &
725 + 2.0/(fqq2-fqq3)* ( 2.0*fqqd2*(fqq3z-fqq2z) &
726 + fqqdr*(fqq3z2-fqq2z2) - fqqdr/(fqq2-fqq3)*(fqq3z-fqq2z)**2 )
727 fqqd4=( 12.0*fqq2z**2 *fqq2z2+6.0*fqq2*fqq2z2**2 &
728 +8.0*fqq2*fqq2z*fqq2z3+fqq2*fqq2*fqq2z4-6.0*fqq2z2**2 *fqq3 &
729 -12.0*fqq2z*fqq2z2*fqq3z -8.0*fqq2z*fqq2z3*fqq3 &
730 -2.0*fqq2*fqq2z4*fqq3-4.0*fqq2*fqq2z3*fqq3z &
731 +4.0*fqq2*fqq2z*fqq3z3+fqq2**2 *fqq3z4 ) /(fqq2-fqq3)**2 &
732 + 6.0/(fqq2-fqq3)* ( fqqd3*(fqq3z-fqq2z) &
733 -fqqd2/(fqq2-fqq3)*(fqq3z-fqq2z)**2 &
734 - fqqdr/(fqq2-fqq3)*(fqq3z-fqq2z)*(fqq3z2-fqq2z2) &
735 + fqqd2*(fqq3z2-fqq2z2) +1.0/3.0*fqqdr*(fqq3z3-fqq2z3) )
737 zqqz = fqqd2*eta + fqqdr
738 zqqz2 = fqqd3*eta + 2.0* fqqd2
739 zqqz3 = fqqd4*eta + 3.0* fqqd3
743 END SUBROUTINE p_qq_gross
749 SUBROUTINE p_dq_vrabec_gross( zdq, zdqz, zdqz2, zdqz3 )
752 USE eos_variables, ONLY: nc, ncomp, uij, parame, mseg, sig_ij, rho, eta, x, t
756 REAL,
INTENT(IN OUT) :: zdq, zdqz, zdqz2, zdqz3
758 INTEGER :: i, j, k, m
759 REAL :: factor2, factor3, z3
760 REAL :: xijfa, xijkfa, eij
761 REAL :: fdqdr, fdqd2, fdqd3, fdqd4
762 REAL :: fdq2, fdq2z, fdq2z2, fdq2z3, fdq2z4
763 REAL :: fdq3, fdq3z, fdq3z2, fdq3z3, fdq3z4
764 REAL,
DIMENSION(nc) :: my2dd, myfac, qq2, q_fac
765 REAL,
DIMENSION(nc,nc) :: idq2, idq2z, idq2z2, idq2z3, idq2z4
766 REAL,
DIMENSION(nc,nc) :: idq4, idq4z, idq4z2, idq4z3, idq4z4
767 REAL,
DIMENSION(nc,nc,nc) :: idq3, idq3z, idq3z2, idq3z3, idq3z4
776 my2dd(i) = (parame(i,6))**2 *1.e-49 / (uij(i,i)*kbol*mseg(i)*sig_ij(i,i)**3 *1.e-30)
777 myfac(i) = parame(i,3)/t*parame(i,2)**4 *my2dd(i)
778 qq2(i) = (parame(i,7))**2 *1.e-69 / (uij(i,i)*kbol*mseg(i)*sig_ij(i,i)**5 *1.e-50)
779 q_fac(i) = parame(i,3)/t*parame(i,2)**4 *qq2(i)
795 IF (myfac(i) /= 0.0 .AND. q_fac(j) /= 0.0)
THEN 797 idq2(i,j) =idq2(i,j) + dqp2(i,j,m)*z3**(m+1)
798 idq4(i,j) =idq4(i,j) + dqp4(i,j,m)*z3**(m+1)
799 idq2z(i,j) =idq2z(i,j) +dqp2(i,j,m)*
REAL(m+1)*z3**m
800 idq4z(i,j) =idq4z(i,j) +dqp4(i,j,m)*
REAL(m+1)*z3**m
801 idq2z2(i,j)=idq2z2(i,j)+dqp2(i,j,m)*
REAL((m+1)*m)*z3**(m-1)
802 idq4z2(i,j)=idq4z2(i,j)+dqp4(i,j,m)*
REAL((m+1)*m)*z3**(m-1)
803 idq2z3(i,j)=idq2z3(i,j)+dqp2(i,j,m)*
REAL((m+1)*m*(m-1)) *z3**(m-2)
804 idq4z3(i,j)=idq4z3(i,j)+dqp4(i,j,m)*
REAL((m+1)*m*(m-1)) *z3**(m-2)
805 idq2z4(i,j)=idq2z4(i,j)+dqp2(i,j,m)*
REAL((m+1)*m*(m-1)*(m-2)) *z3**(m-3)
806 idq4z4(i,j)=idq4z4(i,j)+dqp4(i,j,m)*
REAL((m+1)*m*(m-1)*(m-2)) *z3**(m-3)
814 IF (myfac(k) /= 0.0.OR.q_fac(k) /= 0.0)
THEN 816 idq3(i,j,k) =idq3(i,j,k) + dqp3(i,j,k,m)*z3**(m+2)
817 idq3z(i,j,k)=idq3z(i,j,k)+dqp3(i,j,k,m)*
REAL(m+2)*z3**(m+1)
818 idq3z2(i,j,k)=idq3z2(i,j,k)+dqp3(i,j,k,m)*
REAL((m+2)*(m+1)) *z3**m
819 idq3z3(i,j,k)=idq3z3(i,j,k)+dqp3(i,j,k,m)*
REAL((m+2)*(m+1)*m) *z3**(m-1)
820 idq3z4(i,j,k)=idq3z4(i,j,k)+dqp3(i,j,k,m) &
821 *
REAL((m+2)*(m+1)*m*(m-1)) *z3**(m-2)
830 factor2= -9.0/4.0*pi *rho/z3
831 factor3= pi**2 * (rho/z3)**2
845 IF (myfac(i) /= 0.0 .AND. q_fac(j) /= 0.0)
THEN 846 xijfa =x(i)*myfac(i) * x(j)*q_fac(j) /sig_ij(i,j)**5
847 eij = (parame(i,3)*parame(j,3))**0.5
848 fdq2= fdq2 +factor2*xijfa*(idq2(i,j) +eij/t*idq4(i,j) )
849 fdq2z =fdq2z +factor2*xijfa*(idq2z(i,j) +eij/t*idq4z(i,j) )
850 fdq2z2=fdq2z2+factor2*xijfa*(idq2z2(i,j)+eij/t*idq4z2(i,j))
851 fdq2z3=fdq2z3+factor2*xijfa*(idq2z3(i,j)+eij/t*idq4z3(i,j))
852 fdq2z4=fdq2z4+factor2*xijfa*(idq2z4(i,j)+eij/t*idq4z4(i,j))
854 IF (myfac(k) /= 0.0.OR.q_fac(k) /= 0.0)
THEN 855 xijkfa=x(i)*x(j)*x(k)/(sig_ij(i,j)*sig_ij(i,k)*sig_ij(j,k))**2 &
856 *( myfac(i)*q_fac(j)*myfac(k) + myfac(i)*q_fac(j)*q_fac(k)*1.193735 )
857 fdq3 =fdq3 + factor3 * xijkfa*idq3(i,j,k)
858 fdq3z =fdq3z + factor3 * xijkfa*idq3z(i,j,k)
859 fdq3z2=fdq3z2 + factor3 * xijkfa*idq3z2(i,j,k)
860 fdq3z3=fdq3z3 + factor3 * xijkfa*idq3z3(i,j,k)
861 fdq3z4=fdq3z4 + factor3 * xijkfa*idq3z4(i,j,k)
867 IF (fdq2 < -1.e-50 .AND. fdq3 /= 0.0 .AND. fdq2z /= 0.0 .AND. fdq3z /= 0.0)
THEN 868 fdqdr = fdq2* (fdq2*fdq2z - 2.0*fdq3*fdq2z+fdq2*fdq3z) /(fdq2-fdq3)**2
869 fdqd2= (2.0*fdq2*fdq2z*fdq2z +fdq2*fdq2*fdq2z2 &
870 -2.0*fdq2z**2 *fdq3-2.0*fdq2*fdq2z2*fdq3+fdq2*fdq2*fdq3z2) &
871 /(fdq2-fdq3)**2 + fdqdr * 2.0*(fdq3z-fdq2z)/(fdq2-fdq3)
872 fdqd3=(2.0*fdq2z**3 +6.0*fdq2*fdq2z*fdq2z2+fdq2*fdq2*fdq2z3 &
873 -6.0*fdq2z*fdq2z2*fdq3-2.0*fdq2z**2 *fdq3z &
874 -2.0*fdq2*fdq2z3*fdq3 -2.0*fdq2*fdq2z2*fdq3z &
875 +2.0*fdq2*fdq2z*fdq3z2+fdq2*fdq2*fdq3z3) /(fdq2-fdq3)**2 &
876 + 2.0/(fdq2-fdq3)* ( 2.0*fdqd2*(fdq3z-fdq2z) &
877 + fdqdr*(fdq3z2-fdq2z2) - fdqdr/(fdq2-fdq3)*(fdq3z-fdq2z)**2 )
878 fdqd4=( 12.0*fdq2z**2 *fdq2z2+6.0*fdq2*fdq2z2**2 &
879 +8.0*fdq2*fdq2z*fdq2z3+fdq2*fdq2*fdq2z4-6.0*fdq2z2**2 *fdq3 &
880 -12.0*fdq2z*fdq2z2*fdq3z -8.0*fdq2z*fdq2z3*fdq3 &
881 -2.0*fdq2*fdq2z4*fdq3-4.0*fdq2*fdq2z3*fdq3z &
882 +4.0*fdq2*fdq2z*fdq3z3+fdq2**2 *fdq3z4 ) /(fdq2-fdq3)**2 &
883 + 6.0/(fdq2-fdq3)* ( fdqd3*(fdq3z-fdq2z) &
884 -fdqd2/(fdq2-fdq3)*(fdq3z-fdq2z)**2 &
885 - fdqdr/(fdq2-fdq3)*(fdq3z-fdq2z)*(fdq3z2-fdq2z2) &
886 + fdqd2*(fdq3z2-fdq2z2) +1.0/3.0*fdqdr*(fdq3z3-fdq2z3) )
888 zdqz = fdqd2*eta + fdqdr
889 zdqz2 = fdqd3*eta + 2.0* fdqd2
890 zdqz3 = fdqd4*eta + 3.0* fdqd3
894 END SUBROUTINE p_dq_vrabec_gross
902 SUBROUTINE phi_polar ( k, z3_rk, fdd_rk, fqq_rk, fdq_rk )
904 USE eos_variables, ONLY: ncomp, parame, dd_term, qq_term, dq_term
907 INTEGER,
INTENT(IN) :: k
908 REAL,
INTENT(IN) :: z3_rk
909 REAL,
INTENT(OUT) :: fdd_rk, fqq_rk, fdq_rk
913 INTEGER :: quadrupole
914 INTEGER :: dipole_quad
924 IF ( sum( parame(1:ncomp,6) ) /= 0.0 ) dipole = 1
925 IF ( sum( parame(1:ncomp,7) ) /= 0.0 ) quadrupole = 1
926 IF ( dipole == 1 .AND. quadrupole == 1 ) dipole_quad = 1
931 IF (dipole == 1)
THEN 933 IF (dd_term ==
'GV')
CALL phi_dd_gross_vrabec( k, z3_rk, fdd_rk )
936 IF (dd_term /=
'GV' .AND. dd_term /=
'SF')
write (*,*)
'specify dipole term !' 943 IF (quadrupole == 1)
THEN 946 IF (qq_term ==
'JG')
CALL phi_qq_gross( k, z3_rk, fqq_rk )
948 IF (qq_term /=
'JG' .AND. qq_term /=
'SF')
write (*,*)
'specify quadrupole term !' 955 IF (dipole_quad == 1)
THEN 957 IF (dq_term ==
'VG')
CALL phi_dq_vrabec_gross( k, z3_rk, fdq_rk )
959 IF (dq_term /=
'VG' )
write (*,*)
'specify DQ-cross term !' 963 END SUBROUTINE phi_polar
970 SUBROUTINE phi_dd_gross_vrabec( k, z3_rk, fdd_rk )
973 USE eos_variables, ONLY: nc, ncomp, uij, parame, mseg, sig_ij, rho, eta, x, t
977 INTEGER,
INTENT(IN) :: k
978 REAL,
INTENT(IN) :: z3_rk
979 REAL,
INTENT(IN OUT) :: fdd_rk
982 INTEGER :: i, j, l, m
984 REAL :: factor2, factor3, z3
985 REAL :: xijfa, xijkfa, xijfa_x, xijkf_x, eij
986 REAL :: fdd2, fdd3, fdd2x, fdd3x
987 REAL,
DIMENSION(nc) :: my2dd
988 REAL,
DIMENSION(nc,nc) :: idd2, idd4, idd2x, idd4x
989 REAL,
DIMENSION(nc,nc,nc) :: idd3, idd3x
996 IF ( uij(i,i) == 0.0 )
write (*,*)
'PHI_DD_GROSS_VRABEC: do not use dimensionless units' 997 IF ( uij(i,i) == 0.0 ) stop
998 my2dd(i) = (parame(i,6))**2 *1.e-49 / (uij(i,i)*kbol*mseg(i)*sig_ij(i,i)**3 *1.e-30)
1007 IF (parame(i,6) /= 0.0 .AND. parame(j,6) /= 0.0)
THEN 1009 idd2(i,j) =idd2(i,j) + ddp2(i,j,m)*z3**m
1010 idd4(i,j) =idd4(i,j) + ddp4(i,j,m)*z3**m
1011 idd2x(i,j) =idd2x(i,j)+ ddp2(i,j,m)*
REAL(m)*z3**(m-1)*z3_rk
1012 idd4x(i,j) =idd4x(i,j)+ ddp4(i,j,m)*
REAL(m)*z3**(m-1)*z3_rk
1017 IF (parame(l,6) /= 0.0)
THEN 1019 idd3(i,j,l) =idd3(i,j,l) +ddp3(i,j,l,m)*z3**m
1020 idd3x(i,j,l)=idd3x(i,j,l)+ddp3(i,j,l,m)*
REAL(m)*z3**(m-1)*z3_rk
1029 factor3= -4.0/3.0*pi**2
1036 xijfa_x = 2.0*x(i)*rho*uij(i,i)*my2dd(i)*sig_ij(i,i)**3 /t &
1037 *uij(k,k)*my2dd(k)*sig_ij(k,k)**3 /t/sig_ij(i,k)**3
1038 eij = (parame(i,3)*parame(k,3))**0.5
1039 fdd2x = fdd2x + factor2*xijfa_x*( idd2(i,k) + eij/t*idd4(i,k) )
1041 IF (parame(i,6) /= 0.0 .AND. parame(j,6) /= 0.0)
THEN 1042 xijfa =x(i)*rho*uij(i,i)*my2dd(i)*sig_ij(i,i)**3 /t &
1043 *x(j)*rho*uij(j,j)*my2dd(j)*sig_ij(j,j)**3 /t/sig_ij(i,j)**3
1044 eij = (parame(i,3)*parame(j,3))**0.5
1045 fdd2= fdd2 +factor2*xijfa*(idd2(i,j) +eij/t*idd4(i,j) )
1046 fdd2x =fdd2x +factor2*xijfa*(idd2x(i,j)+eij/t*idd4x(i,j))
1048 xijkf_x=x(i)*rho*uij(i,i)*my2dd(i)*sig_ij(i,i)**3 /t/sig_ij(i,j) &
1049 *x(j)*rho*uij(j,j)*my2dd(j)*sig_ij(j,j)**3 /t/sig_ij(i,k) &
1050 *3.0* uij(k,k)*my2dd(k)*sig_ij(k,k)**3 /t/sig_ij(j,k)
1051 fdd3x=fdd3x+factor3*xijkf_x*idd3(i,j,k)
1053 IF (parame(l,6) /= 0.0)
THEN 1054 xijkfa= x(i)*rho*uij(i,i)/t*my2dd(i)*sig_ij(i,i)**3 &
1055 *x(j)*rho*uij(j,j)/t*my2dd(j)*sig_ij(j,j)**3 &
1056 *x(l)*rho*uij(l,l)/t*my2dd(l)*sig_ij(l,l)**3 &
1057 /sig_ij(i,j)/sig_ij(i,l)/sig_ij(j,l)
1058 fdd3 =fdd3 + factor3 * xijkfa *idd3(i,j,l)
1059 fdd3x =fdd3x + factor3 * xijkfa *idd3x(i,j,l)
1066 IF (fdd2 < -1.e-50 .AND. fdd3 /= 0.0 .AND. fdd2x /= 0.0 .AND. fdd3x /= 0.0)
THEN 1068 fdd_rk = fdd2* (fdd2*fdd2x - 2.0*fdd3*fdd2x+fdd2*fdd3x) / (fdd2-fdd3)**2
1072 END SUBROUTINE phi_dd_gross_vrabec
1080 SUBROUTINE phi_qq_gross( k, z3_rk, fqq_rk )
1083 USE eos_variables, ONLY: nc, ncomp, uij, parame, mseg, sig_ij, rho, eta, x, t
1087 INTEGER,
INTENT(IN) :: k
1088 REAL,
INTENT(IN) :: z3_rk
1089 REAL,
INTENT(IN OUT) :: fqq_rk
1092 INTEGER :: i, j, l, m
1094 REAL :: factor2, factor3, z3
1095 REAL :: xijfa, xijkfa, xijfa_x, xijkf_x, eij
1096 REAL :: fqq2, fqq3, fqq2x, fqq3x
1097 REAL,
DIMENSION(nc) :: qq2
1098 REAL,
DIMENSION(nc,nc) :: iqq2, iqq4, iqq2x, iqq4x
1099 REAL,
DIMENSION(nc,nc,nc) :: iqq3, iqq3x
1106 IF ( uij(i,i) == 0.0 )
write (*,*)
'PHI_QQ_GROSS: do not use dimensionless units' 1107 qq2(i) = (parame(i,7))**2 *1.e-69 / (uij(i,i)*kbol*mseg(i)*sig_ij(i,i)**5 *1.e-50)
1116 IF (parame(i,7) /= 0.0 .AND. parame(j,7) /= 0.0)
THEN 1118 iqq2(i,j) = iqq2(i,j) + qqp2(i,j,m) * z3**m
1119 iqq4(i,j) = iqq4(i,j) + qqp4(i,j,m) * z3**m
1120 iqq2x(i,j) = iqq2x(i,j) + qqp2(i,j,m) *
REAL(m)*z3**(m-1)*z3_rk
1121 iqq4x(i,j) = iqq4x(i,j) + qqp4(i,j,m) *
REAL(m)*z3**(m-1)*z3_rk
1126 IF (parame(l,7) /= 0.0)
THEN 1128 iqq3(i,j,l) = iqq3(i,j,l) + qqp3(i,j,l,m)*z3**m
1129 iqq3x(i,j,l) = iqq3x(i,j,l) + qqp3(i,j,l,m)*
REAL(m) *z3**(m-1)*z3_rk
1137 factor2= -9.0/16.0*pi
1138 factor3= 9.0/16.0*pi**2
1145 xijfa_x = 2.0*x(i)*rho*uij(i,i)*qq2(i)*sig_ij(i,i)**5 /t &
1146 *uij(k,k)*qq2(k)*sig_ij(k,k)**5 /t/sig_ij(i,k)**7
1147 eij = (parame(i,3)*parame(k,3))**0.5
1148 fqq2x =fqq2x +factor2*xijfa_x*(iqq2(i,k)+eij/t*iqq4(i,k))
1150 IF (parame(i,7) /= 0.0 .AND. parame(j,7) /= 0.0)
THEN 1151 xijfa =x(i)*rho*uij(i,i)*qq2(i)*sig_ij(i,i)**5 /t &
1152 *x(j)*rho*uij(j,j)*qq2(j)*sig_ij(j,j)**5 /t/sig_ij(i,j)**7
1153 eij = (parame(i,3)*parame(j,3))**0.5
1154 fqq2= fqq2 +factor2*xijfa*(iqq2(i,j) +eij/t*iqq4(i,j) )
1155 fqq2x =fqq2x +factor2*xijfa*(iqq2x(i,j)+eij/t*iqq4x(i,j))
1157 xijkf_x=x(i)*rho*uij(i,i)*qq2(i)*sig_ij(i,i)**5 /t/sig_ij(i,j)**3 &
1158 *x(j)*rho*uij(j,j)*qq2(j)*sig_ij(j,j)**5 /t/sig_ij(i,k)**3 &
1159 *3.0* uij(k,k)*qq2(k)*sig_ij(k,k)**5 /t/sig_ij(j,k)**3
1160 fqq3x = fqq3x + factor3*xijkf_x*iqq3(i,j,k)
1162 IF (parame(l,7) /= 0.0)
THEN 1163 xijkfa=x(i)*rho*uij(i,i)*qq2(i)*sig_ij(i,i)**5 /t/sig_ij(i,j)**3 &
1164 *x(j)*rho*uij(j,j)*qq2(j)*sig_ij(j,j)**5 /t/sig_ij(i,l)**3 &
1165 *x(l)*rho*uij(l,l)*qq2(l)*sig_ij(l,l)**5 /t/sig_ij(j,l)**3
1166 fqq3 =fqq3 + factor3 * xijkfa *iqq3(i,j,l)
1167 fqq3x =fqq3x + factor3 * xijkfa *iqq3x(i,j,l)
1174 IF (fqq2 < -1.e-50 .AND. fqq3 /= 0.0 .AND. fqq2x /= 0.0 .AND. fqq3x /= 0.0)
THEN 1175 fqq_rk = fqq2* (fqq2*fqq2x - 2.0*fqq3*fqq2x+fqq2*fqq3x) / (fqq2-fqq3)**2
1178 END SUBROUTINE phi_qq_gross
1184 SUBROUTINE phi_dq_vrabec_gross( k, z3_rk, fdq_rk )
1187 USE eos_variables, ONLY: nc, ncomp, uij, parame, mseg, sig_ij, rho, eta, x, t
1191 INTEGER,
INTENT(IN) :: k
1192 REAL,
INTENT(IN) :: z3_rk
1193 REAL,
INTENT(IN OUT) :: fdq_rk
1196 INTEGER :: i, j, l, m
1198 REAL :: factor2, factor3, z3
1199 REAL :: xijfa, xijkfa, xijfa_x, xijkf_x, eij
1200 REAL :: fdq2, fdq3, fdq2x, fdq3x
1201 REAL,
DIMENSION(nc) :: my2dd, myfac, qq2, q_fac
1202 REAL,
DIMENSION(nc,nc) :: idq2, idq4, idq2x, idq4x
1203 REAL,
DIMENSION(nc,nc,nc) :: idq3, idq3x
1209 my2dd(i) = (parame(i,6))**2 *1.e-49 / (uij(i,i)*kbol*mseg(i)*sig_ij(i,i)**3 *1.e-30)
1210 myfac(i) = parame(i,3)/t*parame(i,2)**4 *my2dd(i)
1211 qq2(i) = (parame(i,7))**2 *1.e-69 / (uij(i,i)*kbol*mseg(i)*sig_ij(i,i)**5 *1.e-50)
1212 q_fac(i) = parame(i,3)/t*parame(i,2)**4 *qq2(i)
1222 idq2(i,j) = idq2(i,j) + dqp2(i,j,m)*z3**m
1223 idq4(i,j) = idq4(i,j) + dqp4(i,j,m)*z3**m
1224 idq2x(i,j) = idq2x(i,j) + dqp2(i,j,m)*
REAL(m)*z3**(m-1) *z3_rk
1225 idq4x(i,j) = idq4x(i,j) + dqp4(i,j,m)*
REAL(m)*z3**(m-1) *z3_rk
1231 idq3(i,j,l) =idq3(i,j,l) +dqp3(i,j,l,m)*z3**m
1232 idq3x(i,j,l)=idq3x(i,j,l)+dqp3(i,j,l,m)*
REAL(m)*z3**(m-1)*z3_rk
1238 factor2= -9.0/4.0*pi
1246 xijfa_x = x(i)*rho*( myfac(i)*q_fac(k) + myfac(k)*q_fac(i) ) / sig_ij(i,k)**5
1247 eij = (parame(i,3)*parame(k,3))**0.5
1248 fdq2x =fdq2x +factor2*xijfa_x*(idq2(i,k)+eij/t*idq4(i,k))
1250 xijfa =x(i)*rho*myfac(i) * x(j)*rho*q_fac(j) /sig_ij(i,j)**5
1251 eij = (parame(i,3)*parame(j,3))**0.5
1252 fdq2= fdq2 +factor2*xijfa*(idq2(i,j) +eij/t*idq4(i,j) )
1253 fdq2x =fdq2x +factor2*xijfa*(idq2x(i,j) +eij/t*idq4x(i,j))
1255 xijkf_x=x(i)*rho*x(j)*rho/(sig_ij(i,j)*sig_ij(i,k)*sig_ij(j,k))**2 &
1256 *( myfac(i)*q_fac(j)*myfac(k) + myfac(i)*q_fac(k)*myfac(j) &
1257 + myfac(k)*q_fac(i)*myfac(j) +myfac(i)*q_fac(j)*q_fac(k)*1.1937350 &
1258 +myfac(i)*q_fac(k)*q_fac(j)*1.193735 &
1259 +myfac(k)*q_fac(i)*q_fac(j)*1.193735 )
1260 fdq3x = fdq3x + factor3*xijkf_x*idq3(i,j,k)
1262 xijkfa=x(i)*rho*x(j)*rho*x(l)*rho/(sig_ij(i,j)*sig_ij(i,l)*sig_ij(j,l))**2 &
1263 *( myfac(i)*q_fac(j)*myfac(l) &
1264 +myfac(i)*q_fac(j)*q_fac(l)*1.193735 )
1265 fdq3 =fdq3 + factor3 * xijkfa *idq3(i,j,l)
1266 fdq3x =fdq3x + factor3 * xijkfa *idq3x(i,j,l)
1271 IF (fdq2 < -1.e-50 .AND. fdq3 /= 0.0 .AND. fdq2x /= 0.0 .AND. fdq3x /= 0.0)
THEN 1273 fdq_rk = fdq2* (fdq2*fdq2x - 2.0*fdq3*fdq2x+fdq2*fdq3x) / (fdq2-fdq3)**2
1277 END SUBROUTINE phi_dq_vrabec_gross
1279 END MODULE eos_polar
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW This module contains constant...
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW This module contains paramete...
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW This module contains paramete...