From dc58f6686d806c3f225cae5bc422711195627c6a Mon Sep 17 00:00:00 2001
From: Grzegorz Kowal <grzegorz@amuncode.org>
Date: Tue, 17 Feb 2015 17:16:37 -0200
Subject: [PATCH] PROBLEMS: Separate jet and ambient magnetic fields in jet
 problem.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
---
 src/problems.F90 | 26 +++++++++++++++++++++-----
 src/shapes.F90   |  6 +++---
 2 files changed, 24 insertions(+), 8 deletions(-)

diff --git a/src/problems.F90 b/src/problems.F90
index 28e5ee6..a270e88 100644
--- a/src/problems.F90
+++ b/src/problems.F90
@@ -1288,9 +1288,10 @@ module problems
 !
     real(kind=8), save :: djet  = 1.00d-01
     real(kind=8), save :: damb  = 1.00d+01
+    real(kind=8), save :: bamb  = 1.00d-08
     real(kind=8), save :: pres  = 1.00d-02
-    real(kind=8), save :: bphi  = 1.00d-03
     real(kind=8), save :: vjet  = 0.99d+00
+    real(kind=8), save :: bjet  = 1.00d-03
     real(kind=8), save :: ljet  = 1.00d-00
     real(kind=8), save :: rjet  = 1.00d+00
     real(kind=8), save :: rjet2 = 1.00d+00
@@ -1307,6 +1308,7 @@ module problems
 ! local arrays
 !
     real(kind=8), dimension(nv,im) :: q, u
+    real(kind=8), dimension(nv)    :: qj
     real(kind=8), dimension(im)    :: x
     real(kind=8), dimension(jm)    :: y
     real(kind=8), dimension(km)    :: z
@@ -1328,7 +1330,8 @@ module problems
       call get_parameter_real("djet"  , djet)
       call get_parameter_real("damb"  , damb)
       call get_parameter_real("pres"  , pres)
-      call get_parameter_real("bphi"  , bphi)
+      call get_parameter_real("bamb"  , bamb)
+      call get_parameter_real("bjet"  , bjet)
       call get_parameter_real("vjet"  , vjet)
       call get_parameter_real("ljet"  , ljet)
       call get_parameter_real("rjet"  , rjet)
@@ -1343,6 +1346,20 @@ module problems
 
     end if ! first call
 
+! set the conditions inside the jet radius
+!
+    qj(idn) = djet
+    if (ipr > 0) qj(ipr) = pres
+    qj(ivx) = vjet
+    qj(ivy) = 0.0d+00
+    qj(ivz) = 0.0d+00
+    if (ibx > 0) then
+      qj(ibx) = 0.0d+00
+      qj(iby) = 0.0d+00
+      qj(ibz) = bjet
+      qj(ibp) = 0.0d+00
+    end if ! ibx > 0
+
 ! prepare block coordinates
 !
     x(1:im) = pdata%meta%xmin + ax(pdata%meta%level,1:im)
@@ -1381,7 +1398,7 @@ module problems
         if (ibx > 0) then
           q(ibx,1:im) = 0.0d+00
           q(iby,1:im) = 0.0d+00
-          q(ibz,1:im) = bphi
+          q(ibz,1:im) = bamb
           q(ibp,1:im) = 0.0d+00
         end if ! ibx > 0
 
@@ -1390,8 +1407,7 @@ module problems
         if (rr <= max(rm, rjet2)) then
           do i = 1, im
             if (x(i) <= max(dx, ljet)) then
-              q(idn,i) = djet
-              q(ivx,i) = vjet
+              q(1:nv,i) = qj(1:nv)
             end if
           end do ! i = 1, im
         end if ! R < Rjet
diff --git a/src/shapes.F90 b/src/shapes.F90
index 5fe4a91..7c2993d 100644
--- a/src/shapes.F90
+++ b/src/shapes.F90
@@ -583,8 +583,8 @@ module shapes
 !
     real(kind=8), save :: djet  = 1.00d-01
     real(kind=8), save :: pres  = 1.00d-02
-    real(kind=8), save :: bphi  = 1.00d-03
     real(kind=8), save :: vjet  = 0.99d+00
+    real(kind=8), save :: bjet  = 1.00d-03
     real(kind=8), save :: ljet  = 1.00d+00
     real(kind=8), save :: rjet  = 1.00d+00
     real(kind=8), save :: rjet2 = 1.00d+00
@@ -622,8 +622,8 @@ module shapes
 !
       call get_parameter_real("djet"  , djet)
       call get_parameter_real("pres"  , pres)
-      call get_parameter_real("bphi"  , bphi)
       call get_parameter_real("ljet"  , ljet)
+      call get_parameter_real("bjet"  , bjet)
       call get_parameter_real("vjet"  , vjet)
       call get_parameter_real("rjet"  , rjet)
 
@@ -647,7 +647,7 @@ module shapes
     if (ibx > 0) then
       qj(ibx) = 0.0d+00
       qj(iby) = 0.0d+00
-      qj(ibz) = bphi
+      qj(ibz) = bjet
       qj(ibp) = 0.0d+00
     end if ! ibx > 0