ifepw2 Subroutine

public subroutine ifepw2(outfile, iprint)

Routine to calculate the rest of the IFE heat transport and plant power balance constituents, not already calculated in IFEPW1 or IFEACP 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 rest of the IFE heat transport and plant power balance constituents, not already calculated in routines IFEPW1 or IFEACP. F/MI/PJK/LOGBOOK12, p.67

Arguments

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

Contents

Source Code


Source Code

  subroutine ifepw2(outfile,iprint)

    !! Routine to calculate the rest of the IFE heat transport
    !! and plant power balance constituents, not already calculated in
    !! IFEPW1 or IFEACP
    !! 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 rest of the IFE heat transport
    !! and plant power balance constituents, not already calculated in
    !! routines <A HREF="ifepw1.html">IFEPW1</A> or
    !! <A HREF="ifeacp.html">IFEACP</A>.
    !! F/MI/PJK/LOGBOOK12, p.67
    !!
    ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    use cost_variables, only: ireactor, ipnet
    use process_output, only: oheadr, osubhd, ovarre, oblnkl, ovarin
    use fwbs_variables, only: pnucloss, emult, tbr, pnucblkt
    use heat_transport_variables, only: fachtmw, fcsht, psechtmw, pinjht, &
      vachtmw, trithtmw, crypmw, pgrossmw, pthermmw, etath, fgrosbop, precircmw, &
      pacpmw, pnetelmw, pinjwp, pfwdiv, nphx
    use ife_variables, only: tdspmw, tfacmw, htpmw_ife, fauxbop, ifetyp, taufall

    implicit none

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

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

    !  Facility heat removal (fcsht calculated in IFEACP)
    fachtmw = fcsht

    !  Total secondary heat
    psechtmw = pinjht + pnucloss + fachtmw + vachtmw + trithtmw + &
      tdspmw + tfacmw + crypmw + htpmw_ife

    !  Calculate powers relevant to a power-producing plant
    if (ireactor == 1) then

      !  Gross electric power
      pgrossmw = pthermmw * etath

      !  Balance of plant recirculating power fraction
      fgrosbop = min( 0.5D0, ( fauxbop/(pgrossmw/1000.0D0)**0.6D0) )

      !  Total recirculating power
      precircmw = (fgrosbop*pgrossmw) + pacpmw

      !  Net electric power
      pnetelmw = pgrossmw - precircmw

    end if

    if (iprint == 0) return

    !  Output section
    call oheadr(outfile,'Power / Heat Transport')
    call ovarre(outfile,'Fusion power escaping via holes (MW)', '(pnucloss)', pnucloss)
    call ovarre(outfile,'Power multiplication factor','(emult)',emult)
    if (ifetyp.eq.4) then
        call ovarre(outfile,'Tritium Breeding Ratio','(tbr)',tbr)
        call ovarre(outfile,'Lithium Fall Time (s)','(taufall)',taufall)
    end if
    call ovarre(outfile,'Driver wall plug power (MW)','(pinjwp)', pinjwp)
    call ovarre(outfile,'First wall nuclear heating (MW)','(pfwdiv)', pfwdiv)
    call ovarre(outfile,'Blanket nuclear heating (MW)','(pnucblkt)', pnucblkt)
    call ovarre(outfile,'Primary heat (MW)','(pthermmw)', pthermmw)
    call ovarre(outfile,'Secondary heat (MW)','(psechtmw)', psechtmw)
    call oblnkl(outfile)
    call ovarre(outfile,'Heat removal from driver power (MW)', '(pinjht)', pinjht)
    call ovarre(outfile,'Heat removal from cryogenic plant (MW)', '(crypmw)', crypmw)
    call ovarre(outfile,'Heat removal from vacuum pumps (MW)', '(vachtmw)', vachtmw)
    call ovarre(outfile,'Heat removal from target factory (MW)', '(tfacmw)', tfacmw)
    call ovarre(outfile,'Heat removal from delivery system (MW)', '(tdspmw)', tdspmw)
    call ovarre(outfile,'Heat removal from tritium plant (MW)', '(trithtmw)', trithtmw)
    call ovarre(outfile,'Heat removal from facilities (MW)', '(fachtmw)', fachtmw)
    call ovarin(outfile,'Number of primary heat exchangers', '(nphx)', nphx)

    if (ireactor /= 1) return
    call osubhd(outfile,'Reactor powers :')
    call ovarre(outfile,'Gross electric power (MW)', '(pgrossmw)', pgrossmw)
    call ovarre(outfile,'Net electric power (MW)', '(pnetelmw)', pnetelmw)
    call ovarre(outfile,'Balance of plant aux. power fraction', '(fgrosbop)', fgrosbop)

  end subroutine ifepw2