Calculate the blanket, shield, vacuum vessel and cryostat volumes author: J. Morris, CCFE, Culham Science Centre Calculate the blanket, shield, vacuum vessel and cryostat volumes
subroutine component_volumes
!! Calculate the blanket, shield, vacuum vessel and cryostat volumes
!! author: J. Morris, CCFE, Culham Science Centre
!! Calculate the blanket, shield, vacuum vessel and cryostat volumes
!
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
use fwbs_variables, only: fwbsshape
use physics_variables, only: itart
implicit none
! N.B. icomponent is a switch used to specify selected component: blanket=0, sheild=1, vacuum vessel=2
! Replaced seperate subroutines for blnkt, shld and vv with fuction/subroutine with icomponent switch.
! Calculate half-height
! Blanket
hblnkt = component_half_height(icomponent=0)
! Shield
hshld = component_half_height(icomponent=1)
! Vacuum Vessel
hvv = component_half_height(icomponent=2)
! D-shaped blanket and shield
if ((itart == 1).or.(fwbsshape == 1)) then
do icomponent = 0,2
call dshaped_component(icomponent)
enddo
! Elliptical blanket and shield
else
do icomponent = 0,2
call elliptical_component(icomponent)
enddo
! This will fail the hts_REBCO and 2D_scan regression tests,
! the number of VMCON iterations (nviter) is different.
! Seems to be because in the blanket calculations (icomponent=0):
! r2 = 1.3836567143743970 rather than old value of r2 = 1.3836567143743972,
! r3 = 3.7009701431231936 rather than r3 = 3.7009701431231923.
end if
! Apply coverage factors to volumes and surface areas
call apply_coverage_factors
! Calculate cryostat geometry
call external_cryo_geometry
end subroutine component_volumes