get_GOES_SXR_flux Subroutine

public subroutine get_GOES_SXR_flux(xboxmin1, xboxmin2, xboxmin3, xboxmax1, xboxmax2, xboxmax3, fl, eflux)

Uses

  • proc~~get_goes_sxr_flux~~UsesGraph proc~get_goes_sxr_flux get_GOES_SXR_flux module~mod_global_parameters mod_global_parameters proc~get_goes_sxr_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
double precision, intent(in) :: xboxmin1
double precision, intent(in) :: xboxmin2
double precision, intent(in) :: xboxmin3
double precision, intent(in) :: xboxmax1
double precision, intent(in) :: xboxmax2
double precision, intent(in) :: xboxmax3
type(te_fluid), intent(in) :: fl
double precision, intent(out) :: eflux

Calls

proc~~get_goes_sxr_flux~~CallsGraph proc~get_goes_sxr_flux get_GOES_SXR_flux mpi_allreduce mpi_allreduce proc~get_goes_sxr_flux->mpi_allreduce proc~get_goes_flux_grid get_GOES_flux_grid proc~get_goes_sxr_flux->proc~get_goes_flux_grid dexp dexp proc~get_goes_flux_grid->dexp

Source Code

    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