dshaped_component Subroutine

public 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

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: icomponent

Contents

Source Code


Source Code

    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