store_flux Subroutine

public subroutine store_flux(igrid, fC, idimmin, idimmax, nwfluxin)

Uses

  • proc~~store_flux~~UsesGraph proc~store_flux store_flux module~mod_global_parameters mod_global_parameters proc~store_flux->module~mod_global_parameters module~mod_basic_types mod_basic_types module~mod_global_parameters->module~mod_basic_types module~mod_connectivity mod_connectivity module~mod_global_parameters->module~mod_connectivity module~mod_constants mod_constants module~mod_global_parameters->module~mod_constants module~mod_physicaldata mod_physicaldata module~mod_global_parameters->module~mod_physicaldata module~mod_variables mod_variables module~mod_global_parameters->module~mod_variables mpi mpi module~mod_global_parameters->mpi module~mod_variables->module~mod_basic_types

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: igrid
double precision, intent(in) :: fC(ixGlo1:ixGhi1,ixGlo2:ixGhi2,ixGlo3:ixGhi3,1:nwfluxin,1:ndim)
integer, intent(in) :: idimmin
integer, intent(in) :: idimmax
integer, intent(in) :: nwfluxin

Called by

proc~~store_flux~~CalledByGraph proc~store_flux store_flux proc~fake_advance fake_advance proc~fake_advance->proc~store_flux proc~recalculateb recalculateB proc~recalculateb->proc~fake_advance proc~improve_initial_condition improve_initial_condition proc~improve_initial_condition->proc~recalculateb proc~main main proc~main->proc~improve_initial_condition program~agile agile program~agile->proc~main

Source Code

   subroutine store_flux(igrid,fC,idimmin,idimmax,nwfluxin)
     use mod_global_parameters

     integer, intent(in)          :: igrid, idimmin,idimmax, nwfluxin
     double precision, intent(in) :: fC(ixGlo1:ixGhi1,ixGlo2:ixGhi2,&
        ixGlo3:ixGhi3,1:nwfluxin,1:ndim)

     integer :: idims, iside, i1,i2,i3, ic1,ic2,ic3, inc1,inc2,inc3, ix1,ix2,&
        ix3, ixCo1,ixCo2,ixCo3, nxCo1,nxCo2,nxCo3, iw
!!
!!     do idims = idimmin,idimmax
!!       select case (idims)
!!         case (1)
!!         do iside=1,2
!!           i1=kr(1,1)*(2*iside-3);i2=kr(2,1)*(2*iside-3)
!!           i3=kr(3,1)*(2*iside-3);
!!
!!           if (neighbor_pole(i1,i2,i3,igrid)/=0) cycle
!!
!!           select case (neighbor_type(i1,i2,i3,igrid))
!!           case (neighbor_fine)
!!             select case (iside)
!!             case (1)
!!               pflux(iside,1,igrid)%flux(1,:,:,1:nwfluxin) = -fC(nghostcells,&
!!                  ixMlo2:ixMhi2,ixMlo3:ixMhi3,1:nwfluxin,1)
!!             case (2)
!!               pflux(iside,1,igrid)%flux(1,:,:,1:nwfluxin) = fC(ixMhi1,&
!!                  ixMlo2:ixMhi2,ixMlo3:ixMhi3,1:nwfluxin,1)
!!             end select
!!           case (neighbor_coarse)
!!             nxCo1=1;nxCo2=ixGhi2/2-nghostcells;nxCo3=ixGhi3/2-nghostcells;
!!             select case (iside)
!!             case (1)
!!               do iw=1,nwfluxin
!!                do ixCo3=1,nxCo3
!!         do ixCo2=1,nxCo2
!!         do ixCo1=1,nxCo1
!!                   ix1=nghostcells;ix2=ixMlo2+2*(ixCo2-1)
!!                   ix3=ixMlo3+2*(ixCo3-1);
!!                   pflux(iside,1,igrid)%flux(ixCo1,ixCo2,ixCo3,&
!!                      iw) = sum(fC(ix1,ix2:ix2+1,ix3:ix3+1,iw,1))
!!                end do
!!         end do
!!         end do
!!               end do
!!             case (2)
!!               do iw=1,nwfluxin
!!                do ixCo3=1,nxCo3
!!         do ixCo2=1,nxCo2
!!         do ixCo1=1,nxCo1
!!                   ix1=ixMhi1;ix2=ixMlo2+2*(ixCo2-1);ix3=ixMlo3+2*(ixCo3-1);
!!                   pflux(iside,1,igrid)%flux(ixCo1,ixCo2,ixCo3,&
!!                      iw) =-sum(fC(ix1,ix2:ix2+1,ix3:ix3+1,iw,1))
!!                end do
!!         end do
!!         end do
!!               end do
!!             end select
!!           end select
!!         end do
!!         case (2)
!!         do iside=1,2
!!           i1=kr(1,2)*(2*iside-3);i2=kr(2,2)*(2*iside-3)
!!           i3=kr(3,2)*(2*iside-3);
!!
!!           if (neighbor_pole(i1,i2,i3,igrid)/=0) cycle
!!
!!           select case (neighbor_type(i1,i2,i3,igrid))
!!           case (neighbor_fine)
!!             select case (iside)
!!             case (1)
!!               pflux(iside,2,igrid)%flux(:,1,:,1:nwfluxin) = -fC(ixMlo1:ixMhi1,&
!!                  nghostcells,ixMlo3:ixMhi3,1:nwfluxin,2)
!!             case (2)
!!               pflux(iside,2,igrid)%flux(:,1,:,1:nwfluxin) = fC(ixMlo1:ixMhi1,&
!!                  ixMhi2,ixMlo3:ixMhi3,1:nwfluxin,2)
!!             end select
!!           case (neighbor_coarse)
!!             nxCo1=ixGhi1/2-nghostcells;nxCo2=1;nxCo3=ixGhi3/2-nghostcells;
!!             select case (iside)
!!             case (1)
!!               do iw=1,nwfluxin
!!                do ixCo3=1,nxCo3
!!         do ixCo2=1,nxCo2
!!         do ixCo1=1,nxCo1
!!                   ix1=ixMlo1+2*(ixCo1-1);ix2=nghostcells
!!                   ix3=ixMlo3+2*(ixCo3-1);
!!                   pflux(iside,2,igrid)%flux(ixCo1,ixCo2,ixCo3,&
!!                      iw) = sum(fC(ix1:ix1+1,ix2,ix3:ix3+1,iw,2))
!!                end do
!!         end do
!!         end do
!!               end do
!!             case (2)
!!               do iw=1,nwfluxin
!!                do ixCo3=1,nxCo3
!!         do ixCo2=1,nxCo2
!!         do ixCo1=1,nxCo1
!!                   ix1=ixMlo1+2*(ixCo1-1);ix2=ixMhi2;ix3=ixMlo3+2*(ixCo3-1);
!!                   pflux(iside,2,igrid)%flux(ixCo1,ixCo2,ixCo3,&
!!                      iw) =-sum(fC(ix1:ix1+1,ix2,ix3:ix3+1,iw,2))
!!                end do
!!         end do
!!         end do
!!               end do
!!             end select
!!           end select
!!         end do
!!         case (3)
!!         do iside=1,2
!!           i1=kr(1,3)*(2*iside-3);i2=kr(2,3)*(2*iside-3)
!!           i3=kr(3,3)*(2*iside-3);
!!
!!           if (neighbor_pole(i1,i2,i3,igrid)/=0) cycle
!!
!!           select case (neighbor_type(i1,i2,i3,igrid))
!!           case (neighbor_fine)
!!             select case (iside)
!!             case (1)
!!               pflux(iside,3,igrid)%flux(:,:,1,1:nwfluxin) = -fC(ixMlo1:ixMhi1,&
!!                  ixMlo2:ixMhi2,nghostcells,1:nwfluxin,3)
!!             case (2)
!!               pflux(iside,3,igrid)%flux(:,:,1,1:nwfluxin) = fC(ixMlo1:ixMhi1,&
!!                  ixMlo2:ixMhi2,ixMhi3,1:nwfluxin,3)
!!             end select
!!           case (neighbor_coarse)
!!             nxCo1=ixGhi1/2-nghostcells;nxCo2=ixGhi2/2-nghostcells;nxCo3=1;
!!             select case (iside)
!!             case (1)
!!               do iw=1,nwfluxin
!!                do ixCo3=1,nxCo3
!!         do ixCo2=1,nxCo2
!!         do ixCo1=1,nxCo1
!!                   ix1=ixMlo1+2*(ixCo1-1);ix2=ixMlo2+2*(ixCo2-1)
!!                   ix3=nghostcells;
!!                   pflux(iside,3,igrid)%flux(ixCo1,ixCo2,ixCo3,&
!!                      iw) = sum(fC(ix1:ix1+1,ix2:ix2+1,ix3,iw,3))
!!                end do
!!         end do
!!         end do
!!               end do
!!             case (2)
!!               do iw=1,nwfluxin
!!                do ixCo3=1,nxCo3
!!         do ixCo2=1,nxCo2
!!         do ixCo1=1,nxCo1
!!                   ix1=ixMlo1+2*(ixCo1-1);ix2=ixMlo2+2*(ixCo2-1);ix3=ixMhi3;
!!                   pflux(iside,3,igrid)%flux(ixCo1,ixCo2,ixCo3,&
!!                      iw) =-sum(fC(ix1:ix1+1,ix2:ix2+1,ix3,iw,3))
!!                end do
!!         end do
!!         end do
!!               end do
!!             end select
!!           end select
!!         end do
!!       end select
!!     end do

   end subroutine store_flux