MB-FGE Test: Potential flow around a 2D airfoil.
  **************************************************************
  DISPLAY
   This case concerns potential flow around a 2D aerofoil.
 
   A single domain grid is used, and it is joined to  itself
   by means of a  non-natural link. The link  is non-natural
   in the sense  that it is  SOUTH-SOUTH rather than  SOUTH-
   NORTH. These links are supported only for  the
   solution of  scalar variables.  The link  is set manually
   using PATCH commands rather than MBLINK PIL-command.
 
   Q1-file contains Photon Use information.
   ---------------------------------------------------------
  ENDDIS
L(PAUSE
  **************************************************************
   PHOTON USE
   p ; ; ; ; ;
 
   set vec av off
   g k 1
   msg This is the grid.  Press Return to continue
   pause
   con pot k 1 fi;0.001
   msg This is the potential field. Press Return to continue
   pause
   vec k 1 sh
   msg This is the velocity field.
   ENDUSE
    GROUP 1. Run title and other preliminaries
TEXT(MB-FGE: 2D Potential flow over airfoil.
TITLE
REAL(DEL); INTEGER(NX1,NX2,NX3,IC)
  ** Problem definition:
DEL= 0.2;    NX1= 5;   NX2= 15;  NX3= 3
NX = 2*(NX1+NX2+NX3);  NY = 10;  NZ = 1
    GROUP 6. Body-fitted coordinates or grid distortion
BFC= T; GSET(D,NX,NY,NZ,DEL,DEL,DEL)
GSET(P,P1,1.0+DEL,0.0,0.0); GSET(P,P2,1.0+DEL,DEL,0.0)
GSET(P,P3,   -DEL,DEL,0.0); GSET(P,P4,   -DEL,0.0,0.0)
GSET(P,P5,    0.0,0.0,0.0); GSET(P,P6,    1.0,0.0,0.0)
GSET(L,L12,P1,P2,NY,  1.0); GSET(L,L23,P2,P3,NX2+NX3,-1.2)
GSET(L,L34,P3,P4,NX1, 1.0); GSET(L,L45,P4,P5,NY,      1.0)
GSET(L,L16,P1,P6,NX3, 1.0)
  ** Set the profile shape.
GSET(V,CV1,S,P5)
GSET(V,0.025, 0.02453,0.0);  GSET(V,0.05,0.03267,0.0)
GSET(V,0.1,   0.0424, 0.0);  GSET(V,0.2, 0.05293,0.0)
GSET(V,0.3,   0.05827,0.0);  GSET(V,0.4, 0.06,   0.0)
GSET(V,0.5,   0.05827,0.0);  GSET(V,0.6, 0.0532, 0.0)
GSET(V,0.7,   0.0448, 0.0);  GSET(V,0.8, 0.0332, 0.0)
GSET(V,0.9,   0.01867,0.0);  GSET(V,0.95,0.01027,0.0)
GSET(V,CV1,E,P6)
GSET(L,L56,P5,P6,NX1+NX2,1.8CRVCV1)
GSET(F,F1,P1,-,P2,P3,P4,-,P5,P6)
GSET(M,F1,+J+I,1,1,1,LAP5.TFFFFF)
DO II=NX1+NX2+NX3+2,NX+1
DO JJ=1,NY+1
+ IC = NX1+NX2+NX3+1-(II-NX1-NX2-NX3-1)
+ XC(II,JJ,1) =  XC(IC,JJ,1)
+ YC(II,JJ,1) = -YC(IC,JJ,1)
+ ZC(II,JJ,1) = 0.0
ENDDO
ENDDO
GSET(C,K:NZ+1:,F,K1,1,NX,1,NY,+,0.0,0.0,0.1,INC,1.0)
DUMPC(MBGR1)
  ** Assemble blocks:
NUMBLK= 1;  READCO(MBGR+)
GVIEW(Z); VIEW
  ** Set links manually, as they are not natural
MPATCH(1,MBL1.1,SOUTH,       1,NX3,1,1,1,NZ,1,LSTEP)
MPATCH(1,MBL1-1,SOUTH,NX-NX3+1, NX,1,1,1,NZ,1,LSTEP)
    GROUP 7. Variables stored, solved & named
STORE(U1,V1,POT,VPOR); SOLUTN(POT,Y,Y,Y,N,N,N)
    GROUP 8. Terms in differential equations & devices
TERMS(POT,N,N,Y,N,Y,N)
    GROUP 13. Boundary conditions and special sources
   **Upstream boundary
MPATCH(1,UPSTRM,SOUTH,NX2+NX3+1,2*NX1+NX2+NX3,NY,NY,1,NZ,1,LSTEP)
COVAL(UPSTRM,POT,FIXVAL,-10.0)
   **Downstream boundary
MPATCH(1,DWNSTR1,WEST,1, 1, 1,NY,1,NZ,1,LSTEP)
COVAL(DWNSTR1,POT,FIXVAL,0.0)
MPATCH(1,DWNSTR2,EAST,NX,NX,1,NY,1,NZ,1,LSTEP)
COVAL(DWNSTR2,POT,FIXVAL,0.0)
    GROUP 15. Termination of sweeps
LSWEEP= 50; TSTSWP= -1
    GROUP 16. Termination of iterations
RESREF(POT)= 1.E-8; LITER(POT) = 40
    GROUP 17. Under-relaxation devices
RELAX(POT,LINRLX,0.25)
    GROUP 19. Data communicated by satellite to GROUND
    * LSG3 = T, activates curvilinearity treatment;
    * LSG4 = T, activates nonorthogonality treatment.
CSG3= LCRU;  LSG3= T;  LSG4= T
    GROUP 21. Print-out of variables
OUTPUT(POT,Y,N,N,Y,Y,Y)
    GROUP 22. Spot-value print-out
IXMON= NX1/2+1; IYMON= NY/2+1; IZMON= 1