DISPLAY
  
  This In-Form case illustrates how to create a pyramid
  by use of the BOX function.

  '(INFOB' statement zeroise porosity in cells
  inside In-Form object by means 'POROS' special flag. 

  The keywords INFOB and STORED are used.
  
  The Q1 contains PHOTON USE commands
  ENDDIS  
  PHOTON USE
  p



  up z
  vi 1 1 1
  gr ou x m;gr ou y m;gr ou z m
  rot ax z ang 30
  surf MARK z .99 col 4
  surf MARK y .99 col 6
  surf MARK x .99 col 8
  msg mark contours
  msg Press  to continue
  pause
  surf cl;red
  surf vpor x .99 col 4
  surf vpor y .99 col 6
  surf vpor z .99 col 8
  msg vpor contours
  msg Press  to continue
  pause
  surf cl
  up z; vi x
  con mark x 20 y 1 20 z 1 40 fi;.0001
  con vpor x 20 y 21 40 z 1 40 fi;.0001
  gr x 20
  msg compare mark and vpor contours
  msg mark at the left and vpor at the right
  ENDUSE
    GROUP 1. Run title and other preliminaries
TEXT( In-Form makes pyramid: 3D
    GROUP 3. X-direction grid specification
GRDPWR(X,40,20.,1.0)
    GROUP 4. Y-direction grid specification
GRDPWR(Y,40,20.,1.0)
    GROUP 5. Z-direction grid specification
GRDPWR(Z,40,20.,1.0)
    GROUP 7. Variables stored, solved & named
STORE(MARK)
STORE(VPOR,EPOR,NPOR,HPOR)
    GROUP 11. Initialization of variable or porosity fields
FIINIT(MARK)=1.
FIINIT(VPOR)=1.;FIINIT(EPOR)=1.;FIINIT(NPOR)=1.;FIINIT(HPOR)=1.
    GROUP 13. Boundary conditions and special sources
  INFORM13BEGIN
REAL(PI);PI=3.1415927
  
PATCH(PATCH1,CELL,1,NX,1,NY,1,NZ,1,LSTEP) ! patch1 occupies whole domain
  The pyramid is made in four parts, differing from each other in rotation about
   z-axis by 90 degrees i.e. PI/2.
  The xsize, ysize and zsize vary with ZG
  Part 1, zangle 0
(INFOB at PATCH1 is BOX(10,10,0,.5*(-ZG+20),.5*(-ZG+20),$
16*(-ZG+20.),0,0,0) with INFOB_1!poros)
  Part 2, zangle PI/2
(INFOB at PATCH1 is BOX(10,10,0,.5*(-ZG+20),.5*(-ZG+20),$
16*(-ZG+20.),0,0,.5*PI) with INFOB_1!poros)
  Part 3, zangle PI
(INFOB at PATCH1 is BOX(10,10,0,.5*(-ZG+20),.5*(-ZG+20),$
16*(-ZG+20.),0,0,PI) with INFOB_1!poros)
  Part 4, zangle 3*PI/2
(INFOB at PATCH1 is BOX(10,10,0,.5*(-ZG+20),.5*(-ZG+20),$
16*(-ZG+20.),0,0,1.5*PI) with INFOB_1!poros)

  *** Setting of MARK values into object

(STORED of MARK at PATCH1 is 0.0 with INFOB_1)
  INFORM13END
    GROUP 15. Termination of sweeps
LSWEEP=1
LIBREF=769
DISTIL=T; EX(MARK)=6.663E-01; EX(VPOR)=6.667E-01
EX(HPOR)=6.750E-01;EX(NPOR)=6.667E-01;EX(EPOR)=6.667E-01
STOP