aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrhaas <rhaas@c83d129a-5a75-4d5a-9c4d-ed3a5855bf45>2013-08-13 14:56:08 +0000
committerrhaas <rhaas@c83d129a-5a75-4d5a-9c4d-ed3a5855bf45>2013-08-13 14:56:08 +0000
commitf9736f2be8a25428a0b913604ac5d36c5b1cde7f (patch)
treed20615f5a8cea658eae6dab016c401d6e040bdb3
parent102773d5731462e4407f2ea35ef3a86cd73d4bd2 (diff)
expand warnings in GRHydro_Con2PrimHot
* compute reflevel in GRHydro_Con2PrimHot to be sure it is current * only output warnings if we want them From: Christian Ott <cott@tapir.caltech.edu> git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinEvolve/GRHydro/trunk@567 c83d129a-5a75-4d5a-9c4d-ed3a5855bf45
-rw-r--r--src/GRHydro_Con2PrimHot.F9036
1 files changed, 20 insertions, 16 deletions
diff --git a/src/GRHydro_Con2PrimHot.F90 b/src/GRHydro_Con2PrimHot.F90
index 7598e07..07180dc 100644
--- a/src/GRHydro_Con2PrimHot.F90
+++ b/src/GRHydro_Con2PrimHot.F90
@@ -28,6 +28,7 @@ subroutine Conservative2PrimitiveHot(CCTK_ARGUMENTS)
CCTK_REAL :: local_min_tracer
CCTK_REAL :: local_perc_ptol
+ integer :: reflevel
! save memory when MP is not used
CCTK_INT :: GRHydro_UseGeneralCoordinates
@@ -42,6 +43,7 @@ subroutine Conservative2PrimitiveHot(CCTK_ARGUMENTS)
! end EOS Omni vars
myproc = CCTK_MyProc(cctkGH)
+ reflevel = int(log10(dble(cctk_levfac(1)))/log10(2.0d0))
! save memory when MP is not used
if (GRHydro_UseGeneralCoordinates(cctkGH).ne.0) then
@@ -155,7 +157,7 @@ subroutine Conservative2PrimitiveHot(CCTK_ARGUMENTS)
press(i,j,k),w_lorentz(i,j,k), &
uxx,uxy,uxz,uyy,uyz,uzz,sdet,x(i,j,k),y(i,j,k), &
z(i,j,k),r(i,j,k),epsnegative,GRHydro_rho_min,pmin, epsmin, &
- GRHydro_reflevel, GRHydro_C2P_failed(i,j,k), GRHydro_perc_ptol)
+ reflevel, GRHydro_C2P_failed(i,j,k), GRHydro_perc_ptol)
if(temperature(i,j,k).gt.GRHydro_max_temp) then
!$OMP CRITICAL
@@ -172,7 +174,7 @@ subroutine Conservative2PrimitiveHot(CCTK_ARGUMENTS)
call CCTK_WARN(1,warnline)
write(warnline,"(A7,i8)") "code: ",keyerr(1)
call CCTK_WARN(1,warnline)
- write(warnline,"(A10,i5)") "reflevel: ", GRHydro_reflevel
+ write(warnline,"(A10,i5)") "reflevel: ", reflevel
call CCTK_WARN(1,warnline)
call CCTK_WARN(0,"Aborting!!!")
!$OMP END CRITICAL
@@ -200,12 +202,12 @@ subroutine Conservative2PrimitiveHot(CCTK_ARGUMENTS)
temperature(i,j,k),y_e(i,j,k),press(i,j,k),w_lorentz(i,j,k), &
uxx,uxy,uxz,uyy,uyz,uzz,sdet,x(i,j,k),y(i,j,k), &
z(i,j,k),r(i,j,k),epsnegative,GRHydro_rho_min,pmin, epsmin, &
- GRHydro_reflevel, GRHydro_C2P_failed(i,j,k), local_perc_ptol)
+ reflevel, GRHydro_C2P_failed(i,j,k), local_perc_ptol)
if( abs(GRHydro_C2P_failed(i,j,k)-2.0d0) .lt. 1.0d-10) then
!$OMP CRITICAL
- if (GRHydro_reflevel.ge.GRHydro_c2p_warn_from_reflevel) then
+ if (reflevel.ge.GRHydro_c2p_warn_from_reflevel) then
call CCTK_WARN(1,"Convergence problem in c2p")
- write(warnline,"(A10,i5)") "reflevel: ",GRHydro_reflevel
+ write(warnline,"(A10,i5)") "reflevel: ",reflevel
call CCTK_WARN(1,warnline)
write(warnline,"(A10,i10)") "iteration: ",cctk_iteration
call CCTK_WARN(1,warnline)
@@ -228,17 +230,19 @@ subroutine Conservative2PrimitiveHot(CCTK_ARGUMENTS)
! the temperature of the atmosphere.
! Now reset this point to minimum temperature.
GRHydro_C2P_failed(i,j,k) = 0
- !$OMP CRITICAL
- write(warnline,"(A10,i7,4i5,1P10E15.6)") "reset T:",&
- cctk_iteration,GRHydro_Reflevel,&
- i,j,k,rho(i,j,k),&
- eps(i,j,k),temperature(i,j,k),y_e(i,j,k)
- call CCTK_WARN(1,warnline)
- write(warnline,"(A10,i7,4i5,1P10E15.6)") "reset T:",&
- cctk_iteration,GRHydro_Reflevel,&
- i,j,k,x(i,j,k),y(i,j,k),z(i,j,k),r(i,j,k)
- call CCTK_WARN(1,warnline)
- !$OMP END CRITICAL
+ if (reflevel.ge.GRHydro_c2p_warn_from_reflevel) then
+ !$OMP CRITICAL
+ write(warnline,"(A10,i7,4i5,1P10E15.6)") "reset T:",&
+ cctk_iteration,GRHydro_Reflevel,&
+ i,j,k,rho(i,j,k),&
+ eps(i,j,k),temperature(i,j,k),y_e(i,j,k)
+ call CCTK_WARN(1,warnline)
+ write(warnline,"(A10,i7,4i5,1P10E15.6)") "reset T:",&
+ cctk_iteration,GRHydro_Reflevel,&
+ i,j,k,x(i,j,k),y(i,j,k),z(i,j,k),r(i,j,k)
+ call CCTK_WARN(1,warnline)
+ !$OMP END CRITICAL
+ endif
temperature(i,j,k) = GRHydro_hot_atmo_temp
keytemp = 1
call EOS_Omni_press(GRHydro_eos_handle,keytemp,GRHydro_eos_rf_prec,n,&