[Commits] [svn:einsteintoolkit] GRHydro/trunk/src/ (Rev. 323)

roland.haas at physics.gatech.edu roland.haas at physics.gatech.edu
Sun May 13 14:10:13 CDT 2012


User: rhaas
Date: 2012/05/13 02:10 PM

Modified:
 /trunk/src/
  GRHydro_Con2Prim.F90

Log:
 * improve error handling/reporting in hot C2P
 * set up directory for performance workshop
 
 Patch by Christian Ott.

File Changes:

Directory: /trunk/src/
======================

File [modified]: GRHydro_Con2Prim.F90
Delta lines: +86 -79
===================================================================
--- trunk/src/GRHydro_Con2Prim.F90	2012-05-13 19:08:58 UTC (rev 322)
+++ trunk/src/GRHydro_Con2Prim.F90	2012-05-13 19:10:12 UTC (rev 323)
@@ -194,7 +194,7 @@
                  z(i,j,k),r(i,j,k),epsnegative,GRHydro_rho_min,pmin, epsmin, & 
                  GRHydro_reflevel, GRHydro_C2P_failed(i,j,k))
          else
-            call Con2Prim_pt_hot(i,j,k,GRHydro_eos_handle, dens(i,j,k),scon(i,j,k,1),&
+            call Con2Prim_pt_hot(cctk_iteration,i,j,k,GRHydro_eos_handle, dens(i,j,k),scon(i,j,k,1),&
                  scon(i,j,k,2),scon(i,j,k,3),tau(i,j,k),Y_e_con(i,j,k),rho(i,j,k),vup(i,j,k,1),&
                  vup(i,j,k,2),vup(i,j,k,3),eps(i,j,k),temperature(i,j,k),y_e(i,j,k),&
                  press(i,j,k),w_lorentz(i,j,k), &
@@ -207,7 +207,7 @@
                ! accuracy requirement; if it fails again, we abort
                GRHydro_C2P_failed(i,j,k) = 0
                local_perc_ptol = GRHydro_perc_ptol*100.0d0
-               call Con2Prim_pt_hot(i,j,k,GRHydro_eos_handle, dens(i,j,k),scon(i,j,k,1),&
+               call Con2Prim_pt_hot(cctk_iteration,i,j,k,GRHydro_eos_handle, dens(i,j,k),scon(i,j,k,1),&
                     scon(i,j,k,2),scon(i,j,k,3),tau(i,j,k),Y_e_con(i,j,k),rho(i,j,k),&
                     vup(i,j,k,1),vup(i,j,k,2), vup(i,j,k,3),eps(i,j,k),&
                     temperature(i,j,k),y_e(i,j,k),press(i,j,k),w_lorentz(i,j,k), &
@@ -563,7 +563,8 @@
 
 end subroutine Con2Prim_pt
 
-subroutine Con2Prim_pt_hot(ii,jj,kk,handle, dens, sx, sy, sz, tau, ye_con, rho, velx, vely, &
+subroutine Con2Prim_pt_hot(cctk_iteration, ii,jj,kk,handle, dens, &
+     sx, sy, sz, tau, ye_con, rho, velx, vely, &
      velz, epsilon, temp, ye, press, w_lorentz, uxx, uxy, uxz, uyy, &
      uyz, uzz, det, x, y, z, r, epsnegative, GRHydro_rho_min, pmin, epsmin, &
      GRHydro_reflevel, GRHydro_C2P_failed, local_perc_ptol)
@@ -577,7 +578,7 @@
        y, z, r, GRHydro_rho_min
   CCTK_REAL temp, ye
   CCTK_REAL s2, c0, c1, c2, c3, c4, f, df, ftol, v2, w, vlowx, vlowy, vlowz
-  CCTK_INT ii,jj,kk,count, i, handle, GRHydro_reflevel
+  CCTK_INT cctk_iteration, ii,jj,kk,count, i, handle, GRHydro_reflevel
   CCTK_REAL GRHydro_C2P_failed
   CCTK_REAL udens, usx, usy, usz, utau, pold, pnew, epsold, epsnew, w2, &
        w2mhalf, temp1, drhobydpress, depsbydpress, dpressbydeps, dpressbydrho, pmin, epsmin
@@ -649,32 +650,34 @@
            enddo
            write(warnline,"(A30,i5)") "Iterations of heat injection: ",nf
            call CCTK_WARN(failinfomode,warnline)
-           write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
+           write(warnline,"(5i5,1P10E15.6)") cctk_iteration,GRHydro_Reflevel,ii,jj,kk,x,y,z
            call CCTK_WARN(failinfomode,warnline)
-           if(nf.gt.nfudgemax.and.GRHydro_c2p_reset_eps_tau_hot_eos.ne.1) then
-              call CCTK_WARN(failinfomode,"EOS error in c2p 1: injected heat too many times")
-              write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
-              call CCTK_WARN(failinfomode,warnline)
-              write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
-              call CCTK_WARN(failinfomode,warnline)
-              write(warnline,"(A7,i8)") "code: ",keyerr(1)
-              call CCTK_WARN(failinfomode,warnline)
-              write(warnline,"(A10,i5)") "reflevel: ", GRHydro_reflevel
-              call CCTK_WARN(failinfomode,warnline)
-              call CCTK_WARN(failwarnmode,"Aborting!!!")
-           else
-              call CCTK_WARN(failinfomode,"EOS error in c2p 1: LAST RESORT -- reset eps and tau based on old temp")
-              write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
-              call CCTK_WARN(failinfomode,warnline)
-              write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
-              call CCTK_WARN(failinfomode,warnline)
-              keytemp = 1
-              call EOS_Omni_press(handle,keytemp,GRHydro_eos_rf_prec,n,&
-                   rho,epsilon,temp,ye,xpress,keyerr,anyerr)
-              tau = ( (rho + rho*epsilon) + xpress ) * w_lorentz**2 - xpress - rho*w_lorentz
-              write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
-              call CCTK_WARN(failinfomode,warnline)
-              keytemp = 0
+           if(nf.gt.nfudgemax) then
+              if(GRHydro_c2p_reset_eps_tau_hot_eos.ne.1) then
+                 call CCTK_WARN(failinfomode,"EOS error in c2p 0: injected heat too many times")
+                 write(warnline,"(5i5,1P10E15.6)") cctk_iteration,GRHydro_reflevel,ii,jj,kk,x,y,z
+                 call CCTK_WARN(failinfomode,warnline)
+                 write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
+                 call CCTK_WARN(failinfomode,warnline)
+                 write(warnline,"(A7,i8)") "code: ",keyerr(1)
+                 call CCTK_WARN(failinfomode,warnline)
+                 write(warnline,"(A10,i5)") "reflevel, iteration: ", GRHydro_reflevel, cctk_iteration
+                 call CCTK_WARN(failinfomode,warnline)
+                 call CCTK_WARN(failwarnmode,"Aborting!!!")
+              else
+                 call CCTK_WARN(failinfomode,"EOS error in c2p 0: LAST RESORT -- reset eps and tau based on old temp")
+                 write(warnline,"(5i5,1P10E15.6)") cctk_iteration,GRHydro_reflevel,ii,jj,kk,x,y,z
+                 call CCTK_WARN(failinfomode,warnline)
+                 write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
+                 call CCTK_WARN(failinfomode,warnline)
+                 keytemp = 1
+                 call EOS_Omni_press(handle,keytemp,GRHydro_eos_rf_prec,n,&
+                      rho,epsilon,temp,ye,xpress,keyerr,anyerr)
+                 tau = ( (rho + rho*epsilon) + xpress ) * w_lorentz**2 - xpress - rho*w_lorentz
+                 write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
+                 call CCTK_WARN(failinfomode,warnline)
+                 keytemp = 0
+              endif
            endif
         else
            call CCTK_WARN(failinfomode,"EOS error in c2p 0")
@@ -740,32 +743,34 @@
            enddo
            write(warnline,"(A30,i5)") "Iterations of heat injection: ",nf
            call CCTK_WARN(failinfomode,warnline)
-           write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
+           write(warnline,"(5i5,1P10E15.6)") cctk_iteration,GRHydro_Reflevel,ii,jj,kk,x,y,z
            call CCTK_WARN(failinfomode,warnline)
-           if(nf.gt.nfudgemax.and.GRHydro_c2p_reset_eps_tau_hot_eos.ne.1) then
-              call CCTK_WARN(failinfomode,"EOS error in c2p 1: injected heat too many times")
-              write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
-              call CCTK_WARN(failinfomode,warnline)
-              write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
-              call CCTK_WARN(failinfomode,warnline)
-              write(warnline,"(A7,i8)") "code: ",keyerr(1)
-              call CCTK_WARN(failinfomode,warnline)
-              write(warnline,"(A10,i5)") "reflevel: ", GRHydro_reflevel
-              call CCTK_WARN(failinfomode,warnline)
-              call CCTK_WARN(failwarnmode,"Aborting!!!")
-           else
-              call CCTK_WARN(failinfomode,"EOS error in c2p 1: LAST RESORT -- reset eps and tau based on old temp")
-              write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
-              call CCTK_WARN(failinfomode,warnline)
-              write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
-              call CCTK_WARN(failinfomode,warnline)
-              keytemp = 1
-              call EOS_Omni_press(handle,keytemp,GRHydro_eos_rf_prec,n,&
-                   rho,epsilon,temp,ye,xpress,keyerr,anyerr)
-              tau = ( (rho + rho*epsilon) + xpress ) * w_lorentz**2 - xpress - rho*w_lorentz
-              write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
-              call CCTK_WARN(failinfomode,warnline)
-              keytemp = 0
+           if(nf.gt.nfudgemax) then
+              if(GRHydro_c2p_reset_eps_tau_hot_eos.ne.1) then
+                 call CCTK_WARN(failinfomode,"EOS error in c2p 1: injected heat too many times")
+                 write(warnline,"(5i5,1P10E15.6)") cctk_iteration,GRHydro_reflevel,ii,jj,kk,x,y,z
+                 call CCTK_WARN(failinfomode,warnline)
+                 write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
+                 call CCTK_WARN(failinfomode,warnline)
+                 write(warnline,"(A7,i8)") "code: ",keyerr(1)
+                 call CCTK_WARN(failinfomode,warnline)
+                 write(warnline,"(A10,i5)") "reflevel, iteration: ", GRHydro_reflevel, cctk_iteration
+                 call CCTK_WARN(failinfomode,warnline)
+                 call CCTK_WARN(failwarnmode,"Aborting!!!")
+              else
+                 call CCTK_WARN(failinfomode,"EOS error in c2p 1: LAST RESORT -- reset eps and tau based on old temp")
+                 write(warnline,"(5i5,1P10E15.6)") cctk_iteration,GRHydro_reflevel,ii,jj,kk,x,y,z
+                 call CCTK_WARN(failinfomode,warnline)
+                 write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
+                 call CCTK_WARN(failinfomode,warnline)
+                 keytemp = 1
+                 call EOS_Omni_press(handle,keytemp,GRHydro_eos_rf_prec,n,&
+                      rho,epsilon,temp,ye,xpress,keyerr,anyerr)
+                 tau = ( (rho + rho*epsilon) + xpress ) * w_lorentz**2 - xpress - rho*w_lorentz
+                 write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
+                 call CCTK_WARN(failinfomode,warnline)
+                 keytemp = 0
+              endif
            endif
         else
            call CCTK_WARN(failinfomode,"EOS error in c2p 1")
@@ -849,32 +854,34 @@
              enddo
              write(warnline,"(A30,i5)") "Iterations of heat injection: ",nf
              call CCTK_WARN(failinfomode,warnline)
-             write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
+             write(warnline,"(5i5,1P10E15.6)") cctk_iteration,GRHydro_Reflevel,ii,jj,kk,x,y,z
              call CCTK_WARN(failinfomode,warnline)
-             if(nf.gt.nfudgemax.and.GRHydro_c2p_reset_eps_tau_hot_eos.ne.1) then
-                call CCTK_WARN(failinfomode,"EOS error in c2p 1: injected heat too many times")
-                write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
-                call CCTK_WARN(failinfomode,warnline)
-                write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
-                call CCTK_WARN(failinfomode,warnline)
-                write(warnline,"(A7,i8)") "code: ",keyerr(1)
-                call CCTK_WARN(failinfomode,warnline)
-                write(warnline,"(A10,i5)") "reflevel: ", GRHydro_reflevel
-                call CCTK_WARN(failinfomode,warnline)
-                call CCTK_WARN(failwarnmode,"Aborting!!!")
-             else
-                call CCTK_WARN(failinfomode,"EOS error in c2p 1: LAST RESORT -- reset eps and tau based on old temp")
-                write(warnline,"(3i5,1P10E15.6)") ii,jj,kk,x,y,z
-                call CCTK_WARN(failinfomode,warnline)
-                write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
-                call CCTK_WARN(failinfomode,warnline)
-                keytemp = 1
-                call EOS_Omni_press(handle,keytemp,GRHydro_eos_rf_prec,n,&
-                     rho,epsilon,temp,ye,xpress,keyerr,anyerr)
-                tau = ( (rho + rho*epsilon) + xpress ) * w_lorentz**2 - xpress - rho*w_lorentz
-                write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
-                call CCTK_WARN(failinfomode,warnline)
-                keytemp = 0
+             if(nf.gt.nfudgemax) then
+                if(GRHydro_c2p_reset_eps_tau_hot_eos.ne.1) then
+                   call CCTK_WARN(failinfomode,"EOS error in c2p 2: injected heat too many times")
+                   write(warnline,"(5i5,1P10E15.6)") cctk_iteration,GRHydro_reflevel,ii,jj,kk,x,y,z
+                   call CCTK_WARN(failinfomode,warnline)
+                   write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
+                   call CCTK_WARN(failinfomode,warnline)
+                   write(warnline,"(A7,i8)") "code: ",keyerr(1)
+                   call CCTK_WARN(failinfomode,warnline)
+                   write(warnline,"(A10,i5)") "reflevel, iteration: ", GRHydro_reflevel, cctk_iteration
+                   call CCTK_WARN(failinfomode,warnline)
+                   call CCTK_WARN(failwarnmode,"Aborting!!!")
+                else
+                   call CCTK_WARN(failinfomode,"EOS error in c2p 2: LAST RESORT -- reset eps and tau based on old temp")
+                   write(warnline,"(5i5,1P10E15.6)") cctk_iteration,GRHydro_reflevel,ii,jj,kk,x,y,z
+                   call CCTK_WARN(failinfomode,warnline)
+                   write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
+                   call CCTK_WARN(failinfomode,warnline)
+                   keytemp = 1
+                   call EOS_Omni_press(handle,keytemp,GRHydro_eos_rf_prec,n,&
+                        rho,epsilon,temp,ye,xpress,keyerr,anyerr)
+                   tau = ( (rho + rho*epsilon) + xpress ) * w_lorentz**2 - xpress - rho*w_lorentz
+                   write(warnline,"(1P10E15.6)") rho,epsilon,temp,ye
+                   call CCTK_WARN(failinfomode,warnline)
+                   keytemp = 0
+                endif
              endif
           else
              call CCTK_WARN(failinfomode,"EOS error in c2p 2")



More information about the Commits mailing list