subroutine get_GOES_SXR_flux(xboxmin1,xboxmin2,xboxmin3,xboxmax1,xboxmax2,&
xboxmax3,fl,eflux)
!get GOES SXR 1-8A flux observing at 1AU from given box [w/m^2]
use mod_global_parameters
double precision, intent(in) :: xboxmin1,xboxmin2,xboxmin3,xboxmax1,&
xboxmax2,xboxmax3
type(te_fluid), intent(in) :: fl
double precision, intent(out) :: eflux
double precision :: dxb1,dxb2,dxb3,xbmin1,xbmin2,xbmin3,xbmax1,xbmax2,&
xbmax3
integer :: iigrid,igrid,j
integer :: ixOmin1,ixOmin2,ixOmin3,ixOmax1,ixOmax2,ixOmax3,ixImin1,&
ixImin2,ixImin3,ixImax1,ixImax2,ixImax3,ix1,ix2,ix3
double precision :: eflux_grid,eflux_pe
ixImin1=ixglo1;ixImin2=ixglo2;ixImin3=ixglo3;
ixImax1=ixghi1;ixImax2=ixghi2;ixImax3=ixghi3;
ixOmin1=ixmlo1;ixOmin2=ixmlo2;ixOmin3=ixmlo3;
ixOmax1=ixmhi1;ixOmax2=ixmhi2;ixOmax3=ixmhi3;
eflux_pe=zero
do iigrid=1,igridstail; igrid=igrids(iigrid);
dxlevel(1)=rnode(rpdx1_,igrid);dxlevel(2)=rnode(rpdx2_,igrid)
dxlevel(3)=rnode(rpdx3_,igrid);
xbmin1=rnode(rpxmin1_,igrid);xbmin2=rnode(rpxmin2_,igrid)
xbmin3=rnode(rpxmin3_,igrid);
xbmax1=rnode(rpxmax1_,igrid);xbmax2=rnode(rpxmax2_,igrid)
xbmax3=rnode(rpxmax3_,igrid);
call get_GOES_flux_grid(ixImin1,ixImin2,ixImin3,ixImax1,ixImax2,&
ixImax3,ixOmin1,ixOmin2,ixOmin3,ixOmax1,ixOmax2,ixOmax3,ps(igrid)%w,&
ps(igrid)%x,ps(igrid)%dvolume(ixImin1:ixImax1,ixImin2:ixImax2,&
ixImin3:ixImax3),xboxmin1,xboxmin2,xboxmin3,xboxmax1,xboxmax2,&
xboxmax3,xbmin1,xbmin2,xbmin3,xbmax1,xbmax2,xbmax3,fl,eflux_grid)
eflux_pe=eflux_pe+eflux_grid
enddo
call MPI_ALLREDUCE(eflux_pe,eflux,1,MPI_DOUBLE_PRECISION,MPI_SUM,icomm,&
ierrmpi)
end subroutine get_GOES_SXR_flux