13 SUBROUTINE calc_cell(RMIN, REACTOR_LOC, D_DIR, N_DIR, CELL_LOC)
26 DOUBLE PRECISION,
INTENT(IN) :: RMIN
29 DOUBLE PRECISION,
INTENT(IN) :: REACTOR_LOC
31 INTEGER,
INTENT(IN) :: N_DIR
33 DOUBLE PRECISION,
INTENT(IN),
DIMENSION(0:(N_DIR+3)) :: D_DIR
36 INTEGER,
INTENT(INOUT) :: CELL_LOC
43 DOUBLE PRECISION :: CELL_START, CELL_END
49 cell_end = cell_start + d_dir(lc)
50 IF (reactor_loc <= cell_start +
half*d_dir(lc))
THEN 53 ELSEIF (reactor_loc <= cell_end +
half*d_dir(lc+1))
THEN 75 SUBROUTINE calc_loc(RMIN, D_DIR, CELL_LOC, REACTOR_LOC)
87 DOUBLE PRECISION,
INTENT(IN) :: RMIN
90 INTEGER,
INTENT(IN) :: CELL_LOC
92 DOUBLE PRECISION,
INTENT(IN),
DIMENSION(0:CELL_LOC) :: D_DIR
95 DOUBLE PRECISION,
INTENT(INOUT) :: REACTOR_LOC
105 IF (cell_loc - 1 > 0)
THEN 106 reactor_loc = reactor_loc + sum(d_dir(2:cell_loc))
133 DOUBLE PRECISION,
INTENT(in) :: RMIN
135 DOUBLE PRECISION,
INTENT(in) :: LOC
137 INTEGER,
INTENT(in) :: N_DIR
139 DOUBLE PRECISION,
INTENT(IN) :: D_DIR(0:(n_dir+3))
141 INTEGER,
INTENT(out) :: CELL
148 DOUBLE PRECISION :: CELL_START, CELL_END
155 cell_end = cell_start + d_dir(lc)
156 IF(cell_start <= loc .AND. loc <= cell_end)
THEN subroutine calc_cell(RMIN, REACTOR_LOC, D_DIR, N_DIR, CELL_LOC)
subroutine calc_cell_intersect(RMIN, LOC, D_DIR, N_DIR, CELL)
double precision, parameter half
subroutine calc_loc(RMIN, D_DIR, CELL_LOC, REACTOR_LOC)