TALK=T;RUN(1,1)
  DISPLAY

  The tasks are, for a 3D transient heat-conduction problem:

  1. to compute slab-wise averages of temperature;
  2. to place them into a 3D variable for ease of display.

  It uses the In-Form functions:
      MAKE, STORE1, STORED, SUM and PRINT .
  In order to minimise the number of statements, a DO loop is used.

  Variables introduced are:
    * single variables: ASUM to sum the area, and
                        TSUM to sum the temperature;
    * 3D variable:      TAVE to store TSUM/ASUM.

  The Q1 contains PHOTON USE commands
  ENDDIS
  photon use
  p;;

  set prop off
  vi x
  msg local temperature distribution
  con TEM1 x 3 fi;.0001
  pause
  con off;red
  msg slabwise-average temperature distribution
  con TAVE x 3 fi;.0001
  enduse
 ************************************************************
  Group 1. Run Title and Number
 ************************************************************
 ************************************************************
 
 TEXT(Slabwise-averaging and display          )
 
 ************************************************************
 ************************************************************
 
 IRUNN = 1 ;LIBREF = 362
 ************************************************************
  Group 2. Time dependence
 STEADY = F
    * Set overall time and no. of steps
 TFIRST =0. ;TLAST =4000.
 FSTEP = 1 ;LSTEP = 10
 TFRAC(1)=0.1 ;TFRAC(2)=0.2
 TFRAC(3)=0.3 ;TFRAC(4)=0.4
 TFRAC(5)=0.5 ;TFRAC(6)=0.6
 TFRAC(7)=0.7 ;TFRAC(8)=0.8
 TFRAC(9)=0.9 ;TFRAC(10)=1.
 ************************************************************
  Group 3. X-Direction Grid Spacing
 CARTES = T
 NX = 10
 XULAST =1.
 XFRAC(1)=0.1 ;XFRAC(2)=0.2
 XFRAC(3)=0.3 ;XFRAC(4)=0.4
 XFRAC(5)=0.5 ;XFRAC(6)=0.6
 XFRAC(7)=0.7 ;XFRAC(8)=0.8
 XFRAC(9)=0.9 ;XFRAC(10)=1.
 ************************************************************
  Group 4. Y-Direction Grid Spacing
 NY = 10
 YVLAST =1.
 YFRAC(1)=0.1 ;YFRAC(2)=0.2
 YFRAC(3)=0.3 ;YFRAC(4)=0.4
 YFRAC(5)=0.5 ;YFRAC(6)=0.6
 YFRAC(7)=0.7 ;YFRAC(8)=0.8
 YFRAC(9)=0.9 ;YFRAC(10)=1.
 ************************************************************
  Group 5. Z-Direction Grid Spacing
 PARAB = F
 NZ = 10
 ZWLAST =1.
 ZFRAC(1)=0.1 ;ZFRAC(2)=0.2
 ZFRAC(3)=0.3 ;ZFRAC(4)=0.4
 ZFRAC(5)=0.5 ;ZFRAC(6)=0.6
 ZFRAC(7)=0.7 ;ZFRAC(8)=0.8
 ZFRAC(9)=0.9 ;ZFRAC(10)=1.
 ************************************************************
  Group 6. Body-Fitted Coordinates
 ************************************************************
  Group 7. Variables: STOREd,SOLVEd,NAMEd
 ONEPHS = T
 NAME(147)=TAVE ;NAME(148)=PRPS
 NAME(149)=SPH1 ;NAME(150)=TEM1
    * Y in SOLUTN argument list denotes:
    * 1-stored 2-solved 3-whole-field
    * 4-point-by-point 5-explicit 6-harmonic averaging 
 SOLUTN(TAVE,Y,N,N,N,N,N)
 SOLUTN(PRPS,Y,N,N,N,N,Y)
 SOLUTN(SPH1,Y,N,N,N,N,N)
 SOLUTN(TEM1,Y,Y,N,N,N,Y)
 PRPS = 148
 ************************************************************
  Group 8. Terms & Devices
    * Y in TERMS argument list denotes:
    * 1-built-in source 2-convection 3-diffusion 4-transient
    * 5-first phase variable 6-interphase transport         
 TERMS(TEM1,N,Y,Y,Y,Y,Y)
 DIFCUT =0.5 ;ZDIFAC =1.
 GALA = F ;ADDDIF = F
 ISOLX = -1 ;ISOLY = -1 ;ISOLZ = -1
 ************************************************************
  Group 9. Properties used if PRPS is not
  stored, and where PRPS = -1.0 if it is!
 RHO1 =1. ;TMP1 =0. ;EL1 =0.
 TSURR =0. ;TEMP0 =0. ;PRESS0 =0.
 DVO1DT =0. ;DRH1DP =0.
 EMISS =0. ;SCATT =0.
 RADIA =0. ;RADIB =0.
 ENUL =1.0E-05 ;ENUT =0.
 PRNDTL(TEM1)=1.
 PRT(TEM1)=1.
 CP1 =1. ;CP2 =1.
 ************************************************************
  Group 10.Inter-Phase Transfer Processes
 ************************************************************
  Group 11.Initial field variables (PHIs)
 FIINIT(TAVE)=1.0E-10 ;FIINIT(PRPS)=111.
 FIINIT(SPH1)=1.0E-10 ;FIINIT(TEM1)=0.
   No PATCHes yet used for this Group
 INIADD = F
 FSWEEP = 1
 NAMFI =CHAM
 ************************************************************
  Group 12. Patchwise adjustment of terms
  Patches for this group are printed with those
  for Group 13.
  Their names begin either with GP12 or &
 ************************************************************
  Group 13. Boundary & Special Sources
 
 PATCH(HEATER ,HIGH , 1, 5, 1, 5, 10, 10, 1, 10)
 COVAL(HEATER ,TEM1, FIXFLU ,1000. )
 
 PATCH(PATCH1 ,CELL , 1, 10, 1, 10, 1, 1, 1, 10)
 
 PATCH(PATCH2 ,CELL , 1, 10, 1, 10, 2, 2, 1, 10)
 
 PATCH(PATCH3 ,CELL , 1, 10, 1, 10, 3, 3, 1, 10)
 
 PATCH(PATCH4 ,CELL , 1, 10, 1, 10, 4, 4, 1, 10)
 
 PATCH(PATCH5 ,CELL , 1, 10, 1, 10, 5, 5, 1, 10)
 
 PATCH(PATCH6 ,CELL , 1, 10, 1, 10, 6, 6, 1, 10)
 
 PATCH(PATCH7 ,CELL , 1, 10, 1, 10, 7, 7, 1, 10)
 
 PATCH(PATCH8 ,CELL , 1, 10, 1, 10, 8, 8, 1, 10)
 
 PATCH(PATCH9 ,CELL , 1, 10, 1, 10, 9, 9, 1, 10)
 
 PATCH(PATCH10 ,CELL , 1, 10, 1, 10, 10, 10, 1, 10)
 XCYCLE = F
 EGWF = T
 WALLCO = GRND2
 ************************************************************
  Group 14. Downstream Pressure For PARAB
 ************************************************************
  Group 15. Terminate Sweeps
 LSWEEP = 50 ;ISWC1 = 1
 LITHYD = 1 ;LITFLX = 1 ;LITC = 1 ;ITHC1 = 1
 SELREF = T
 RESFAC =1.0E-05
 ************************************************************
  Group 16. Terminate Iterations
 LITER(TEM1)=20
 ENDIT(TEM1)=1.0E-03
 ************************************************************
  Group 17. Relaxation
 RELAX(TAVE,LINRLX,1.)
 RELAX(PRPS,LINRLX,1.)
 RELAX(SPH1,LINRLX,1.)
 RELAX(TEM1,FALSDT,1.0E+09)
 OVRRLX =0.
 EXPERT = F ;NNORSL = F
 ************************************************************
  Group 18. Limits
 VARMAX(TAVE)=1.0E+10 ;VARMIN(TAVE)=-1.0E+10
 VARMAX(PRPS)=1.0E+10 ;VARMIN(PRPS)=-1.0E+10
 VARMAX(SPH1)=1.0E+10 ;VARMIN(SPH1)=-1.0E+10
 VARMAX(TEM1)=1.0E+10 ;VARMIN(TEM1)=-1.0E+10
 ************************************************************
  Group 19. Data transmitted to GROUND
 PARSOL = F
 ISG62 = 1
 SPEDAT(SET,GXMONI,TRANSIENT,L,F)
 SPEDAT(SET,MAKE,TSUM,C,=0.)
 SPEDAT(SET,MAKE,ASUM,C,=0.)
 SPEDAT(SET,STORED,ASUM!PATCH1,C,=SUM(AHIGH)!ZSLFIN)
 SPEDAT(SET,STORED,TSUM!PATCH1,C,=SUM(AHIGH*TEM1)!ZSLFIN)
 SPEDAT(SET,STORED,TAVE!PATCH1,C,=TSUM/ASUM!ZSLFIN)
 SPEDAT(SET,STORED,ASUM!PATCH2,C,=SUM(AHIGH)!ZSLFIN)
 SPEDAT(SET,STORED,TSUM!PATCH2,C,=SUM(AHIGH*TEM1)!ZSLFIN)
 SPEDAT(SET,STORED,TAVE!PATCH2,C,=TSUM/ASUM!ZSLFIN)
 SPEDAT(SET,STORED,ASUM!PATCH3,C,=SUM(AHIGH)!ZSLFIN)
 SPEDAT(SET,STORED,TSUM!PATCH3,C,=SUM(AHIGH*TEM1)!ZSLFIN)
 SPEDAT(SET,STORED,TAVE!PATCH3,C,=TSUM/ASUM!ZSLFIN)
 SPEDAT(SET,STORED,ASUM!PATCH4,C,=SUM(AHIGH)!ZSLFIN)
 SPEDAT(SET,STORED,TSUM!PATCH4,C,=SUM(AHIGH*TEM1)!ZSLFIN)
 SPEDAT(SET,STORED,TAVE!PATCH4,C,=TSUM/ASUM!ZSLFIN)
 SPEDAT(SET,STORED,ASUM!PATCH5,C,=SUM(AHIGH)!ZSLFIN)
 SPEDAT(SET,STORED,TSUM!PATCH5,C,=SUM(AHIGH*TEM1)!ZSLFIN)
 SPEDAT(SET,STORED,TAVE!PATCH5,C,=TSUM/ASUM!ZSLFIN)
 SPEDAT(SET,STORED,ASUM!PATCH6,C,=SUM(AHIGH)!ZSLFIN)
 SPEDAT(SET,STORED,TSUM!PATCH6,C,=SUM(AHIGH*TEM1)!ZSLFIN)
 SPEDAT(SET,STORED,TAVE!PATCH6,C,=TSUM/ASUM!ZSLFIN)
 SPEDAT(SET,STORED,ASUM!PATCH7,C,=SUM(AHIGH)!ZSLFIN)
 SPEDAT(SET,STORED,TSUM!PATCH7,C,=SUM(AHIGH*TEM1)!ZSLFIN)
 SPEDAT(SET,STORED,TAVE!PATCH7,C,=TSUM/ASUM!ZSLFIN)
 SPEDAT(SET,STORED,ASUM!PATCH8,C,=SUM(AHIGH)!ZSLFIN)
 SPEDAT(SET,STORED,TSUM!PATCH8,C,=SUM(AHIGH*TEM1)!ZSLFIN)
 SPEDAT(SET,STORED,TAVE!PATCH8,C,=TSUM/ASUM!ZSLFIN)
 SPEDAT(SET,STORED,ASUM!PATCH9,C,=SUM(AHIGH)!ZSLFIN)
 SPEDAT(SET,STORED,TSUM!PATCH9,C,=SUM(AHIGH*TEM1)!ZSLFIN)
 SPEDAT(SET,STORED,TAVE!PATCH9,C,=TSUM/ASUM!ZSLFIN)
 SPEDAT(SET,STORED,ASUM!PATCH10,C,=SUM(AHIGH)!ZSLFIN)
 SPEDAT(SET,STORED,TSUM!PATCH10,C,=SUM(AHIGH*TEM1)!ZSLFIN)
 SPEDAT(SET,STORED,TAVE!PATCH10,C,=TSUM/ASUM!ZSLFIN)
 SPEDAT(SET,PRINT,WHOLE_HIGH_AREA,C,=ASUM)
 SPEDAT(SET,PRINT,IZ=NZ__SUM_TEM1,C,=TSUM)
 SPEDAT(SET,PRINT,T_AVERAGE!PROF,C,=TSUM/ASUM)
 SPEDAT(SET,GXMONI,PLOTALL,L,T)
 SPEDAT(SET,MATERIAL,111,L,T)
 ************************************************************
  Group 20. Preliminary Printout
 DISTIL = T ;NULLPR = F
 NDST = 0
 DSTTOL =1.0E-02
 EX(TAVE)=0.271 ;EX(PRPS)=111.
 EX(SPH1)=473. ;EX(TEM1)=0.271
 ************************************************************
  Group 21. Print-out of Variables
 INIFLD = F ;SUBWGR = F
    * Y in OUTPUT argument list denotes:
    * 1-field 2-correction-eq. monitor 3-selective dumping      
    * 4-whole-field residual 5-spot-value table 6-residual table
 OUTPUT(TAVE,Y,N,Y,N,N,N)
 OUTPUT(PRPS,Y,N,Y,N,N,N)
 OUTPUT(SPH1,N,N,Y,Y,N,N)
 OUTPUT(TEM1,Y,N,Y,Y,Y,Y)
 ************************************************************
  Group 22. Monitor Print-Out
 IXMON = 1 ;IYMON = 1 ;IZMON = 1
 NPRMON = 100000 ;NPRMNT = 1 ;TSTSWP = 1
 UWATCH = T ;USTEER = T
 HIGHLO = F
 ************************************************************
  Group 23.Field Print-Out & Plot Control
 NPRINT = 100000 ;NUMCLS = 5
 NTPRIN = 1 ;ISTPRF = 1 ;ISTPRL = 100000
 NXPRIN = -1 ;IXPRF = 1 ;IXPRL = 10000
 NYPRIN = -1 ;IYPRF = 1 ;IYPRL = 10000
 NZPRIN = -1 ;IZPRF = 1 ;IZPRL = 10000
 XZPR = F ;YZPR = F
 IPLTF = 1 ;IPLTL = -1 ;NPLT = -1
 ISWPRF = 1 ;ISWPRL = 100000
 ITABL = 3 ;IPROF = 1
 ABSIZ =0.5 ;ORSIZ =0.4
 NTZPRF = 1 ;NCOLPF = 50
 ICHR = 2 ;NCOLCO = 45 ;NROWCO = 20
 
 PATCH(PROF ,PROFIL, 1, 1, 1, 1, 1, 1, 1, 10)
 ************************************************************
  Group 24. Dumps For Restarts
 SAVE = T ;NOWIPE = F
 NSAVE =CHAM
STOP