fake update magnetic field from vector potential
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer | :: | ixImin1 | ||||
| integer | :: | ixImin2 | ||||
| integer | :: | ixImin3 | ||||
| integer | :: | ixImax1 | ||||
| integer | :: | ixImax2 | ||||
| integer | :: | ixImax3 | ||||
| type(state) | :: | s | ||||
| double precision | :: | fC(ixImin1:ixImax1,ixImin2:ixImax2,ixImin3:ixImax3,1:nwflux,1:ndim) | ||||
| double precision | :: | fE(ixImin1:ixImax1,ixImin2:ixImax2,ixImin3:ixImax3,sdim:3) | ||||
| double precision | :: | dx1 | ||||
| double precision | :: | dx2 | ||||
| double precision | :: | dx3 |
subroutine fake_update(ixImin1,ixImin2,ixImin3,ixImax1,ixImax2,ixImax3,s,fC,& fE,dx1,dx2,dx3) use mod_global_parameters integer :: ixImin1,ixImin2,ixImin3,ixImax1,ixImax2,ixImax3 type(state) :: s double precision :: fC(ixImin1:ixImax1,ixImin2:ixImax2,& ixImin3:ixImax3,1:nwflux,1:ndim) double precision :: fE(ixImin1:ixImax1,ixImin2:ixImax2,& ixImin3:ixImax3,sdim:3) double precision :: dx1,dx2,dx3 integer :: ixIsmin1,ixIsmin2,ixIsmin3,ixIsmax1,& ixIsmax2,ixIsmax3,ixOmin1,ixOmin2,ixOmin3,ixOmax1,ixOmax2,ixOmax3,idir double precision :: A(s%ixGsmin1:s%ixGsmax1,& s%ixGsmin2:s%ixGsmax2,s%ixGsmin3:s%ixGsmax3,1:3) associate(ws=>s%ws,x=>s%x) A=zero ws=zero ixIsmin1=s%ixGsmin1;ixIsmin2=s%ixGsmin2;ixIsmin3=s%ixGsmin3 ixIsmax1=s%ixGsmax1;ixIsmax2=s%ixGsmax2;ixIsmax3=s%ixGsmax3; ixOmin1=ixImin1+nghostcells;ixOmin2=ixImin2+nghostcells ixOmin3=ixImin3+nghostcells;ixOmax1=ixImax1-nghostcells ixOmax2=ixImax2-nghostcells;ixOmax3=ixImax3-nghostcells; fC=0.d0 call b_from_vector_potentialA(ixIsmin1,ixIsmin2,ixIsmin3,ixIsmax1,ixIsmax2,& ixIsmax3, ixImin1,ixImin2,ixImin3,ixImax1,ixImax2,ixImax3, ixOmin1,& ixOmin2,ixOmin3,ixOmax1,ixOmax2,ixOmax3, ws, x, A) ! This is important only in 3D do idir=sdim,3 fE(ixImin1:ixImax1,ixImin2:ixImax2,ixImin3:ixImax3,& idir) =-A(ixImin1:ixImax1,ixImin2:ixImax2,ixImin3:ixImax3,idir) end do end associate end subroutine fake_update