TALK=T;RUN(1,1)
  DISPLAY

  This case exemplifies the setting of sources in In-Form objects.

  It concerns the temperature of water flowing within a
  cylindrical vessel which contains a spiral heating element.

  The spiral is an In-Form object formed by use of the SPHERE
  function with the cartesian x, y and coordinates of the sphere
  centre varying with the angular coordinate xg of the
  cylindrical-polar co-ordinate system (CARTES=F), as follows

  (INFOB at PATCH1 is SPHERE(1+.5*sin(xg),1+.5*cos(xg),1+.5*xg,  .2$
)+SPHERE(1+.5*sin(xg),1+.5*cos(xg),4.14+.5*xg,.2) with INFOB_1)

  Two SPHERE functions are used because two turns of the spiral are
  required.

  The following formula sets a heat source:
  char(heatfl)
  heatfl=2000.
  (SOURCE of TEM1 at PATCH1 is :heatfl: with INFOB_1)

  The flow resistance exerted by the spiral is represented by a mom$
entum
  source as follows:

  char(uresis,vresis,wresis)
  uresis=-1000.*VABS*VOL*U1
  vresis=-1000.*VABS*VOL*V1
  wresis=-1000.*VABS*VOL*W1
  (SOURCE of U1 at PATCH1 is :uresis: with LINE!INFOB_1)
  (SOURCE of V1 at PATCH1 is :vresis: with LINE!INFOB_1)
  (SOURCE of W1 at PATCH1 is :wresis: with LINE!INFOB_1)

  The following formulae defines MARK variable.
  MARK is used by PHOTON for marks of borders of a spiral.

  (INITIAL of MARK at PATCH1 is 1. with INFOB_1)

  In addition this example illustrates how RESIDUALS and CORRECTIONS
  can be stored with In-Form using.

  First declare 3D storage of TRES and TCOR variables in which
  residuals and corrections values will be saved.

  STORE(TRES,TCOR)

  Then store residuals of temperature in TRES by the statement:

  (STORED of TRES is RESI(TEM1))

  Then store temperature corrections in TCOR by the statement:

  (STORED of TCOR is CORR(TEM1))

  The Q1 contains PHOTON USE commands
  ENDDIS
  infrbegin
  debug f
  formula t
  stored t
  infrend
  PHOTON USE
  p



  up z
  gr ou y m
  ve x 1 sh
  ve x 20 sh
  msg Please wait
  surf mark x 0.99
  surf mark z 0.99
  msg Velocity vectors
  msg Press  to continue
  pause
  ve cl
  con p1 x 1 fil;.01
  con p1 x 20 fil;.01
  red
  msg Pressure contours
  msg Press  to continue
  pause
  con cl
  con tem1 x 1 fil;.01
  con tem1 x 20 fil;.01
  red
  msg Temperature contours
  pause
  con cl
  con tres x 1 fil;.01
  con tres x 20 fil;.01
  red
  msg Residuals of temperature contours
  pause
  con cl
  con tcor x 1 fil;.01
  con tcor x 20 fil;.01
  red
  msg Corrections of temperature contours
  pause
  con cl
  do izz=1,40,8
  con tem1 iz izz fi;0.001
  enddo
  ENDUSE
 ************************************************************
  Group 1. Run Title and Number
 ************************************************************
 ************************************************************
 
 TEXT(3D heating spiral: 768                  )
 
 ************************************************************
 ************************************************************
 
 IRUNN = 1 ;LIBREF = 768
 ************************************************************
  Group 2. Time dependence
 STEADY = T
 ************************************************************
  Group 3. X-Direction Grid Spacing
 CARTES = F
 NX = 40
 XULAST =6.28
 XFRAC(1)=0.025 ;XFRAC(2)=0.05
 XFRAC(3)=0.075 ;XFRAC(4)=0.1
 XFRAC(5)=0.125 ;XFRAC(6)=0.15
 XFRAC(7)=0.175 ;XFRAC(8)=0.2
 XFRAC(9)=0.225 ;XFRAC(10)=0.25
 XFRAC(11)=0.275 ;XFRAC(12)=0.3
 XFRAC(13)=0.325 ;XFRAC(14)=0.35
 XFRAC(15)=0.375 ;XFRAC(16)=0.4
 XFRAC(17)=0.425 ;XFRAC(18)=0.45
 XFRAC(19)=0.475 ;XFRAC(20)=0.5
 XFRAC(21)=0.525 ;XFRAC(22)=0.55
 XFRAC(23)=0.575 ;XFRAC(24)=0.6
 XFRAC(25)=0.625 ;XFRAC(26)=0.65
 XFRAC(27)=0.675 ;XFRAC(28)=0.7
 XFRAC(29)=0.725 ;XFRAC(30)=0.75
 XFRAC(31)=0.775 ;XFRAC(32)=0.8
 XFRAC(33)=0.825 ;XFRAC(34)=0.85
 XFRAC(35)=0.875 ;XFRAC(36)=0.9
 XFRAC(37)=0.925 ;XFRAC(38)=0.95
 XFRAC(39)=0.975 ;XFRAC(40)=1.
 ************************************************************
  Group 4. Y-Direction Grid Spacing
 NY = 40
 YVLAST =1.
 YFRAC(1)=0.025 ;YFRAC(2)=0.05
 YFRAC(3)=0.075 ;YFRAC(4)=0.1
 YFRAC(5)=0.125 ;YFRAC(6)=0.15
 YFRAC(7)=0.175 ;YFRAC(8)=0.2
 YFRAC(9)=0.225 ;YFRAC(10)=0.25
 YFRAC(11)=0.275 ;YFRAC(12)=0.3
 YFRAC(13)=0.325 ;YFRAC(14)=0.35
 YFRAC(15)=0.375 ;YFRAC(16)=0.4
 YFRAC(17)=0.425 ;YFRAC(18)=0.45
 YFRAC(19)=0.475 ;YFRAC(20)=0.5
 YFRAC(21)=0.525 ;YFRAC(22)=0.55
 YFRAC(23)=0.575 ;YFRAC(24)=0.6
 YFRAC(25)=0.625 ;YFRAC(26)=0.65
 YFRAC(27)=0.675 ;YFRAC(28)=0.7
 YFRAC(29)=0.725 ;YFRAC(30)=0.75
 YFRAC(31)=0.775 ;YFRAC(32)=0.8
 YFRAC(33)=0.825 ;YFRAC(34)=0.85
 YFRAC(35)=0.875 ;YFRAC(36)=0.9
 YFRAC(37)=0.925 ;YFRAC(38)=0.95
 YFRAC(39)=0.975 ;YFRAC(40)=1.
 ************************************************************
  Group 5. Z-Direction Grid Spacing
 PARAB = F
 NZ = 40
 ZWLAST =8.
 ZFRAC(1)=0.025 ;ZFRAC(2)=0.05
 ZFRAC(3)=0.075 ;ZFRAC(4)=0.1
 ZFRAC(5)=0.125 ;ZFRAC(6)=0.15
 ZFRAC(7)=0.175 ;ZFRAC(8)=0.2
 ZFRAC(9)=0.225 ;ZFRAC(10)=0.25
 ZFRAC(11)=0.275 ;ZFRAC(12)=0.3
 ZFRAC(13)=0.325 ;ZFRAC(14)=0.35
 ZFRAC(15)=0.375 ;ZFRAC(16)=0.4
 ZFRAC(17)=0.425 ;ZFRAC(18)=0.45
 ZFRAC(19)=0.475 ;ZFRAC(20)=0.5
 ZFRAC(21)=0.525 ;ZFRAC(22)=0.55
 ZFRAC(23)=0.575 ;ZFRAC(24)=0.6
 ZFRAC(25)=0.625 ;ZFRAC(26)=0.65
 ZFRAC(27)=0.675 ;ZFRAC(28)=0.7
 ZFRAC(29)=0.725 ;ZFRAC(30)=0.75
 ZFRAC(31)=0.775 ;ZFRAC(32)=0.8
 ZFRAC(33)=0.825 ;ZFRAC(34)=0.85
 ZFRAC(35)=0.875 ;ZFRAC(36)=0.9
 ZFRAC(37)=0.925 ;ZFRAC(38)=0.95
 ZFRAC(39)=0.975 ;ZFRAC(40)=1.
 ************************************************************
  Group 6. Body-Fitted Coordinates
 ************************************************************
  Group 7. Variables: STOREd,SOLVEd,NAMEd
 ONEPHS = T
 NAME(1)=P1 ;NAME(3)=U1
 NAME(5)=V1 ;NAME(7)=W1
 NAME(146)=TCOR ;NAME(147)=TRES
 NAME(148)=VABS ;NAME(149)=MARK
 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(P1,Y,Y,Y,N,N,Y)
 SOLUTN(U1,Y,Y,N,N,N,Y)
 SOLUTN(V1,Y,Y,N,N,N,Y)
 SOLUTN(W1,Y,Y,N,N,N,Y)
 SOLUTN(TCOR,Y,N,N,N,N,Y)
 SOLUTN(TRES,Y,N,N,N,N,Y)
 SOLUTN(VABS,Y,N,N,N,N,Y)
 SOLUTN(MARK,Y,N,N,N,N,Y)
 SOLUTN(TEM1,Y,Y,Y,N,N,Y)
 ************************************************************
  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(P1,Y,Y,Y,N,Y,Y)
 TERMS(U1,Y,Y,Y,Y,Y,Y)
 TERMS(V1,Y,Y,Y,Y,Y,Y)
 TERMS(W1,Y,Y,Y,Y,Y,Y)
 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 =998.22998 ;TMP1 =0.
 EL1 =0.
 TSURR =0. ;TEMP0 =273.
 PRESS0 =1.0E+05
 DVO1DT =1.18E-04 ;DRH1DP =0.
 EMISS =0. ;SCATT =0.
 RADIA =0. ;RADIB =0.
 ENUL =1.006E-06 ;ENUT =0.
 PRNDTL(U1)=1. ;PRNDTL(V1)=1.
 PRNDTL(W1)=1. ;PRNDTL(TEM1)=-0.597
 PRT(U1)=1. ;PRT(V1)=1.
 PRT(W1)=1. ;PRT(TEM1)=1.
 CP1 =4181.799805 ;CP2 =1.
 ************************************************************
  Group 10.Inter-Phase Transfer Processes
 ************************************************************
  Group 11.Initial field variables (PHIs)
 FIINIT(P1)=1.0E-10 ;FIINIT(U1)=1.0E-10
 FIINIT(V1)=1.0E-10 ;FIINIT(W1)=1.0E-10
 FIINIT(TCOR)=1.0E-10 ;FIINIT(TRES)=1.0E-10
 FIINIT(VABS)=1.0E-10 ;FIINIT(MARK)=0.
 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(PATCH1 ,CELL , 1, 40, 1, 40, 1, 40, 1, 1)
 COVAL(PATCH1 ,U1 ,In-Form:source - see Grp 19)
 COVAL(PATCH1 ,V1 ,In-Form:source - see Grp 19)
 COVAL(PATCH1 ,W1 ,In-Form:source - see Grp 19)
 COVAL(PATCH1 ,TEM1,In-Form:source - see Grp 19)
 
 PATCH(INLET ,LOW , 1, 40, 1, 40, 1, 1, 1, 1)
 COVAL(INLET ,P1 , FIXFLU ,9.9823 )
 COVAL(INLET ,U1 ,0. ,0. )
 COVAL(INLET ,V1 ,0. ,0. )
 COVAL(INLET ,W1 ,0. ,1.0E-02 )
 COVAL(INLET ,TEM1,0. ,0. )
 
 PATCH(OUTLET ,HIGH , 1, 40, 1, 40, 40, 40, 1, 1)
 COVAL(OUTLET ,P1 ,1000. ,0. )
 COVAL(OUTLET ,TEM1,0. , SAME )
 
 PATCH(WALLN ,NWALL , 1, 40, 40, 40, 1, 40, 1, 1)
 COVAL(WALLN ,U1 ,1. ,0. )
 COVAL(WALLN ,W1 ,1. ,0. )
 XCYCLE = F
 EGWF = T
 WALLCO = GRND2
 ************************************************************
  Group 14. Downstream Pressure For PARAB
 ************************************************************
  Group 15. Terminate Sweeps
 LSWEEP = 100 ;ISWC1 = 1
 LITHYD = 1 ;LITFLX = 1 ;LITC = 1 ;ITHC1 = 1
 SELREF = T
 RESFAC =1.0E-04
 ************************************************************
  Group 16. Terminate Iterations
 LITER(P1)=20 ;LITER(U1)=10
 LITER(V1)=10 ;LITER(W1)=10
 LITER(TEM1)=20
 ENDIT(P1)=1.0E-03 ;ENDIT(U1)=1.0E-03
 ENDIT(V1)=1.0E-03 ;ENDIT(W1)=1.0E-03
 ENDIT(TEM1)=1.0E-03
 ************************************************************
  Group 17. Relaxation
 RELAX(P1,LINRLX,1.)
 RELAX(U1,FALSDT,1.)
 RELAX(V1,FALSDT,1.)
 RELAX(W1,FALSDT,1.)
 RELAX(TCOR,LINRLX,1.)
 RELAX(TRES,LINRLX,1.)
 RELAX(VABS,LINRLX,1.)
 RELAX(MARK,LINRLX,1.)
 RELAX(TEM1,FALSDT,1.0E+09)
 OVRRLX =0.
 EXPERT = F ;NNORSL = F
 ************************************************************
  Group 18. Limits
 VARMAX(P1)=1.0E+10 ;VARMIN(P1)=-1.0E+10
 VARMAX(U1)=1.0E+06 ;VARMIN(U1)=-1.0E+06
 VARMAX(V1)=1.0E+06 ;VARMIN(V1)=-1.0E+06
 VARMAX(W1)=1.0E+06 ;VARMIN(W1)=-1.0E+06
 VARMAX(TCOR)=1.0E+10 ;VARMIN(TCOR)=-1.0E+10
 VARMAX(TRES)=1.0E+10 ;VARMIN(TRES)=-1.0E+10
 VARMAX(VABS)=1.0E+10 ;VARMIN(VABS)=-1.0E+10
 VARMAX(MARK)=1.0E+10 ;VARMIN(MARK)=-1.0E+10
 VARMAX(TEM1)=1.0E+10 ;VARMIN(TEM1)=0.
 ************************************************************
  Group 19. Data transmitted to GROUND
 PARSOL = F
 ISG62 = 0
 SPEDAT(SET,STORED,TRES,C,=RESI(TEM1)!RESIDU)
 SPEDAT(SET,STORED,TCOR,C,=CORR(TEM1)!CORREC)
 SPEDAT(SET,INFOB,*!PATCH1,C,=SPHERE(1+.5*SIN(XG)&1+.5*COS(XG)&1+.$)
 SPEDAT(SET,INFOB,*!PATCH1,C,5*XG&.2&0&0&0)+SPHERE(1+.5*SIN(XG)&1+$)
 SPEDAT(SET,INFOB,*!PATCH1,C,.5*COS(XG)&4.14+.5*XG&.2&0&0&0)!INFOB$)
 SPEDAT(SET,INFOB,*!PATCH1,C,_1)
 SPEDAT(SET,INITIAL,MARK!PATCH1,C,=1.!INFOB_1)
 SPEDAT(SET,SOURCE,TEM1!PATCH1,C,=2000.!INFOB_1)
 SPEDAT(SET,SOURCE,U1!PATCH1,C,=-1000.*VABS*VOL*U1!LINE!INFOB_1)
 SPEDAT(SET,SOURCE,V1!PATCH1,C,=-1000.*VABS*VOL*V1!LINE!INFOB_1)
 SPEDAT(SET,SOURCE,W1!PATCH1,C,=-1000.*VABS*VOL*W1!LINE!INFOB_1)
 ************************************************************
  Group 20. Preliminary Printout
 DISTIL = T ;NULLPR = F
 NDST = 0
 DSTTOL =1.0E-02
 EX(P1)=0.02545 ;EX(U1)=1.398E-04
 EX(V1)=1.123E-04 ;EX(W1)=0.01006
 EX(TCOR)=0.01262 ;EX(TRES)=0.2509
 EX(VABS)=0.01006 ;EX(MARK)=0.03159
 EX(TEM1)=16.6
 ************************************************************
  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(P1,Y,Y,Y,N,Y,Y)
 OUTPUT(U1,Y,Y,Y,N,Y,Y)
 OUTPUT(V1,Y,Y,Y,N,Y,Y)
 OUTPUT(W1,Y,Y,Y,N,Y,Y)
 OUTPUT(TCOR,Y,N,Y,N,N,N)
 OUTPUT(TRES,Y,N,Y,N,N,N)
 OUTPUT(VABS,Y,N,Y,N,N,N)
 OUTPUT(MARK,Y,N,Y,N,N,N)
 OUTPUT(TEM1,Y,N,Y,Y,Y,Y)
 ************************************************************
  Group 22. Monitor Print-Out
 IXMON = 11 ;IYMON = 11 ;IZMON = 11
 NPRMON = 100 ;NPRMNT = 1 ;TSTSWP = -1
 UWATCH = T ;USTEER = T
 HIGHLO = F
 ************************************************************
  Group 23.Field Print-Out & Plot Control
 NPRINT = 100000 ;NUMCLS = 5
 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
   No PATCHes yet used for this Group
 ************************************************************
  Group 24. Dumps For Restarts
 SAVE = T ;NOWIPE = F
 NSAVE =CHAM
STOP