18 amix, amix_tr, amix_src, &
28 REAL (R8),
INTENT (IN) :: conv
29 REAL (R8),
INTENT (IN) :: conv_iter
30 REAL (R8),
INTENT (IN) :: tolerance
32 REAL (R8),
INTENT (INOUT) :: amix
33 REAL (R8),
INTENT (INOUT) :: amix_tr
34 REAL (R8),
INTENT (INOUT) :: amix_src
38 INTEGER,
INTENT (IN) :: control(3)
42 IF (conv.LT.tolerance * 100._r8) &
44 IF (conv.LT.tolerance * 10._r8) &
49 IF (conv.GT.conv_iter)
THEN
50 IF (control(1).GT.0) &
51 amix = amix * (conv_iter / conv) **
p
52 IF (control(2).GT.0) &
53 amix_tr = amix_tr * (conv_iter / conv) **
p
54 IF (control(3).GT.0) &
55 amix_src = amix_src * (conv_iter / conv) **
p
59 IF (conv.LT.conv_iter)
THEN
60 IF (control(1).GT.0) &
61 amix = amix * 1.05_r8 **
p
62 IF (control(2).GT.0) &
63 amix_tr = amix_tr * 1.05_r8 **
p
64 IF (control(3).GT.0) &
65 amix_src = amix_src * 1.05_r8 **
p
70 IF (control(1).GT.0) &
71 amix = max(tolerance * 100._r8, amix)
72 IF (control(2).GT.0) &
73 amix_tr = max(tolerance * 100._r8, amix_tr)
74 IF (control(3).GT.0) &
75 amix_src = max(tolerance * 100._r8, amix_src)
77 IF (control(2).GT.0.AND.control(1).GT.0) &
78 amix_tr = max(amix**0.5, amix_tr)
79 IF (control(3).GT.0.AND.control(1).GT.0) &
80 amix_src = max(amix**0.5, amix_src)
83 IF (control(1).GT.0) &
84 amix = min(1.0_r8, amix)
85 IF (control(2).GT.0) &
86 amix_tr = min(1.0_r8, amix_tr)
87 IF (control(3).GT.0) &
88 amix_src = min(1.0_r8, amix_src)
90 IF (control(1).EQ.0) &
92 IF (control(2).EQ.0) &
94 IF (control(3).EQ.0) &
real(r8) function p(a, x, xr, xs, yr, ys, psi, psir, F_dia)
subroutine fc2k_control_amix(CONV, CONV_ITER, TOLERANCE, AMIX, AMIX_TR, AMIX_SRC, CONTROL)