Calculate component surface area and volume using dshaped scheme Based on dshaped_blanket, dshaped_shield, dshaped_vv original author: J. Morris, CCFE, Culham Science Centre author: G. Graham, CCFE, Culham Science Centre
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | icomponent |
subroutine dshaped_component(icomponent)
!! Calculate component surface area and volume using dshaped scheme
!! Based on dshaped_blanket, dshaped_shield, dshaped_vv
!! original author: J. Morris, CCFE, Culham Science Centre
!! author: G. Graham, CCFE, Culham Science Centre
!
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
use maths_library, only: dshellarea, dshellvol
use build_variables, only: rsldi, shldith, blnkith, fwith, scrapli, scraplo, &
fwoth, blareaib, blareaob, blarea, blnkoth, blnktth, &
shareaib, shareaob, sharea, shldoth, shldtth, &
rsldo, d_vv_in, d_vv_out, d_vv_top, d_vv_bot
use fwbs_variables, only: volblkti, volblkto, volblkt, volshld, vdewin
use physics_variables, only: rminor
implicit none
! Input variables
integer, intent(in) :: icomponent
! icomponent - blnkt=0, shld=1, vv=2
! Local variables
real(dp) :: r1, r2
! Calculate major radius to outer edge of inboard ...
! ... section (m)
r1 = rsldi
! ... shield (m)
if (icomponent==1) r1 = r1 + shldith
! ... blanket (m)
if (icomponent==0) r1 = r1 + shldith + blnkith
! Horizontal distance between inside edges (m)
! i.e. outer radius of inboard part to inner radius of outboard part
! Blanket
r2 = fwith + scrapli + 2.0D0*rminor + scraplo + fwoth
! Sheild
if (icomponent==1) r2 = blnkith + r2 + blnkoth
! Vaccum Vessel
if (icomponent==2) r2 = rsldo - r1
! Calculate surface area, assuming 100% coverage
if (icomponent==0) call dshellarea(r1, r2, hblnkt, blareaib, blareaob, blarea)
if (icomponent==1) call dshellarea(r1, r2, hshld, shareaib, shareaob, sharea)
! Calculate volumes, assuming 100% coverage
if (icomponent==0) call dshellvol(r1, r2, hblnkt, blnkith, blnkoth, blnktth, volblkti, volblkto, volblkt)
if (icomponent==1) call dshellvol(r1, r2, hshld, shldith, shldoth, shldtth, volshldi, volshldo, volshld)
if (icomponent==2) call dshellvol(r1, r2, hvv, d_vv_in, d_vv_out, &
(d_vv_top+d_vv_bot)/2, volvvi, volvvo, vdewin)
end subroutine dshaped_component