From f9736f2be8a25428a0b913604ac5d36c5b1cde7f Mon Sep 17 00:00:00 2001 From: rhaas Date: Tue, 13 Aug 2013 14:56:08 +0000 Subject: 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 git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinEvolve/GRHydro/trunk@567 c83d129a-5a75-4d5a-9c4d-ed3a5855bf45 --- src/GRHydro_Con2PrimHot.F90 | 36 ++++++++++++++++++++---------------- 1 file 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,& -- cgit v1.2.3