mirror of
https://github.com/openmc-dev/openmc.git
synced 2026-07-27 13:45:36 -04:00
Clean up
This commit is contained in:
parent
1f750bface
commit
9028145a26
2 changed files with 86 additions and 179 deletions
|
|
@ -82,6 +82,7 @@ contains
|
|||
integer :: i_filter_ein ! index for incoming energy filter
|
||||
integer :: i_filter_eout ! index for outgoing energy filter
|
||||
integer :: i_filter_surf ! index for surface filter
|
||||
integer :: stride_surf ! stride for surface filter
|
||||
logical :: energy_filters! energy filters present
|
||||
real(8) :: flux ! temp variable for flux
|
||||
type(TallyObject), pointer :: t ! pointer for tally object
|
||||
|
|
@ -252,6 +253,7 @@ contains
|
|||
else if (ital == 3) then
|
||||
|
||||
i_filter_surf = t % filter(t % find_filter(FILTER_SURFACE))
|
||||
stride_surf = t % stride(t % find_filter(FILTER_SURFACE))
|
||||
|
||||
! Initialize and filter for energy
|
||||
do l = 1, size(t % filter)
|
||||
|
|
@ -266,107 +268,48 @@ contains
|
|||
filter_matches(i_filter_mesh) % bins % data(1) = &
|
||||
mesh_indices_to_bin(m, (/ i, j, k /))
|
||||
|
||||
! Left surface
|
||||
filter_matches(i_filter_surf) % bins % data(1) = OUT_LEFT
|
||||
score_index = 1
|
||||
do l = 1, size(t % filter)
|
||||
if (t % filter(l) == i_filter_surf) cycle
|
||||
score_index = score_index + (filter_matches(t % filter(l)) &
|
||||
% bins % data(1) - 1) * t % stride(l)
|
||||
end do
|
||||
cmfd % current(1,h,i,j,k) = t % results(RESULT_SUM,1,score_index)
|
||||
|
||||
filter_matches(i_filter_surf) % bins % data(1) = IN_LEFT
|
||||
score_index = 1
|
||||
do l = 1, size(t % filter)
|
||||
score_index = score_index + (filter_matches(t % filter(l)) &
|
||||
% bins % data(1) - 1) * t % stride(l)
|
||||
end do
|
||||
cmfd % current(2,h,i,j,k) = t % results(RESULT_SUM,1,score_index)
|
||||
! Left surface
|
||||
cmfd % current(1,h,i,j,k) = t % results(RESULT_SUM, 1, &
|
||||
score_index + (OUT_LEFT - 1) * stride_surf)
|
||||
cmfd % current(2,h,i,j,k) = t % results(RESULT_SUM, 1, &
|
||||
score_index + (IN_LEFT - 1) * stride_surf)
|
||||
|
||||
! Right surface
|
||||
filter_matches(i_filter_surf) % bins % data(1) = IN_RIGHT
|
||||
score_index = 1
|
||||
do l = 1, size(t % filter)
|
||||
score_index = score_index + (filter_matches(t % filter(l)) &
|
||||
% bins % data(1) - 1) * t % stride(l)
|
||||
end do
|
||||
cmfd % current(3,h,i,j,k) = t % results(RESULT_SUM,1,score_index)
|
||||
|
||||
filter_matches(i_filter_surf) % bins % data(1) = OUT_RIGHT
|
||||
score_index = 1
|
||||
do l = 1, size(t % filter)
|
||||
score_index = score_index + (filter_matches(t % filter(l)) &
|
||||
% bins % data(1) - 1) * t % stride(l)
|
||||
end do
|
||||
cmfd % current(4,h,i,j,k) = t % results(RESULT_SUM,1,score_index)
|
||||
cmfd % current(3,h,i,j,k) = t % results(RESULT_SUM, 1, &
|
||||
score_index + (IN_RIGHT - 1) * stride_surf)
|
||||
cmfd % current(4,h,i,j,k) = t % results(RESULT_SUM, 1, &
|
||||
score_index + (OUT_RIGHT - 1) * stride_surf)
|
||||
|
||||
! Back surface
|
||||
filter_matches(i_filter_surf) % bins % data(1) = OUT_BACK
|
||||
score_index = 1
|
||||
do l = 1, size(t % filter)
|
||||
score_index = score_index + (filter_matches(t % filter(l)) &
|
||||
% bins % data(1) - 1) * t % stride(l)
|
||||
end do
|
||||
cmfd % current(5,h,i,j,k) = t % results(RESULT_SUM,1,score_index)
|
||||
|
||||
filter_matches(i_filter_surf) % bins % data(1) = IN_BACK
|
||||
score_index = 1
|
||||
do l = 1, size(t % filter)
|
||||
score_index = score_index + (filter_matches(t % filter(l)) &
|
||||
% bins % data(1) - 1) * t % stride(l)
|
||||
end do
|
||||
cmfd % current(6,h,i,j,k) = t % results(RESULT_SUM,1,score_index)
|
||||
cmfd % current(5,h,i,j,k) = t % results(RESULT_SUM, 1, &
|
||||
score_index + (OUT_BACK - 1) * stride_surf)
|
||||
cmfd % current(6,h,i,j,k) = t % results(RESULT_SUM, 1, &
|
||||
score_index + (IN_BACK - 1) * stride_surf)
|
||||
|
||||
! Front surface
|
||||
filter_matches(i_filter_surf) % bins % data(1) = IN_FRONT
|
||||
score_index = 1
|
||||
do l = 1, size(t % filter)
|
||||
score_index = score_index + (filter_matches(t % filter(l)) &
|
||||
% bins % data(1) - 1) * t % stride(l)
|
||||
end do
|
||||
cmfd % current(7,h,i,j,k) = t % results(RESULT_SUM,1,score_index)
|
||||
|
||||
filter_matches(i_filter_surf) % bins % data(1) = OUT_FRONT
|
||||
score_index = 1
|
||||
do l = 1, size(t % filter)
|
||||
score_index = score_index + (filter_matches(t % filter(l)) &
|
||||
% bins % data(1) - 1) * t % stride(l)
|
||||
end do
|
||||
cmfd % current(8,h,i,j,k) = t % results(RESULT_SUM,1,score_index)
|
||||
cmfd % current(7,h,i,j,k) = t % results(RESULT_SUM, 1, &
|
||||
score_index + (IN_FRONT - 1) * stride_surf)
|
||||
cmfd % current(8,h,i,j,k) = t % results(RESULT_SUM, 1, &
|
||||
score_index + (OUT_FRONT - 1) * stride_surf)
|
||||
|
||||
! Bottom surface
|
||||
filter_matches(i_filter_surf) % bins % data(1) = OUT_BOTTOM
|
||||
score_index = 1
|
||||
do l = 1, size(t % filter)
|
||||
score_index = score_index + (filter_matches(t % filter(l)) &
|
||||
% bins % data(1) - 1) * t % stride(l)
|
||||
end do
|
||||
cmfd % current(9,h,i,j,k) = t % results(RESULT_SUM,1,score_index)
|
||||
|
||||
filter_matches(i_filter_surf) % bins % data(1) = IN_BOTTOM
|
||||
score_index = 1
|
||||
do l = 1, size(t % filter)
|
||||
score_index = score_index + (filter_matches(t % filter(l)) &
|
||||
% bins % data(1) - 1) * t % stride(l)
|
||||
end do
|
||||
cmfd % current(10,h,i,j,k) = t % results(RESULT_SUM,1,score_index)
|
||||
cmfd % current(9,h,i,j,k) = t % results(RESULT_SUM, 1, &
|
||||
score_index + (OUT_BOTTOM - 1) * stride_surf)
|
||||
cmfd % current(10,h,i,j,k) = t % results(RESULT_SUM, 1, &
|
||||
score_index + (IN_BOTTOM - 1) * stride_surf)
|
||||
|
||||
! Top surface
|
||||
filter_matches(i_filter_surf) % bins % data(1) = IN_TOP
|
||||
score_index = 1
|
||||
do l = 1, size(t % filter)
|
||||
score_index = score_index + (filter_matches(t % filter(l)) &
|
||||
% bins % data(1) - 1) * t % stride(l)
|
||||
end do
|
||||
cmfd % current(11,h,i,j,k) = t % results(RESULT_SUM,1,score_index)
|
||||
|
||||
filter_matches(i_filter_surf) % bins % data(1) = OUT_TOP
|
||||
score_index = 1
|
||||
do l = 1, size(t % filter)
|
||||
score_index = score_index + (filter_matches(t % filter(l)) &
|
||||
% bins % data(1) - 1) * t % stride(l)
|
||||
end do
|
||||
cmfd % current(12,h,i,j,k) = t % results(RESULT_SUM,1,score_index)
|
||||
cmfd % current(11,h,i,j,k) = t % results(RESULT_SUM, 1, &
|
||||
score_index + (IN_TOP - 1) * stride_surf)
|
||||
cmfd % current(12,h,i,j,k) = t % results(RESULT_SUM, 1, &
|
||||
score_index + (OUT_TOP - 1) * stride_surf)
|
||||
|
||||
end if TALLY
|
||||
|
||||
|
|
|
|||
152
src/output.F90
152
src/output.F90
|
|
@ -971,6 +971,7 @@ contains
|
|||
integer :: i_filter_mesh ! index for mesh filter
|
||||
integer :: i_filter_ein ! index for incoming energy filter
|
||||
integer :: i_filter_surf ! index for surface filter
|
||||
integer :: stride_surf ! stride for surface filter
|
||||
integer :: n ! number of incoming energy bins
|
||||
integer :: filter_index ! index in results array for filters
|
||||
logical :: print_ebin ! should incoming energy bin be displayed?
|
||||
|
|
@ -980,12 +981,15 @@ contains
|
|||
|
||||
! Get pointer to mesh
|
||||
i_filter_mesh = t % filter(t % find_filter(FILTER_MESH))
|
||||
i_filter_surf = t % filter(t % find_filter(FILTER_SURFACE))
|
||||
select type(filt => filters(i_filter_mesh) % obj)
|
||||
type is (MeshFilter)
|
||||
m => meshes(filt % mesh)
|
||||
end select
|
||||
|
||||
! Get surface filter index and stride
|
||||
i_filter_surf = t % filter(t % find_filter(FILTER_SURFACE))
|
||||
stride_surf = t % stride(t % find_filter(FILTER_SURFACE))
|
||||
|
||||
! initialize bins array
|
||||
do j = 1, size(t % filter)
|
||||
call filter_matches(t % filter(j)) % bins % clear()
|
||||
|
|
@ -1038,147 +1042,107 @@ contains
|
|||
filter_matches(i_filter_ein) % bins % data(1)))
|
||||
end if
|
||||
|
||||
! Left Surface
|
||||
filter_matches(i_filter_surf) % bins % data(1) = OUT_LEFT
|
||||
filter_index = 1
|
||||
do j = 1, size(t % filter)
|
||||
if (t % filter(j) == i_filter_surf) cycle
|
||||
filter_index = filter_index + (filter_matches(t % filter(j)) &
|
||||
% bins % data(1) - 1) * t % stride(j)
|
||||
end do
|
||||
|
||||
! Left Surface
|
||||
write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') &
|
||||
"Outgoing Current on Left", &
|
||||
to_str(t % results(RESULT_SUM,1,filter_index)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index)))
|
||||
|
||||
filter_matches(i_filter_surf) % bins % data(1) = IN_LEFT
|
||||
filter_index = 1
|
||||
do j = 1, size(t % filter)
|
||||
filter_index = filter_index + (filter_matches(t % filter(j)) &
|
||||
% bins % data(1) - 1) * t % stride(j)
|
||||
end do
|
||||
to_str(t % results(RESULT_SUM,1,filter_index + &
|
||||
(OUT_LEFT - 1) * stride_surf)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index + &
|
||||
(OUT_LEFT - 1) * stride_surf)))
|
||||
|
||||
write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') &
|
||||
"Incoming Current on Left", &
|
||||
to_str(t % results(RESULT_SUM,1,filter_index)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index)))
|
||||
to_str(t % results(RESULT_SUM,1,filter_index + &
|
||||
(IN_LEFT - 1) * stride_surf)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index + &
|
||||
(IN_LEFT - 1) * stride_surf)))
|
||||
|
||||
! Right Surface
|
||||
filter_matches(i_filter_surf) % bins % data(1) = OUT_RIGHT
|
||||
filter_index = 1
|
||||
do j = 1, size(t % filter)
|
||||
filter_index = filter_index + (filter_matches(t % filter(j)) &
|
||||
% bins % data(1) - 1) * t % stride(j)
|
||||
end do
|
||||
write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') &
|
||||
"Outgoing Current on Right", &
|
||||
to_str(t % results(RESULT_SUM,1,filter_index)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index)))
|
||||
to_str(t % results(RESULT_SUM,1,filter_index + &
|
||||
(OUT_RIGHT - 1) * stride_surf)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index + &
|
||||
(OUT_RIGHT - 1) * stride_surf)))
|
||||
|
||||
filter_matches(i_filter_surf) % bins % data(1) = IN_RIGHT
|
||||
filter_index = 1
|
||||
do j = 1, size(t % filter)
|
||||
filter_index = filter_index + (filter_matches(t % filter(j)) &
|
||||
% bins % data(1) - 1) * t % stride(j)
|
||||
end do
|
||||
write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') &
|
||||
"Incoming Current on Right", &
|
||||
to_str(t % results(RESULT_SUM,1,filter_index)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index)))
|
||||
to_str(t % results(RESULT_SUM,1,filter_index + &
|
||||
(IN_RIGHT - 1) * stride_surf)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index + &
|
||||
(IN_RIGHT - 1) * stride_surf)))
|
||||
|
||||
if (n_dim >= 2) then
|
||||
|
||||
! Back Surface
|
||||
filter_matches(i_filter_surf) % bins % data(1) = OUT_BACK
|
||||
filter_index = 1
|
||||
do j = 1, size(t % filter)
|
||||
filter_index = filter_index + (filter_matches(t % filter(j)) &
|
||||
% bins % data(1) - 1) * t % stride(j)
|
||||
end do
|
||||
write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') &
|
||||
"Outgoing Current on Back", &
|
||||
to_str(t % results(RESULT_SUM,1,filter_index)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index)))
|
||||
to_str(t % results(RESULT_SUM,1,filter_index + &
|
||||
(OUT_BACK - 1) * stride_surf)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index + &
|
||||
(OUT_BACK - 1) * stride_surf)))
|
||||
|
||||
filter_matches(i_filter_surf) % bins % data(1) = IN_BACK
|
||||
filter_index = 1
|
||||
do j = 1, size(t % filter)
|
||||
filter_index = filter_index + (filter_matches(t % filter(j)) &
|
||||
% bins % data(1) - 1) * t % stride(j)
|
||||
end do
|
||||
write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') &
|
||||
"Incoming Current on Back", &
|
||||
to_str(t % results(RESULT_SUM,1,filter_index)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index)))
|
||||
to_str(t % results(RESULT_SUM,1,filter_index + &
|
||||
(IN_BACK - 1) * stride_surf)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index + &
|
||||
(IN_BACK - 1) * stride_surf)))
|
||||
|
||||
! Front Surface
|
||||
filter_matches(i_filter_surf) % bins % data(1) = OUT_FRONT
|
||||
filter_index = 1
|
||||
do j = 1, size(t % filter)
|
||||
filter_index = filter_index + (filter_matches(t % filter(j)) &
|
||||
% bins % data(1) - 1) * t % stride(j)
|
||||
end do
|
||||
write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') &
|
||||
"Net Current on Front", &
|
||||
to_str(t % results(RESULT_SUM,1,filter_index)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index)))
|
||||
to_str(t % results(RESULT_SUM,1,filter_index + &
|
||||
(OUT_FRONT - 1) * stride_surf)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index + &
|
||||
(OUT_FRONT - 1) * stride_surf)))
|
||||
|
||||
filter_matches(i_filter_surf) % bins % data(1) = IN_FRONT
|
||||
filter_index = 1
|
||||
do j = 1, size(t % filter)
|
||||
filter_index = filter_index + (filter_matches(t % filter(j)) &
|
||||
% bins % data(1) - 1) * t % stride(j)
|
||||
end do
|
||||
write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') &
|
||||
"Net Current on Front", &
|
||||
to_str(t % results(RESULT_SUM,1,filter_index)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index)))
|
||||
to_str(t % results(RESULT_SUM,1,filter_index + &
|
||||
(IN_FRONT - 1) * stride_surf)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index + &
|
||||
(IN_FRONT - 1) * stride_surf)))
|
||||
end if
|
||||
|
||||
if (n_dim == 3) then
|
||||
|
||||
! Bottom Surface
|
||||
filter_matches(i_filter_surf) % bins % data(1) = OUT_BOTTOM
|
||||
filter_index = 1
|
||||
do j = 1, size(t % filter)
|
||||
filter_index = filter_index + (filter_matches(t % filter(j)) &
|
||||
% bins % data(1) - 1) * t % stride(j)
|
||||
end do
|
||||
write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') &
|
||||
"Outgoing Current on Bottom", &
|
||||
to_str(t % results(RESULT_SUM,1,filter_index)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index)))
|
||||
to_str(t % results(RESULT_SUM,1,filter_index + &
|
||||
(OUT_BOTTOM - 1) * stride_surf)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index + &
|
||||
(OUT_BOTTOM - 1) * stride_surf)))
|
||||
|
||||
filter_matches(i_filter_surf) % bins % data(1) = IN_BOTTOM
|
||||
filter_index = 1
|
||||
do j = 1, size(t % filter)
|
||||
filter_index = filter_index + (filter_matches(t % filter(j)) &
|
||||
% bins % data(1) - 1) * t % stride(j)
|
||||
end do
|
||||
write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') &
|
||||
"Incoming Current on Bottom", &
|
||||
to_str(t % results(RESULT_SUM,1,filter_index)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index)))
|
||||
to_str(t % results(RESULT_SUM,1,filter_index + &
|
||||
(IN_BOTTOM - 1) * stride_surf)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index + &
|
||||
(IN_BOTTOM - 1) * stride_surf)))
|
||||
|
||||
! Top Surface
|
||||
filter_matches(i_filter_surf) % bins % data(1) = OUT_TOP
|
||||
filter_index = 1
|
||||
do j = 1, size(t % filter)
|
||||
filter_index = filter_index + (filter_matches(t % filter(j)) &
|
||||
% bins % data(1) - 1) * t % stride(j)
|
||||
end do
|
||||
write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') &
|
||||
"Outgoing Current on Top", &
|
||||
to_str(t % results(RESULT_SUM,1,filter_index)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index)))
|
||||
to_str(t % results(RESULT_SUM,1,filter_index + &
|
||||
(OUT_TOP - 1) * stride_surf)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index + &
|
||||
(OUT_TOP - 1) * stride_surf)))
|
||||
|
||||
filter_matches(i_filter_surf) % bins % data(1) = IN_TOP
|
||||
filter_index = 1
|
||||
do j = 1, size(t % filter)
|
||||
filter_index = filter_index + (filter_matches(t % filter(j)) &
|
||||
% bins % data(1) - 1) * t % stride(j)
|
||||
end do
|
||||
write(UNIT=unit_tally, FMT='(5X,A,T35,A,"+/- ",A)') &
|
||||
"Incoming Current on Top", &
|
||||
to_str(t % results(RESULT_SUM,1,filter_index)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index)))
|
||||
to_str(t % results(RESULT_SUM,1,filter_index + &
|
||||
(IN_TOP - 1) * stride_surf)), &
|
||||
trim(to_str(t % results(RESULT_SUM_SQ,1,filter_index + &
|
||||
(IN_TOP - 1) * stride_surf)))
|
||||
end if
|
||||
end do
|
||||
end do
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue