diff options
author | cott <cott@c83d129a-5a75-4d5a-9c4d-ed3a5855bf45> | 2010-12-21 10:26:24 +0000 |
---|---|---|
committer | cott <cott@c83d129a-5a75-4d5a-9c4d-ed3a5855bf45> | 2010-12-21 10:26:24 +0000 |
commit | 0b7357e2bbfc8d9213ac74874ddd2c1e4ba751c5 (patch) | |
tree | 253047a42712a8525d51c4fcb4421b7dbe890bf1 /src | |
parent | 3de77c6be6becdfa51041772ced62458586aaea0 (diff) |
* make EOS Omni calls thread safe
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinEvolve/GRHydro/trunk@194 c83d129a-5a75-4d5a-9c4d-ed3a5855bf45
Diffstat (limited to 'src')
-rw-r--r-- | src/GRHydro_Con2Prim.F90 | 58 | ||||
-rw-r--r-- | src/GRHydro_Con2PrimM.F90 | 34 | ||||
-rw-r--r-- | src/GRHydro_Eigenproblem.F90 | 23 | ||||
-rw-r--r-- | src/GRHydro_EigenproblemM.F90 | 14 | ||||
-rw-r--r-- | src/GRHydro_EoSChangeGamma.F90 | 40 | ||||
-rw-r--r-- | src/GRHydro_Prim2Con.F90 | 36 | ||||
-rw-r--r-- | src/GRHydro_Prim2ConM.F90 | 24 | ||||
-rw-r--r-- | src/GRHydro_Source.F90 | 2 | ||||
-rw-r--r-- | src/GRHydro_UpdateMask.F90 | 12 | ||||
-rw-r--r-- | src/GRHydro_UpdateMaskM.F90 | 13 |
10 files changed, 90 insertions, 166 deletions
diff --git a/src/GRHydro_Con2Prim.F90 b/src/GRHydro_Con2Prim.F90 index 39447f1..df4a133 100644 --- a/src/GRHydro_Con2Prim.F90 +++ b/src/GRHydro_Con2Prim.F90 @@ -60,14 +60,10 @@ subroutine Conservative2Primitive(CCTK_ARGUMENTS) CCTK_REAL :: local_min_tracer ! begin EOS Omni vars - integer :: n = 1 - integer :: keytemp = 0 - integer :: anyerr = 0 - integer :: keyerr(1) = 0 - real*8 :: xpress = 0.0d0 - real*8 :: xeps = 0.0d0 - real*8 :: xtemp = 0.0d0 - real*8 :: xye = 0.0d0 + integer :: n,keytemp,anyerr,keyerr(1) + real*8 :: xpress,xeps,xtemp,xye + n = 1;keytemp = 0;anyerr = 0;keyerr(1) = 0 + xpress = 0.0d0;xeps = 0.0d0;xtemp = 0.0d0;xye = 0.0d0 ! end EOS Omni vars call SpaceMask_GetTypeBits(type_bits, "Hydro_Atmosphere") @@ -270,17 +266,12 @@ subroutine Con2Prim_pt(handle, dens, sx, sy, sz, tau, rho, velx, vely, & character(len=200) warnline logical epsnegative - ! begin EOS Omni vars - integer :: n = 1 - integer :: keytemp = 0 - integer :: anyerr = 0 - integer :: keyerr(1) = 0 - real*8 :: xpress = 0.0d0 - real*8 :: xtemp = 0.0d0 - real*8 :: xye = 0.0d0 + integer :: n,keytemp,anyerr,keyerr(1) + real*8 :: xpress,xtemp,xye + n=1;keytemp=0;anyerr=0;keyerr(1)=0 + xpress=0.0d0;xtemp=0.0d0;xye=0.0d0 ! end EOS Omni vars - !!$ Undensitize the variables @@ -495,23 +486,23 @@ subroutine Con2Prim_pt_hot(ii,jj,kk,handle, dens, sx, sy, sz, tau, rho, velx, ve character(len=200) warnline logical epsnegative - integer :: failwarnmode = 0 - integer :: failinfomode = 1 + integer :: failwarnmode + integer :: failinfomode ! begin EOS Omni vars - integer :: n = 1 - integer :: keytemp = 0 - integer :: anyerr = 0 - integer :: keyerr(1) = 0 - real*8 :: xpress = 0.0d0 - real*8 :: temp0 = 0.0d0 + integer :: n,keytemp,anyerr,keyerr(1) + real*8 :: xpress,temp0 + n=1;keytemp=0;anyerr=0;keyerr(1)=0 + temp0 = 0.0d0;xpress = 0.0d0 ! end EOS Omni vars + failwarnmode = 0 + failinfomode = 0 + ! set pmin and epsmin to something sensible: pminl = 1.0d-28 epsminl = 1.0e-5 - if(con2prim_oct_hack.ne.0.and.& x .lt. 0.0d0 .or.& y .lt. 0.0d0 .or.& @@ -816,15 +807,12 @@ subroutine Conservative2PrimitiveBounds(CCTK_ARGUMENTS) CCTK_REAL :: local_min_tracer -! begin EOS omni - CCTK_INT :: keyerr(1) = 0 - CCTK_INT :: anyerr = 0 - CCTK_INT :: keytemp = 0 - CCTK_INT :: n = 1 - CCTK_REAL :: xye = 0.0d0 - CCTK_REAL :: xeps = 0.0d0 - CCTK_REAL :: xtemp = 0.0d0 -! end EOS omni +! begin EOS Omni vars + integer :: n,keytemp,anyerr,keyerr(1) + real*8 :: xpress,xtemp,xye,xeps + n=1;keytemp=0;anyerr=0;keyerr(1)=0 + xpress=0.0d0;xtemp=0.0d0;xye=0.0d0;xeps=0.0d0 +! end EOS Omni vars ! this is a poly call call EOS_Omni_press(GRHydro_polytrope_handle,keytemp,GRHydro_eos_rf_prec,n,& diff --git a/src/GRHydro_Con2PrimM.F90 b/src/GRHydro_Con2PrimM.F90 index 8b595d9..bbb803d 100644 --- a/src/GRHydro_Con2PrimM.F90 +++ b/src/GRHydro_Con2PrimM.F90 @@ -60,16 +60,12 @@ subroutine Conservative2PrimitiveM(CCTK_ARGUMENTS) CCTK_REAL :: local_min_tracer -! begin EOS Omni vars - integer :: n = 1 - integer :: keytemp = 0 - integer :: anyerr = 0 - integer :: keyerr(1) = 0 - real*8 :: xpress = 0.0d0 - real*8 :: xeps = 0.0d0 - real*8 :: xtemp = 0.0d0 - real*8 :: xye = 0.0d0 -! end EOS Omni vars +! begin EOS Omni vars + integer :: n,keytemp,anyerr,keyerr(1) + real*8 :: xpress,xtemp,xye,xeps + n=1;keytemp=0;anyerr=0;keyerr(1)=0 + xpress=0.0d0;xtemp=0.0d0;xye=0.0d0;xeps=0.0d0 +! end EOS Omni vars call SpaceMask_GetTypeBits(type_bits, "Hydro_Atmosphere") call SpaceMask_GetStateBits(atmosphere, "Hydro_Atmosphere", "in_atmosphere") @@ -289,18 +285,12 @@ subroutine Conservative2PrimitiveBoundsM(CCTK_ARGUMENTS) CCTK_REAL :: local_min_tracer - -! begin EOS omni - CCTK_INT :: keyerr(1) = 0 - CCTK_INT :: anyerr = 0 - CCTK_INT :: keytemp = 0 - CCTK_INT :: n = 1 - CCTK_REAL :: xye = 0.0d0 - CCTK_REAL :: xeps = 0.0d0 - CCTK_REAL :: xtemp = 0.0d0 -! end EOS omni - - +! begin EOS Omni vars + integer :: n,keytemp,anyerr,keyerr(1) + real*8 :: xpress,xtemp,xye,xeps + n=1;keytemp=0;anyerr=0;keyerr(1)=0 + xpress=0.0d0;xeps=0.0d0;xtemp=0.0d0;xye=0.0d0 +! end EOS Omni vars ! this is a poly call call EOS_Omni_press(GRHydro_polytrope_handle,keytemp,GRHydro_eos_rf_prec,n,& diff --git a/src/GRHydro_Eigenproblem.F90 b/src/GRHydro_Eigenproblem.F90 index ec5a2b1..081f5c7 100644 --- a/src/GRHydro_Eigenproblem.F90 +++ b/src/GRHydro_Eigenproblem.F90 @@ -59,14 +59,10 @@ subroutine eigenvalues(handle,rho,velx,vely,velz,eps, & CCTK_REAL dpdrho,dpdeps,press ! begin EOS Omni vars - integer :: n = 1 - integer :: keytemp = 0 - integer :: anyerr = 0 - integer :: keyerr(1) = 0 - real*8 :: xpress = 0.0d0 - real*8 :: xeps = 0.0d0 - real*8 :: xtemp = 0.0d0 - real*8 :: xye = 0.0d0 + integer :: n,keytemp,anyerr,keyerr(1) + real*8 :: xpress,xeps,xtemp,xye + n=1;keytemp=0;anyerr=0;keyerr(1)=0 + xpress=0.0d0;xeps=0.0d0;xtemp=0.0d0;xye=0.0d0 ! end EOS Omni vars one = 1.0d0 @@ -137,15 +133,12 @@ subroutine eigenvalues_hot(handle,ii,jj,kk,rho,velx,vely,velz,eps, & CCTK_REAL dpdrho,dpdeps,press ! begin EOS Omni vars - integer :: n = 1 - integer :: keytemp = 0 - integer :: anyerr = 0 - integer :: keyerr(1) = 0 - real*8 :: xpress = 0.0d0 - real*8 :: xeps = 0.0d0 + integer :: n,keytemp,anyerr,keyerr(1) + real*8 :: xpress,xeps + n=1;keytemp=0;anyerr=0;keyerr(1)=0 + xpress=0.0d0;xeps=0.0d0 ! end EOS Omni vars - one = 1.0d0 two = 2.0d0 diff --git a/src/GRHydro_EigenproblemM.F90 b/src/GRHydro_EigenproblemM.F90 index 64eeca7..31a6c51 100644 --- a/src/GRHydro_EigenproblemM.F90 +++ b/src/GRHydro_EigenproblemM.F90 @@ -63,15 +63,11 @@ subroutine eigenvaluesM(handle,rho,velx,vely,velz,eps,w_lorentz,& CCTK_REAL Bdotv,b2 ! begin EOS Omni vars - integer :: n = 1 - integer :: keytemp = 0 - integer :: anyerr = 0 - integer :: keyerr(1) = 0 - real*8 :: xpress = 0.0d0 - real*8 :: xeps = 0.0d0 - real*8 :: xtemp = 0.0d0 - real*8 :: xye = 0.0d0 -! end EOS Omni vars + integer :: n,keytemp,anyerr,keyerr(1) + real*8 :: xpress,xeps,xtemp,xye + n=1;keytemp=0;anyerr=0;keyerr(1)=0 + xpress=0.0d0;xeps=0.0d0;xtemp=0.0d0;xye=0.0d0 +! end EOS Omni vars one = 1.0d0 two = 2.0d0 diff --git a/src/GRHydro_EoSChangeGamma.F90 b/src/GRHydro_EoSChangeGamma.F90 index c5356b0..2c5776b 100644 --- a/src/GRHydro_EoSChangeGamma.F90 +++ b/src/GRHydro_EoSChangeGamma.F90 @@ -53,14 +53,10 @@ subroutine GRHydro_EoSChangeGamma(CCTK_ARGUMENTS) !!$ Set up the fluid constants ! begin EOS Omni vars - integer :: n = 1 - integer :: keytemp = 0 - integer :: anyerr = 0 - integer :: keyerr(1) = 0 - real*8 :: xpress = 0.0d0 - real*8 :: xeps = 0.0d0 - real*8 :: xtemp = 0.0d0 - real*8 :: xye = 0.0d0 + integer :: n,keytemp,anyerr,keyerr(1) + real*8 :: xpress,xeps,xtemp,xye + n=1;keytemp=0;anyerr=0;keyerr(1)=0 + xpress=0.0d0;xeps=0.0d0;xtemp=0.0d0;xye=0.0d0 ! end EOS Omni vars call EOS_Omni_press(GRHydro_polytrope_handle,keytemp,GRHydro_eos_rf_prec,n,& 1.0d0,1.0d0,xtemp,xye,xpress,keyerr,anyerr) @@ -134,14 +130,10 @@ subroutine GRHydro_EoSChangeK(CCTK_ARGUMENTS) !!$ Set up the fluid constants ! begin EOS Omni vars - integer :: n = 1 - integer :: keytemp = 0 - integer :: anyerr = 0 - integer :: keyerr(1) = 0 - real*8 :: xpress = 0.0d0 - real*8 :: xeps = 0.0d0 - real*8 :: xtemp = 0.0d0 - real*8 :: xye = 0.0d0 + integer :: n,keytemp,anyerr,keyerr(1) + real*8 :: xpress,xeps,xtemp,xye + n=1;keytemp=0;anyerr=0;keyerr(1)=0 + xpress=0.0d0;xeps=0.0d0;xtemp=0.0d0;xye=0.0d0 ! end EOS Omni vars call EOS_Omni_press(GRHydro_polytrope_handle,keytemp,GRHydro_eos_rf_prec,n,& 1.0d0,1.0d0,xtemp,xye,xpress,keyerr,anyerr) @@ -220,18 +212,14 @@ subroutine GRHydro_EoSChangeGammaK_Shibata(CCTK_ARGUMENTS) CCTK_REAL, dimension(cctk_lsh(1),cctk_lsh(2),cctk_lsh(3)) :: Q character(len=100) infoline - -!!$ Set up the fluid constants ! begin EOS Omni vars - integer :: n = 1 - integer :: keytemp = 0 - integer :: anyerr = 0 - integer :: keyerr(1) = 0 - real*8 :: xpress = 0.0d0 - real*8 :: xeps = 0.0d0 - real*8 :: xtemp = 0.0d0 - real*8 :: xye = 0.0d0 + integer :: n,keytemp,anyerr,keyerr(1) + real*8 :: xpress,xeps,xtemp,xye + n=1;keytemp=0;anyerr=0;keyerr(1)=0 + xpress=0.0d0;xeps=0.0d0;xtemp=0.0d0;xye=0.0d0 ! end EOS Omni vars + +!!$ Set up the fluid constants call EOS_Omni_press(GRHydro_polytrope_handle,keytemp,GRHydro_eos_rf_prec,n,& 1.0d0,1.0d0,xtemp,xye,xpress,keyerr,anyerr) diff --git a/src/GRHydro_Prim2Con.F90 b/src/GRHydro_Prim2Con.F90 index 9593a1b..e142798 100644 --- a/src/GRHydro_Prim2Con.F90 +++ b/src/GRHydro_Prim2Con.F90 @@ -93,7 +93,7 @@ subroutine primitive2conservative(CCTK_ARGUMENTS) end do !$OMP END PARALLEL DO else - !$OMP PARALLEL DO PRIVATE(i, j, avg_detl, avg_detr, xtemp,& + !$OMP PARALLEL DO PRIVATE(i, j, k, avg_detl, avg_detr, xtemp,& !$OMP gxxl,gxyl,gxzl,gyyl,gyzl,gzzl, & !$OMP gxxr,gxyr,gxzr,gyyr,gyzr,gzzr) do k = GRHydro_stencil,cctk_lsh(3)-GRHydro_stencil+1 @@ -149,7 +149,6 @@ subroutine primitive2conservative(CCTK_ARGUMENTS) velzplus(i,j,k),epsplus(i,j,k),pressplus(i,j,k),& w_lorentzplus(i,j,k),xtemp, & y_e_plus(i,j,k)) - end do end do @@ -187,14 +186,10 @@ subroutine prim2con(handle, gxx, gxy, gxz, gyy, gyz, gzz, det, ddens, & CCTK_INT :: handle ! begin EOS Omni vars - integer :: n = 1 - integer :: keytemp = 0 - integer :: anyerr = 0 - integer :: keyerr(1) = 0 - real*8 :: xpress = 0.0d0 - real*8 :: xeps = 0.0d0 - real*8 :: xtemp = 0.0d0 - real*8 :: xye = 0.0d0 + integer :: n,keytemp,anyerr,keyerr(1) + real*8 :: xye,xtemp + n = 1;keytemp = 0;anyerr = 0;keyerr(1) = 0 + xtemp = 0.0d0; xye = 0.0d0 ! end EOS Omni vars w = 1.d0 / sqrt(1.d0 - (gxx*dvelx*dvelx + gyy*dvely*dvely + gzz & @@ -234,15 +229,10 @@ subroutine prim2con_hot(handle, GRHydro_reflevel, ii, jj, kk, & character(len=512) warnline ! begin EOS Omni vars - integer :: n = 1 - integer :: keytemp = 0 - integer :: anyerr = 0 - integer :: keyerr(1) = 0 - real*8 :: xpress = 0.0d0 - real*8 :: xeps = 0.0d0 + integer :: n,keytemp,anyerr,keyerr(1) + n = 1;keytemp = 0;anyerr = 0;keyerr(1) = 0 ! end EOS Omni vars - w = 1.d0 / sqrt(1.d0 - (gxx*dvelx*dvelx + gyy*dvely*dvely + gzz & *dvelz*dvelz + 2*gxy*dvelx*dvely + 2*gxz*dvelx *dvelz + 2*gyz& *dvely*dvelz)) @@ -489,14 +479,10 @@ subroutine prim2conpolytype(handle, gxx, gxy, gxz, gyy, gyz, & character(len=256) NaN_WarnLine ! begin EOS Omni vars - integer :: n = 1 - integer :: keytemp = 0 - integer :: anyerr = 0 - integer :: keyerr(1) = 0 - real*8 :: xpress = 0.0d0 - real*8 :: xeps = 0.0d0 - real*8 :: xtemp = 0.0d0 - real*8 :: xye = 0.0d0 + integer :: n, keytemp, anyerr, keyerr(1) + real*8 :: xpress,xeps,xtemp,xye + n = 1; keytemp = 0; anyerr = 0; keyerr(1) = 0 + xpress = 0.0d0; xeps = 0.0d0; xtemp = 0.0d0; xye = 0.0d0 ! end EOS Omni vars w_tmp = gxx*dvelx*dvelx + gyy*dvely*dvely + gzz *dvelz*dvelz + & diff --git a/src/GRHydro_Prim2ConM.F90 b/src/GRHydro_Prim2ConM.F90 index c79fb9a..840a181 100644 --- a/src/GRHydro_Prim2ConM.F90 +++ b/src/GRHydro_Prim2ConM.F90 @@ -126,14 +126,10 @@ subroutine prim2conM(handle, gxx, gxy, gxz, gyy, gyz, gzz, det, ddens, & character(len=256) NaN_WarnLine ! begin EOS Omni vars - integer :: n = 1 - integer :: keytemp = 0 - integer :: anyerr = 0 - integer :: keyerr(1) = 0 - real*8 :: xpress = 0.0d0 - real*8 :: xeps = 0.0d0 - real*8 :: xtemp = 0.0d0 - real*8 :: xye = 0.0d0 + integer :: n, keytemp, anyerr, keyerr(1) + real*8 :: xpress,xeps,xtemp,xye + n = 1; keytemp = 0; anyerr = 0; keyerr(1) = 0 + xpress = 0.0d0; xeps = 0.0d0; xtemp = 0.0d0; xye = 0.0d0 ! end EOS Omni vars w = 1.d0 / sqrt(1.d0 - DOT2(dvelx,dvely,dvelz)) @@ -349,14 +345,10 @@ subroutine prim2conpolytypeM(handle, gxx, gxy, gxz, gyy, gyz, & character(len=256) NaN_WarnLine ! begin EOS Omni vars - integer :: n = 1 - integer :: keytemp = 0 - integer :: anyerr = 0 - integer :: keyerr(1) = 0 - real*8 :: xpress = 0.0d0 - real*8 :: xeps = 0.0d0 - real*8 :: xtemp = 0.0d0 - real*8 :: xye = 0.0d0 + integer :: n, keytemp, anyerr, keyerr(1) + real*8 :: xpress,xeps,xtemp,xye + n = 1; keytemp = 0; anyerr = 0; keyerr(1) = 0 + xpress = 0.0d0; xeps = 0.0d0; xtemp = 0.0d0; xye = 0.0d0 ! end EOS Omni vars w_tmp = DOT2(dvelx,dvely,dvelz) diff --git a/src/GRHydro_Source.F90 b/src/GRHydro_Source.F90 index 9f994e6..1bb3acc 100644 --- a/src/GRHydro_Source.F90 +++ b/src/GRHydro_Source.F90 @@ -103,7 +103,7 @@ subroutine SourceTerms(CCTK_ARGUMENTS) if (evolve_Y_e .ne. 0) then y_e_con_rhs = 0.0d0 endif - + !!$ Set up the array for checking the order. We switch to second order !!$ differencing at boundaries and near excision regions. !!$ Copied straight from BSSN. diff --git a/src/GRHydro_UpdateMask.F90 b/src/GRHydro_UpdateMask.F90 index 4e2631e..a097446 100644 --- a/src/GRHydro_UpdateMask.F90 +++ b/src/GRHydro_UpdateMask.F90 @@ -283,14 +283,10 @@ subroutine GRHydro_InitialAtmosphereReset(CCTK_ARGUMENTS) CCTK_INT :: eos_handle ! begin EOS Omni vars - integer :: n = 1 - integer :: keytemp = 0 - integer :: anyerr = 0 - integer :: keyerr(1) = 0 - real*8 :: xpress = 0.0d0 - real*8 :: xeps = 0.0d0 - real*8 :: xtemp = 0.0d0 - real*8 :: xye = 0.0d0 + integer :: n,keytemp,anyerr,keyerr(1) + real*8 :: xpress,xeps,xtemp,xye + n=1;keytemp=0;anyerr=0;keyerr(1)=0 + xpress=0.0d0;xye=0.0d0;xeps=0.0d0;xtemp=0.0d0 ! end EOS Omni vars eos_handle = GRHydro_polytrope_handle diff --git a/src/GRHydro_UpdateMaskM.F90 b/src/GRHydro_UpdateMaskM.F90 index bacb530..25a0b9a 100644 --- a/src/GRHydro_UpdateMaskM.F90 +++ b/src/GRHydro_UpdateMaskM.F90 @@ -108,17 +108,12 @@ subroutine GRHydro_InitialAtmosphereResetM(CCTK_ARGUMENTS) CCTK_INT :: eos_handle ! begin EOS Omni vars - integer :: n = 1 - integer :: keytemp = 0 - integer :: anyerr = 0 - integer :: keyerr(1) = 0 - real*8 :: xpress = 0.0d0 - real*8 :: xeps = 0.0d0 - real*8 :: xtemp = 0.0d0 - real*8 :: xye = 0.0d0 + integer :: n,keytemp,anyerr,keyerr(1) + real*8 :: xpress,xeps,xtemp,xye + n=1;keytemp=0;anyerr=0;keyerr(1)=0 + xpress=0.0d0;xye=0.0d0;xeps=0.0d0;xtemp=0.0d0 ! end EOS Omni vars - eos_handle = GRHydro_polytrope_handle call SpaceMask_GetTypeBits(type_bits, "Hydro_Atmosphere") |