TALK=T;RUN(1,1)
  DISPLAY
  An In-Form (MOVOB...) statement prescribes the motion of a
  submarine in a density-stratified ocean, the latter also being
  defined by an In-Form statement.

  The submarine is represented by a rectangular so as to allow use
  of a coarse grid.
  ENDDIS
  PHOTON USE
  p
  m1


  up z; vi -1 -1 1
  gr ou x 1; gr ou y 1; gr ou z m
  con rho1 x 1 fi;.0001
  vec y 1 sh; vec z m sh; red
  surf obid x .99; surf obid y .99; surf obid z .99
  msg Velocity vectors at 1 time step
  upause 2
  p
  m2


  up z; vi -1 -1 1
  gr ou x 1; gr ou y 1; gr ou z m
  con rho1 x 1 fi;.0001
  vec y 1 sh; vec z m sh; red
  surf obid x .99; surf obid y .99; surf obid z .99
  msg Velocity vectors at 2 time step
  upause 2
  p
  m3


  up z; vi -1 -1 1
  gr ou x 1; gr ou y 1; gr ou z m
  con rho1 x 1 fi;.0001
  vec y 1 sh; vec z m sh; red
  surf obid x .99; surf obid y .99; surf obid z .99
  msg Velocity vectors at 3 time step
  upause 2
  p
  m4


  up z; vi -1 -1 1
  gr ou x 1; gr ou y 1; gr ou z m
  con rho1 x 1 fi;.0001
  vec y 1 sh; vec z m sh; red
  surf obid x .99; surf obid y .99; surf obid z .99
  msg Velocity vectors at 4 time step
  upause 2
  p
  m5


  up z; vi -1 -1 1
  gr ou x 1; gr ou y 1; gr ou z m
  con rho1 x 1 fi;.0001
  vec y 1 sh; vec z m sh; red
  surf obid x .99; surf obid y .99; surf obid z .99
  msg Velocity vectors at 5 time step
  upause 2
  p
  m6


  up z; vi -1 -1 1
  gr ou x 1; gr ou y 1; gr ou z m
  con rho1 x 1 fi;.0001
  vec y 1 sh; vec z m sh; red
  surf obid x .99; surf obid y .99; surf obid z .99
  msg Velocity vectors at 6 time step
  upause 2
  p
  m7


  up z; vi -1 -1 1
  gr ou x 1; gr ou y 1; gr ou z m
  con rho1 x 1 fi;.0001
  vec y 1 sh; vec z m sh; red
  surf obid x .99; surf obid y .99; surf obid z .99
  msg Velocity vectors at 7 time step
  upause 2
  p
  m8


  up z; vi -1 -1 1
  gr ou x 1; gr ou y 1; gr ou z m
  con rho1 x 1 fi;.0001
  vec y 1 sh; vec z m sh; red
  surf obid x .99; surf obid y .99; surf obid z .99
  msg Velocity vectors at 8 time step
  upause 2
  p
  m9


  up z; vi -1 -1 1
  gr ou x 1; gr ou y 1; gr ou z m
  con rho1 x 1 fi;.0001
  vec y 1 sh; vec z m sh; red
  surf obid x .99; surf obid y .99; surf obid z .99
  msg Velocity vectors at 9 time step
  upause 2
  p
  m10


  up z; vi -1 -1 1
  gr ou x 1; gr ou y 1; gr ou z m
  con rho1 x 1 fi;.0001
  vec y 1 sh; vec z m sh; red
  surf obid x .99; surf obid y .99; surf obid z .99
  msg Velocity vectors at 10 time step
  ENDUSE
 ************************************************************
  Group 1. Run Title and Number
 ************************************************************
 ************************************************************
 
 TEXT(MOFOR by In-Form: Underwater navigation )
 
 ************************************************************
 ************************************************************
 
 IRUNN = 1 ;LIBREF = 0
 ************************************************************
  Group 2. Time dependence
 STEADY = F
    * Set overall time and no. of steps
 TFIRST =0. ;TLAST =300.
 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 = 50
 XULAST =1000.
 XFRAC(1)=0.02 ;XFRAC(2)=0.04
 XFRAC(3)=0.06 ;XFRAC(4)=0.08
 XFRAC(5)=0.1 ;XFRAC(6)=0.12
 XFRAC(7)=0.14 ;XFRAC(8)=0.16
 XFRAC(9)=0.18 ;XFRAC(10)=0.2
 XFRAC(11)=0.22 ;XFRAC(12)=0.24
 XFRAC(13)=0.26 ;XFRAC(14)=0.28
 XFRAC(15)=0.3 ;XFRAC(16)=0.32
 XFRAC(17)=0.34 ;XFRAC(18)=0.36
 XFRAC(19)=0.38 ;XFRAC(20)=0.4
 XFRAC(21)=0.42 ;XFRAC(22)=0.44
 XFRAC(23)=0.46 ;XFRAC(24)=0.48
 XFRAC(25)=0.5 ;XFRAC(26)=0.52
 XFRAC(27)=0.54 ;XFRAC(28)=0.56
 XFRAC(29)=0.58 ;XFRAC(30)=0.6
 XFRAC(31)=0.62 ;XFRAC(32)=0.64
 XFRAC(33)=0.66 ;XFRAC(34)=0.68
 XFRAC(35)=0.7 ;XFRAC(36)=0.72
 XFRAC(37)=0.74 ;XFRAC(38)=0.76
 XFRAC(39)=0.78 ;XFRAC(40)=0.8
 XFRAC(41)=0.82 ;XFRAC(42)=0.84
 XFRAC(43)=0.86 ;XFRAC(44)=0.88
 XFRAC(45)=0.9 ;XFRAC(46)=0.92
 XFRAC(47)=0.94 ;XFRAC(48)=0.96
 XFRAC(49)=0.98 ;XFRAC(50)=1.
 ************************************************************
  Group 4. Y-Direction Grid Spacing
 NY = 10
 YVLAST =50.
 YFRAC(1)=0.031623 ;YFRAC(2)=0.089443
 YFRAC(3)=0.164317 ;YFRAC(4)=0.252982
 YFRAC(5)=0.353553 ;YFRAC(6)=0.464758
 YFRAC(7)=0.585662 ;YFRAC(8)=0.715542
 YFRAC(9)=0.853815 ;YFRAC(10)=1.
 ************************************************************
  Group 5. Z-Direction Grid Spacing
 PARAB = F
 NZ = 25
 ZWLAST =200.
 ZFRAC(1)=0.085336 ;ZFRAC(2)=0.138629
 ZFRAC(3)=0.184127 ;ZFRAC(4)=0.225203
 ZFRAC(5)=0.263276 ;ZFRAC(6)=0.299115
 ZFRAC(7)=0.333197 ;ZFRAC(8)=0.365844
 ZFRAC(9)=0.397286 ;ZFRAC(10)=0.427694
 ZFRAC(11)=0.457202 ;ZFRAC(12)=0.485914
 ZFRAC(13)=0.514085 ;ZFRAC(14)=0.542798
 ZFRAC(15)=0.572306 ;ZFRAC(16)=0.602714
 ZFRAC(17)=0.634156 ;ZFRAC(18)=0.666803
 ZFRAC(19)=0.700885 ;ZFRAC(20)=0.736724
 ZFRAC(21)=0.774796 ;ZFRAC(22)=0.815873
 ZFRAC(23)=0.861371 ;ZFRAC(24)=0.914664
 ZFRAC(25)=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(142)=TMP1 ;NAME(144)=OBOL
 NAME(145)=#FXW ;NAME(146)=#FXV
 NAME(147)=#FXU ;NAME(148)=RHO1
 NAME(149)=OBID ;NAME(150)=PRPS
    * 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,Y,N,N,Y)
 SOLUTN(V1,Y,Y,Y,N,N,Y)
 SOLUTN(W1,Y,Y,Y,N,N,Y)
 SOLUTN(TMP1,Y,N,N,N,N,Y)
 SOLUTN(OBOL,Y,N,N,N,N,Y)
 SOLUTN(#FXW,Y,N,N,N,N,Y)
 SOLUTN(#FXV,Y,N,N,N,N,Y)
 SOLUTN(#FXU,Y,N,N,N,N,Y)
 SOLUTN(RHO1,Y,N,N,N,N,Y)
 SOLUTN(OBID,Y,N,N,N,N,Y)
 SOLUTN(PRPS,Y,N,N,N,N,Y)
 DEN1 = 148
 TEMP1 = 142
 PRPS = 150
 ************************************************************
  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)
 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.189 ;TMP1 =0.
 EL1 =0.
 TSURR =0. ;TEMP0 =0.
 PRESS0 =0.
 DVO1DT =3.41E-03 ;DRH1DP =1.0E-05
 EMISS =0. ;SCATT =0.
 RADIA =0. ;RADIB =0.
 ENUL =1.792E-06 ;ENUT =1.0E-02
 PRNDTL(U1)=1. ;PRNDTL(V1)=1.
 PRNDTL(W1)=1.
 PRT(U1)=1. ;PRT(V1)=1.
 PRT(W1)=1.
 CP1 =1005. ;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(TMP1)=1.0E-10 ;FIINIT(OBOL)=1.0E-10
 FIINIT(#FXW)=1.0E-10 ;FIINIT(#FXV)=1.0E-10
 FIINIT(#FXU)=1.0E-10 ;FIINIT(RHO1)=1.0E-10
 FIINIT(OBID)=1.0E-10 ;FIINIT(PRPS)=0.
 
 PATCH(^OB7 ,INIVAL, 7, 0, 0, 0, 0, 0, 1, 1)
 INIT(^OB7 ,P1 ,0. ,0. )
 INIT(^OB7 ,PRPS,0. ,-1. )
 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(^OB1 ,WEST , 1, 0, 0, 0, 0, 0, 1, 10)
 COVAL(^OB1 ,P1 ,1. ,0. )
 COVAL(^OB1 ,U1 ,0. ,0. )
 COVAL(^OB1 ,V1 ,0. ,0. )
 COVAL(^OB1 ,W1 ,0. ,0. )
 
 PATCH(^OB3 ,EAST , 3, 0, 0, 0, 0, 0, 1, 10)
 COVAL(^OB3 ,P1 ,1. ,0. )
 COVAL(^OB3 ,U1 ,0. ,0. )
 COVAL(^OB3 ,V1 ,0. ,0. )
 COVAL(^OB3 ,W1 ,0. ,0. )
 
 PATCH(^OB4 ,NORTH , 4, 0, 0, 0, 0, 0, 1, 10)
 COVAL(^OB4 ,P1 ,1. ,0. )
 COVAL(^OB4 ,U1 ,0. ,0. )
 COVAL(^OB4 ,V1 ,0. ,0. )
 COVAL(^OB4 ,W1 ,0. ,0. )
 
 PATCH(^OB5 ,SOUTH , 5, 0, 0, 0, 0, 0, 1, 10)
 COVAL(^OB5 ,P1 ,1. ,0. )
 COVAL(^OB5 ,U1 ,0. ,0. )
 COVAL(^OB5 ,V1 ,0. ,0. )
 COVAL(^OB5 ,W1 ,0. ,0. )
 
 PATCH(^OB6 ,HIGH , 6, 0, 0, 0, 0, 0, 1, 10)
 COVAL(^OB6 ,P1 ,1. ,0. )
 COVAL(^OB6 ,U1 ,0. ,0. )
 COVAL(^OB6 ,V1 ,0. ,0. )
 COVAL(^OB6 ,W1 ,0. ,0. )
 XCYCLE = F
 EGWF = T
 WALLCO = GRND2
 ************************************************************
  Group 14. Downstream Pressure For PARAB
 ************************************************************
  Group 15. Terminate Sweeps
 LSWEEP = 60 ;ISWC1 = 1
 LITHYD = 1 ;LITFLX = 1 ;LITC = 1 ;ITHC1 = 1
 SELREF = T
 RESFAC =1.0E-03
 ************************************************************
  Group 16. Terminate Iterations
 LITER(P1)=20 ;LITER(U1)=10
 LITER(V1)=10 ;LITER(W1)=10
 ENDIT(P1)=1.0E-03 ;ENDIT(U1)=1.0E-03
 ENDIT(V1)=1.0E-03 ;ENDIT(W1)=1.0E-03
 ************************************************************
  Group 17. Relaxation
 RELAX(P1,LINRLX,0.5)
 RELAX(U1,FALSDT,1.)
 RELAX(V1,FALSDT,1.)
 RELAX(W1,FALSDT,1.)
 RELAX(TMP1,LINRLX,1.)
 RELAX(OBOL,LINRLX,1.)
 RELAX(#FXW,LINRLX,1.)
 RELAX(#FXV,LINRLX,1.)
 RELAX(#FXU,LINRLX,1.)
 RELAX(RHO1,LINRLX,1.)
 RELAX(OBID,LINRLX,1.)
 RELAX(PRPS,LINRLX,1.)
 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(TMP1)=1.0E+10 ;VARMIN(TMP1)=-1.0E+10
 VARMAX(OBOL)=1.0E+10 ;VARMIN(OBOL)=-1.0E+10
 VARMAX(#FXW)=1.0E+10 ;VARMIN(#FXW)=-1.0E+10
 VARMAX(#FXV)=1.0E+10 ;VARMIN(#FXV)=-1.0E+10
 VARMAX(#FXU)=1.0E+10 ;VARMIN(#FXU)=-1.0E+10
 VARMAX(RHO1)=1.0E+10 ;VARMIN(RHO1)=-1.0E+10
 VARMAX(OBID)=1.0E+10 ;VARMIN(OBID)=-1.0E+10
 VARMAX(PRPS)=1.0E+10 ;VARMIN(PRPS)=-1.0E+10
 ************************************************************
  Group 19. Data transmitted to GROUND
 ISG62 = 0
 SPEDAT(SET,DOMAIN,PHASE_1_MAT,I,0)
 SPEDAT(SET,MOFOR,MOFFILE,C,NOTSET)
 SPEDAT(SET,MOFOR,VELCON,C,1.E6)
 SPEDAT(SET,GXMONI,TRANSIENT,L,F)
 SPEDAT(SET,MOVOB,BLOCK,C,=POS(TIM*3.&0&0&0&0&0&0&0&0&0))
 SPEDAT(SET,STORED,OBOL,C,=OLD(OBID)!ZSLFIN)
 SPEDAT(SET,PROPERTY,RHO1,C,=1027.+0.5*(TANH((ZG-140.)/20.)+1.)*(1$)
 SPEDAT(SET,PROPERTY,RHO1,C,023.-1027.))
 SPEDAT(SET,OBJNAM,^OB1,C,WESTFREE)
 SPEDAT(SET,OBJTYP,^OB1,C,OUTLET)
 SPEDAT(SET,ARATIO,^OB1,R,1.)
 SPEDAT(SET,OBJNAM,^OB2,C,GROUND)
 SPEDAT(SET,OBJTYP,^OB2,C,PLATE)
 SPEDAT(SET,OBJNAM,^OB3,C,EASTFREE)
 SPEDAT(SET,OBJTYP,^OB3,C,OUTLET)
 SPEDAT(SET,ARATIO,^OB3,R,1.)
 SPEDAT(SET,OBJNAM,^OB4,C,NORTFREE)
 SPEDAT(SET,OBJTYP,^OB4,C,OUTLET)
 SPEDAT(SET,ARATIO,^OB4,R,1.)
 SPEDAT(SET,OBJNAM,^OB5,C,SOUTFREE)
 SPEDAT(SET,OBJTYP,^OB5,C,OUTLET)
 SPEDAT(SET,ARATIO,^OB5,R,1.)
 SPEDAT(SET,OBJNAM,^OB6,C,HIGHFREE)
 SPEDAT(SET,OBJTYP,^OB6,C,OUTLET)
 SPEDAT(SET,ARATIO,^OB6,R,1.)
 SPEDAT(SET,OBJNAM,^OB7,C,BLOCK)
 SPEDAT(SET,OBJTYP,^OB7,C,BLOCKAGE)
 SPEDAT(SET,BLOCK,MATERIAL,R,-1.)
 SPEDAT(SET,FACETDAT,NUMOBJ,I,7)
 SPEDAT(SET,MATERIAL,0,L,T)
 ************************************************************
  Group 20. Preliminary Printout
 DISTIL = T ;NULLPR = F
 NDST = 0
 DSTTOL =1.0E-02
 EX(P1)=6.683 ;EX(U1)=0.1157
 EX(V1)=5.751E-03 ;EX(W1)=9.265E-03
 EX(TMP1)=0. ;EX(OBOL)=0.01536
 EX(#FXW)=1.175E-11 ;EX(#FXV)=1.226E-11
 EX(#FXU)=0.02304 ;EX(RHO1)=1026.
 EX(OBID)=0.0128 ;EX(PRPS)=0.
 ************************************************************
  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,N,Y,Y,Y,Y)
 OUTPUT(U1,Y,N,Y,Y,Y,Y)
 OUTPUT(V1,Y,Y,Y,N,Y,Y)
 OUTPUT(W1,Y,N,Y,Y,Y,Y)
 OUTPUT(TMP1,Y,N,Y,N,N,N)
 OUTPUT(OBOL,Y,N,Y,N,N,N)
 OUTPUT(#FXW,Y,N,Y,N,N,N)
 OUTPUT(#FXV,Y,N,Y,N,N,N)
 OUTPUT(#FXU,Y,N,Y,N,N,N)
 OUTPUT(RHO1,Y,N,Y,N,N,N)
 OUTPUT(OBID,Y,N,Y,N,N,N)
 OUTPUT(PRPS,Y,N,Y,N,N,N)
 ************************************************************
  Group 22. Monitor Print-Out
 IXMON = 24 ;IYMON = 7 ;IZMON = 11
 NPRMON = 100000 ;NPRMNT = 1 ;TSTSWP = -1
 UWATCH = T ;USTEER = T
 HIGHLO = F
 ************************************************************
  Group 23.Field Print-Out & Plot Control
 NPRINT = 100000 ;NUMCLS = 5
 NTPRIN = 100000 ;ISTPRF = 1 ;ISTPRL = 10000
 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
 IDISPA = 1 ;IDISPB = 0 ;IDISPC = 0
 CSG1    ='M'
STOP