aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcott <cott@c83d129a-5a75-4d5a-9c4d-ed3a5855bf45>2011-01-04 14:40:06 +0000
committercott <cott@c83d129a-5a75-4d5a-9c4d-ed3a5855bf45>2011-01-04 14:40:06 +0000
commite684ca4eded7391a7a03d5361ed2088b47f38c4f (patch)
tree4b33445ae3958d1cb4e7752c7d8e16d032d6d2c7
parent773870aa10318efa52d458bc25031c3bb8c85ebd (diff)
* Update error handling in _hot routine of Prim2Con.
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinEvolve/GRHydro/trunk@207 c83d129a-5a75-4d5a-9c4d-ed3a5855bf45
-rw-r--r--src/GRHydro_Prim2Con.F9028
1 files changed, 25 insertions, 3 deletions
diff --git a/src/GRHydro_Prim2Con.F90 b/src/GRHydro_Prim2Con.F90
index 71f2825..11dece0 100644
--- a/src/GRHydro_Prim2Con.F90
+++ b/src/GRHydro_Prim2Con.F90
@@ -231,9 +231,11 @@ subroutine prim2con_hot(handle, GRHydro_reflevel, ii, jj, kk, &
! begin EOS Omni vars
integer :: n,keytemp,anyerr,keyerr(1)
+ real*8 :: temp0(1)
n = 1;keytemp = 0;anyerr = 0;keyerr(1) = 0
! end EOS Omni vars
+ temp0 = temp
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))
@@ -262,19 +264,39 @@ subroutine prim2con_hot(handle, GRHydro_reflevel, ii, jj, kk, &
call CCTK_WARN(1,warnline)
endif
else
- call CCTK_WARN(1,"EOS error in prim2con_hot")
+ ! This is a way of recovering even on finer refinement levels:
+ ! Use the average temperature at the interface instead of the
+ ! reconstructed specific internal energy.
+ call CCTK_WARN(1,"EOS error in prim2con_hot: NOW using averaged temp!")
write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
call CCTK_WARN(1,warnline)
- write(warnline,"(1P10E15.6)") drho,deps,temp,ye
+ write(warnline,"(1P10E15.6)") drho,deps,temp0,ye
call CCTK_WARN(1,warnline)
write(warnline,"(A7,i8)") "code: ",keyerr(1)
call CCTK_WARN(1,warnline)
write(warnline,"(A10,i5)") "reflevel: ", GRHydro_reflevel
call CCTK_WARN(1,warnline)
- call CCTK_WARN(0,"Aborting!!!")
+ keytemp=1
+ temp = temp0
+ call EOS_Omni_press(handle,keytemp,GRHydro_eos_rf_prec,n,&
+ drho,deps,temp,ye,dpress,keyerr,anyerr)
+ keytemp=0
+ if(anyerr.ne.0) then
+ call CCTK_WARN(1,"EOS error in prim2con_hot")
+ write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
+ call CCTK_WARN(1,warnline)
+ write(warnline,"(1P10E15.6)") drho,deps,temp,ye
+ call CCTK_WARN(1,warnline)
+ write(warnline,"(A7,i8)") "code: ",keyerr(1)
+ call CCTK_WARN(1,warnline)
+ write(warnline,"(A10,i5)") "reflevel: ", GRHydro_reflevel
+ call CCTK_WARN(1,warnline)
+ call CCTK_WARN(0,"Aborting!!!")
+ endif
endif
endif
+
vlowx = gxx*dvelx + gxy*dvely + gxz*dvelz
vlowy = gxy*dvelx + gyy*dvely + gyz*dvelz
vlowz = gxz*dvelx + gyz*dvely + gzz*dvelz