diff options
Diffstat (limited to 'src/EOS_Omni_MultiVarCalls.F90')
-rw-r--r-- | src/EOS_Omni_MultiVarCalls.F90 | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/src/EOS_Omni_MultiVarCalls.F90 b/src/EOS_Omni_MultiVarCalls.F90 index e6a37b3..5db911d 100644 --- a/src/EOS_Omni_MultiVarCalls.F90 +++ b/src/EOS_Omni_MultiVarCalls.F90 @@ -46,7 +46,9 @@ subroutine EOS_Omni_EOS_short(eoskey,keytemp,rf_precision,npoints,& anyerr = 0 keyerr(:) = 0 - + + !$OMP PARALLEL DO PRIVATE(xrho,xtemp,xye,xenr,xent,xcs2,& + !$OMP xdedt,xdpderho,xdpdrhoe,xmunu) do i=1,npoints xrho = rho(i) * inv_rho_gf @@ -59,7 +61,9 @@ subroutine EOS_Omni_EOS_short(eoskey,keytemp,rf_precision,npoints,& keytemp,keyerr(i),rf_precision) if(keyerr(i).ne.0) then + !$OMP CRITICAL anyerr = 1 + !$OMP END CRITICAL endif if(keytemp.eq.1) then @@ -80,6 +84,7 @@ subroutine EOS_Omni_EOS_short(eoskey,keytemp,rf_precision,npoints,& munu(i) = xmunu enddo + !$OMP END PARALLEL DO end subroutine EOS_Omni_EOS_short @@ -111,7 +116,6 @@ subroutine EOS_Omni_EOS_dpderho_dpdrhoe(eoskey,keytemp,rf_precision,npoints,& real*8 :: xprs,xmunu,xcs2 real*8 :: xdedt,xdpderho,xdpdrhoe - anyerr = 0 keyerr(:) = 0 @@ -119,35 +123,45 @@ subroutine EOS_Omni_EOS_dpderho_dpdrhoe(eoskey,keytemp,rf_precision,npoints,& case (1) ! polytropic EOS if(keytemp.eq.1) then + !$OMP PARALLEL DO do i=1,npoints eps(i) = poly_k * & rho(i)**(poly_gamma) / & (poly_gamma - 1.0d0) / rho(i) enddo + !$OMP END PARALLEL DO endif + !$OMP PARALLEL DO do i=1,npoints dpdrhoe(i) = poly_k * & poly_gamma * & rho(i) ** (poly_gamma - 1.d0) dpderho(i) = 0.0d0 enddo + !$OMP END PARALLEL DO case (2) ! gamma-law EOS if(keytemp.eq.1) then + !$OMP PARALLEL DO do i=1,npoints eps(i) = gl_k * & rho(i)**(gl_gamma) / & (gl_gamma - 1.0d0) / rho(i) enddo + !$OMP END PARALLEL DO endif + !$OMP PARALLEL DO do i=1,npoints dpdrhoe(i) = (gl_gamma-1.0d0) * & eps(i) dpderho(i) = (gl_gamma - 1.0d0) * & rho(i) enddo + !$OMP END PARALLEL DO case (3) ! hybrid EOS + !$OMP PARALLEL DO PRIVATE(hybrid_local_gamma,hybrid_local_k,& + !$OMP hybrid_dp_poly,hybrid_dp_th1,hybrid_dp_th2) do i=1,npoints if(rho(i).gt.hybrid_rho_nuc) then hybrid_local_gamma = hybrid_gamma2 @@ -173,7 +187,9 @@ subroutine EOS_Omni_EOS_dpderho_dpdrhoe(eoskey,keytemp,rf_precision,npoints,& dpdrhoe(i) = hybrid_dp_poly + hybrid_dp_th1 + hybrid_dp_th2 dpderho(i) = (hybrid_gamma_th - 1.0d0) * rho(i) enddo + !$OMP END PARALLEL DO case (4) + !$OMP PARALLEL DO PRIVATE(xrho,xtemp,xye,xenr,xdpderho,xdpdrhoe) do i=1,npoints xrho = rho(i) * inv_rho_gf xtemp = temp(i) @@ -184,7 +200,9 @@ subroutine EOS_Omni_EOS_dpderho_dpdrhoe(eoskey,keytemp,rf_precision,npoints,& keytemp,keyerr(i),rf_precision) if(keyerr(i).ne.0) then + !$OMP CRITICAL anyerr = 1 + !$OMP END CRITICAL endif if(keytemp.eq.1) then @@ -239,34 +257,45 @@ subroutine EOS_Omni_EOS_dpderho_dpdrhoe(eoskey,keytemp,rf_precision,npoints,& case (1) ! polytropic EOS if(keytemp.eq.1) then + !$OMP PARALLEL DO do i=1,npoints eps(i) = poly_k * & rho(i)**(poly_gamma) / & (poly_gamma - 1.0d0) / rho(i) enddo + !$OMP END PARALLEL DO endif + !$OMP PARALLEL DO do i=1,npoints depsdpress(i) = 1.0d0/(poly_gamma - 1.0d0)/rho(i) depsdrho(i) = depsdpress(i) * poly_k * & poly_gamma * & rho(i) ** (poly_gamma - 1.d0) enddo + !$OMP END PARALLEL DO case (2) ! gamma-law EOS if(keytemp.eq.1) then + !$OMP PARALLEL DO do i=1,npoints eps(i) = gl_k * & rho(i)**(gl_gamma) / & (gl_gamma - 1.0d0) / rho(i) enddo + !$OMP END PARALLEL DO endif + !$OMP PARALLEL DO do i=1,npoints depsdpress(i) = 1.0/( (gl_gamma - 1.0d0) * & rho(i)) depsdrho(i) = -eps(i)/rho(i) enddo + !$OMP END PARALLEL DO case (3) ! hybrid EOS + !$OMP PARALLEL DO PRIVATE(hybrid_local_gamma,hybrid_local_k,& + !$OMP hybrid_dp_poly,hybrid_dp_th1,& + !$OMP hybrid_dp_th2,xdpdrhoe,xdpderho) do i=1,npoints if(rho(i).gt.hybrid_rho_nuc) then hybrid_local_gamma = hybrid_gamma2 |