prolong_1st Subroutine

private subroutine prolong_1st(wCo, ixComin1, ixComin2, ixComin3, ixComax1, ixComax2, ixComax3, wFi, xFi)

Uses

  • proc~~prolong_1st~~UsesGraph proc~prolong_1st prolong_1st module~mod_global_parameters mod_global_parameters proc~prolong_1st->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

do 1st order prolongation

Arguments

Type IntentOptional Attributes Name
double precision, intent(in) :: wCo(ixGlo1:ixGhi1,ixGlo2:ixGhi2,ixGlo3:ixGhi3,nw)
integer, intent(in) :: ixComin1
integer, intent(in) :: ixComin2
integer, intent(in) :: ixComin3
integer, intent(in) :: ixComax1
integer, intent(in) :: ixComax2
integer, intent(in) :: ixComax3
double precision, intent(out) :: wFi(ixGlo1:ixGhi1,ixGlo2:ixGhi2,ixGlo3:ixGhi3,nw)
double precision, intent(in) :: xFi(ixGlo1:ixGhi1,ixGlo2:ixGhi2,ixGlo3:ixGhi3,1:ndim)

Source Code

  subroutine prolong_1st(wCo,ixComin1,ixComin2,ixComin3,ixComax1,ixComax2,&
       ixComax3,wFi,xFi)
    use mod_global_parameters

    integer, intent(in) :: ixComin1,ixComin2,ixComin3,ixComax1,ixComax2,&
       ixComax3
    double precision, intent(in) :: wCo(ixGlo1:ixGhi1,ixGlo2:ixGhi2,&
       ixGlo3:ixGhi3,nw), xFi(ixGlo1:ixGhi1,ixGlo2:ixGhi2,ixGlo3:ixGhi3,&
       1:ndim)
    double precision, intent(out) :: wFi(ixGlo1:ixGhi1,ixGlo2:ixGhi2,&
       ixGlo3:ixGhi3,nw)

    integer :: ixCo1,ixCo2,ixCo3, ixFi1,ixFi2,ixFi3, iw
    integer :: ixFimin1,ixFimin2,ixFimin3,ixFimax1,ixFimax2,ixFimax3

    
    do ixCo3 = ixComin3,ixComax3
       do ixCo2 = ixComin2,ixComax2
          do ixCo1 = ixComin1,ixComax1
             ixFi3=2*(ixCo3-ixComin3)+ixMlo3
             ixFi2=2*(ixCo2-ixComin2)+ixMlo2
             ixFi1=2*(ixCo1-ixComin1)+ixMlo1
             forall(iw=1:nwgc) wFi(ixFi1:ixFi1+1,ixFi2:ixFi2+1,ixFi3:ixFi3+1,&
                  iw)=wCo(ixCo1,ixCo2,ixCo3,iw)
          end do
       end do
    end do

  end subroutine prolong_1st