ifeacp Subroutine

public subroutine ifeacp(outfile, iprint)

Routine to calculate AC power requirements for an IFE power plant author: P J Knight, CCFE, Culham Science Centre outfile : input integer : output file unit iprint : input integer : switch for writing to output file (1=yes) This routine calculates the AC power requirements for an IFE power plant. F/MI/PJK/LOGBOOK12, p.68

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: outfile
integer, intent(in) :: iprint

Contents

Source Code


Source Code

  subroutine ifeacp(outfile,iprint)

    !! Routine to calculate AC power requirements for an IFE power plant
    !! author: P J Knight, CCFE, Culham Science Centre
    !! outfile : input integer : output file unit
    !! iprint : input integer : switch for writing to output file (1=yes)
    !! This routine calculates the AC power requirements for an IFE power plant.
    !! F/MI/PJK/LOGBOOK12, p.68
    !!
    ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    use buildings_variables, only: efloor
    use process_output, only: oheadr, ovarre, oblnkl
    use heat_transport_variables, only: baseel, pwpm2, pacpmw, crypmw, vachtmw, &
      trithtmw, pinjwp, fcsht, tlvpmw
    use ife_variables, only: tdspmw, tfacmw, htpmw_ife, reprat, lipmw, ifetyp

    implicit none

    ! Arguments
    integer, intent(in) :: iprint,outfile

    !  Local variables

    real(dp), save :: basemw,pmwpm2

    ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    !  Facility base load, MW (loads not dependent on floor area)

    basemw = baseel * 1.0D-6

    !  Power needed per floor area, MW/m2

    pmwpm2 = pwpm2 * 1.0D-6

    !  Total pulsed power system load, MW

    pacpmw = crypmw + vachtmw + tdspmw + tfacmw + &
         (htpmw_ife*reprat/6.0D0) + trithtmw + pinjwp + basemw + &
         (efloor*pmwpm2) + lipmw

    !  Total baseline power to facility loads, MW

    fcsht  = basemw + (efloor*pmwpm2)

    !  Estimate of the total low voltage power, MW

    tlvpmw = fcsht + trithtmw + (htpmw_ife*reprat/6.0D0) + vachtmw + &
         0.5D0*crypmw + tfacmw

    if (iprint == 0) return

    !  Output section
    call oheadr(outfile,'AC Power')

    call ovarre(outfile,'Facility base load (MW)','(basemw)',basemw)
    call ovarre(outfile,'Total floor space (m2)','(efloor)',efloor)
    call ovarre(outfile,'Power/floor area (MW/m2)','(pmwpm2)',pmwpm2)
    call ovarre(outfile,'Driver power supplies (MW)','(pinjwp)', &
         pinjwp)
    call ovarre(outfile,'Target delivery system (MW)','(tdspmw)', &
         tdspmw)
    call ovarre(outfile,'Target factory (MW)','(tfacmw)', &
         tfacmw)
    call ovarre(outfile,'Tritium processing plant (MW)','(trithtmw)', &
         trithtmw)
    call ovarre(outfile,'Vacuum pump motors (MW)','(vachtmw)',vachtmw)
    call ovarre(outfile,'Cryogenic comp motors (MW)','(crypmw)',crypmw)
    call ovarre(outfile,'Heat transport system pump motors (MW)', &
         '(htpmw_ife*reprat/6)',htpmw_ife*reprat/6.0D0)
    if (ifetyp.eq.4) then
        call ovarre(outfile,'Lithium Pump Power (MW)','(lipmw)',lipmw)
    end if
    call oblnkl(outfile)
    call ovarre(outfile,'Total pulsed power (MW)','(pacpmw)',pacpmw)
    call ovarre(outfile,'Total base power reqd at all times (MW)', &
         '(fcsht)',fcsht)
    call ovarre(outfile,'Total low voltage power (MW)','(tlvpmw)',tlvpmw)

  end subroutine ifeacp