c Mahc_Evolve: Numerical Evolution of the General Relativistic Hydro Equations c Copyright (C) 2001 Mark Miller /*@@ @file Mahc_pred_calc_update.F @date December 1999 @author Mark Miller @desc Calculate the hydro update for the predictor step. @enddesc @@*/ #include "cctk.h" #include "cctk_Parameters.h" #include "cctk_Arguments.h" /*@@ @routine Mahc_pred_calc_update @date December 1999 @author Mark Miller @desc Calculate the hydro update for the predictor step. @enddesc @calls @calledby @history @endhistory @@*/ subroutine Mahc_pred_calc_update(CCTK_FARGUMENTS) implicit none DECLARE_CCTK_FARGUMENTS DECLARE_CCTK_PARAMETERS CCTK_REAL evolve_dt integer order,didit,CCTK_Equals c Cactus just did timelevel rotation, so we must now populate the new c evolved variables: dens = dens_p sx = sx_p sy = sy_p sz = sz_p tau = tau_p didit = 0 evolve_dt = cctk_delta_time order = -1 if (CCTK_EQUALS(hydro_order,'fluxlim')) then order = 2 endif if (CCTK_EQUALS(hydro_order,'upwind')) then order = 1 endif if(order .eq. -1) then write(*,*) 'Mahc_pred_calc_update: error: hydro_order must ' write(*,*) ' contain fluxlim (2nd order) or ' write(*,*) ' upwind (1st order) ' call CCTK_WARN(0,"Must set hydro_order to something reasonable!") endif if((CCTK_EQUALS(hydro_method,'fluxsplit')) .or. . (CCTK_EQUALS(hydro_method,'roe'))) then didit = 1 c zero out the flux contributions: del_dens = 0.0d0 del_sx = 0.0d0 del_sy = 0.0d0 del_sz = 0.0d0 del_tau = 0.0d0 c calculate the hydro flux updates if(CCTK_EQUALS(hydro_method,'fluxsplit')) then c call fluxsplit_x_update(MAHC_ARGS,evolve_dt,order) c call fluxsplit_y_update(MAHC_ARGS,evolve_dt,order) c call fluxsplit_z_update(MAHC_ARGS,evolve_dt,order) call CCTK_WARN(0,"got to hook up fluxsplit!") endif if((CCTK_EQUALS(hydro_method,'roe')).or. . (CCTK_EQUALS(hydro_method,'eno'))) then call roe_flux_x_update(CCTK_FARGUMENTS,evolve_dt,order) call roe_flux_y_update(CCTK_FARGUMENTS,evolve_dt,order) call roe_flux_z_update(CCTK_FARGUMENTS,evolve_dt,order) endif c calculate the hydro source updates call hydro_source_update(CCTK_FARGUMENTS,evolve_dt) endif return end