component_volumes Subroutine

public 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

Arguments

None

Contents

Source Code


Source Code

    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