CCM Test: Propagation of a salinity through a flow of
               clean water.
  **************************************************************
  DISPLAY
   This test  case  concerns  simulation  of  the   salinity
   propagation  through  incoming  flow  of fresh water (see
   picture below). That  kind of flow  may arise in  the sea
   bays pollution simulations.
      
     <= Mixture                                    
                                                 <= Fresh
    => Salted water                                 water
      
 
   User can  investigate the influence  of the  salted water
   velocity (VSIN) and fresh water  pressure (PFRSH)  values
   on the  developing flow pattern  and the distance of salt
   propagation.
 
   User can switch from the default colocated  computational
   algorithm (CCM)  to the  staggered one  (STAG) by setting
   LCCM= F.
  ----------------------------------------------------------
  ENDDIS
L(PAUSE
  **************************************************************
BOOLEAN(LCCM); LCCM = T
  **************************************************************
  PHOTON USE
   p ; ; ; ; ;
 
   vi x
   msg Computational Domain:
   rot 90
   gr i 4
   msg Press Any Key to Continue...
   pause
   cl
   set vec av off
   msg Velocity Vectors:
   vec i 4 sh
   msg Press Any Key to Continue...
   pause
   cl
   msg Contours of Pressure:
   con p1 i 4 fi;0.001
   pause
   cl
   msg Contours of Salinity:
   con SALT i 4 fi;0.001
   msg Press E  to exit PHOTON ...
  ENDUSE
  **************************************************************
    GROUP 1. Run title and other preliminaries
IF(LCCM) THEN
+ TEXT(CCM : Salted water flow.
ELSE
+ TEXT(STAG: Salted water flow.
ENDIF
TITLE
INTEGER(NY1,NY2)
REAL(LENG1,DIAM,SALTIN,SALT0,REFDEN,ALFA,DTHYD,WIDTH,LENGTH,DEPTH)
REAL(VSIN,PFRSH)
  ** Problem definition:
SALT0= 10.; SALTIN= 50;      REFDEN= 1000.;   ALFA = 8.E-4
VSIN = 0.3; PFRSH = 200.
DIAM = 0.1; LENG1 = 5.*DIAM; LENGTH= 7.*DIAM; DEPTH= 1.75*DIAM
NY1  = 6;   NY2   = 8;       NY    = NY1+NY2
NZ   = 10;  WIDTH = 2.*DIAM; NX    = 6
    GROUP 2. Transience; time-step specification
STEADY= F; GRDPWR(T,30,9.0,1.0)
    GROUP 6. Body-fitted coordinates or grid distortion
BFC= T; GSET(D,NX,NY,NZ,WIDTH,LENGTH,DIAM)
GSET(P,P1,0.0,  0.0, 0.0);  GSET(P,P2,0.0,LENG1, 0.0)
GSET(P,P3,0.0,LENG1,DIAM);  GSET(P,P4,0.0,  0.0,DIAM)
GSET(L,L12,P1,P2,NY1,1.0);  GSET(L,L23,P2,P3,NZ,S1.5)
GSET(L,L34,P3,P4,NY1,1.0);  GSET(L,L41,P4,P1,NZ,S1.5)
GSET(F,F1,P1,-,P2,-,P3,-,P4,-); GSET(M,F1,+J+K,1,1,1)
GSET(C,I:NX+1:,F,I1,1,NY,1,NZ,+,WIDTH,0.0,0.0,INC,1.0)
GSET(P,P5,  0.0,LENGTH, 0.0); GSET(P,P6,   WIDTH,LENGTH,  0.0)
GSET(P,P7,WIDTH,LENGTH,DIAM); GSET(P,P8,WIDTH/2.,LENGTH,DEPTH)
GSET(P,P9,  0.0,LENGTH,DIAM)
GSET(L,L56,P5,P6,  NX, 1.0); GSET(L,L67,P6,P7,  NZ,S1.5)
GSET(L,L78,P7,P8,NX/2, 1.0); GSET(L,L89,P8,P9,NX/2, 1.0)
GSET(L,L95,P9,P5,  NZ,S1.5)
GSET(F,F2,P5,-,P6,-,P7,P8,P9,-); GSET(M,F2,+I+K,1,NY+1,1)
GSET(T,J:NY1+1:,F,J:NY+1:,1.5)
    GROUP 7. Variables stored, solved & named
NAME(H1)= SALT; SOLVE(P1,U1,V1,W1,SALT)
SOLUTN(P1,Y,Y,Y,N,N,N); SOLUTN(SALT,Y,Y,Y,P,P,P)
IF(LCCM) THEN
L($F150)
ENDIF
    GROUP 8. Terms (in differential equations) & devices
TERMS(SALT,N,Y,Y,P,P,P)
    GROUP 9. Properties of the medium (or media)
ENUL= 1.E-5;  RHO1= LINSCAL;  RHO1A= REFDEN; RHO1B= ALFA*REFDEN
PRNDTL(SALT)= 1000.
    GROUP 11. Initialization of variable or porosity fields
INIADD= F;  FIINIT(SALT)= SALT0
    GROUP 13. Boundary conditions and special sources
    ** North Boundary:
PATCH( NORR,NORTH,1,NX,NY,NY,     1,NZ/2,1,LSTEP)
 COVAL(NORR, P1,10.*FIXP,0.0); COVAL(NORR,SALT,ONLYMS,SAME)
PATCH(NORRL,NORTH,1,NX,NY,NY,NZ/2+1,  NZ,1,LSTEP)
 COVAL(NORRL,P1,1.E-20,1.E20*REFDEN*VSIN)
 COVAL(NORRL,SALT,ONLYMS,SALTIN)
    ** South Boundary:
PATCH(SYD,SOUTH,1,NX,1,1,1,NZ,1,LSTEP)
 COVAL(SYD,P1,1000.,PFRSH); COVAL(SYD,SALT,ONLYMS,SALT0)
    ** Bottom Friction:
PATCH(BOTFRI,HWALL,1,NX,1,NY,NZ,NZ,1,LSTEP)
IF(LCCM) THEN
+ COVAL(  NORR,UC1,ONLYMS,SAME); COVAL(  NORR,VC1,ONLYMS,SAME)
+ COVAL(  NORR,WC1,ONLYMS,SAME)
+ COVAL( NORRL,UC1,ONLYMS,SAME); COVAL( NORRL,VC1,ONLYMS,SAME)
+ COVAL( NORRL,WC1,ONLYMS,SAME)
+ COVAL(   SYD,UC1,ONLYMS,SAME); COVAL(   SYD,VC1,ONLYMS,SAME)
+ COVAL(   SYD,WC1,ONLYMS,SAME)
+ COVAL(BOTFRI,UC1,   1.0,0.0); COVAL(BOTFRI,VC1,   1.0,0.0)
+ COVAL(BOTFRI,WC1,   1.0,0.0)
ELSE
+ COVAL(  NORR,U1,ONLYMS,SAME); COVAL(  NORR,V1,ONLYMS,SAME)
+ COVAL(  NORR,W1,ONLYMS,SAME)
+ COVAL( NORRL,U1,ONLYMS,SAME); COVAL( NORRL,V1,ONLYMS,SAME)
+ COVAL( NORRL,W1,ONLYMS,SAME)
+ COVAL(   SYD,U1,ONLYMS,SAME); COVAL(   SYD,V1,ONLYMS,SAME)
+ COVAL(   SYD,W1,ONLYMS,SAME)
+ COVAL(BOTFRI,U1,   1.0,0.0);  COVAL(BOTFRI,V1,   1.0, 0.0)
ENDIF
    ** Buoyancy forces:
BUOYC= 9.81
IF(LCCM) THEN
+ BUOYE= REFDEN*(1.+ALFA*SALT0)
ELSE
+ BUOYD= REFDEN*(1.+ALFA*SALT0)
+ PATCH(BUOY,PHASEM,1,NX,1,NY,1,NZ,1,LSTEP)
+  COVAL(BUOY,W1,FIXFLU,DENSDIFF)
ENDIF
    GROUP 15. Termination of sweeps
LSWEEP= 40; TSTSWP= -1
    GROUP 16. Termination of iterations
SELREF= T;   RESFAC= 1.E-6
    GROUP 17. Under-relaxation devices
RELAX(P1,LINRLX,0.5);    DTHYD= (LENGTH-LENG1)/NY2
RELAX(UC1,FALSDT,DTHYD); RELAX( VC1,FALSDT,DTHYD)
RELAX(WC1,FALSDT,DTHYD); RELAX(SALT,FALSDT,DTHYD)
SPEDAT(SET,GXMONI,TRANSIENT,L,F)
    GROUP 19. Data communicated by satellite to GROUND
IF(LCCM) THEN
    * LSG4= T activates nonorthogonality treatment in CCM
    * LSG7= T permits CCM-solver to use higher order schemes.
+ LSG4= T;  LSG7= F
+ LITER(UC1)= 5; LITER(VC1)= 5; LITER(WC1)= 5
  SCHMBEGIN
      VARNAM VC1  SCHEME MINMOD
      VARNAM WC1  SCHEME MINMOD
      VARNAM SALT SCHEME MINMOD
  SCHMEND
ENDIF
    GROUP 22. Spot-value print-out
IXMON = NX/2+1; IYMON=NY/2+1; IZMON=NZ/2+1