CHAR(CNT,CT1,CT2,CT3)
INTEGER(IT1,IT2,ll)
REAL(RT1,RT2)
qcom(  ****************************************************
qcom(
qcom(  SPELL-OUT, the Q1-to-plain-English interpreter,
qcom(  analyses the settings which have been made, reports 
qcom(  its findings to the VDU screen, and 
qcom(  also appends them to the COPYQ1 file.
qcom(
qcom(  ****************************************************
qcom(
qcom(     ***  Summary of main problem-defining data ***
qcom(
  qcom(  ****************************************************
qcom(
qcom(  The title is  :TITLE:
  qcom(  ****************************************************
qcom(

IF(PARAB) THEN
+  qcom(
+  qcom(  This is a parabolic run
+  IF(IPARAB.EQ.0) THEN
+    qcom(
+    qcom(  The pressure is fixed by the confinement of the flow
+  ENDIF
+  qcom(  The number of iterations at each z-step is :lithyd:
ELSE
+  qcom(  This is an elliptic run with STEADY = :STEADY:
+  qcom(  The number of sweeps through the domain is :lsweep:
+  IF(.NOT.STEADY) THEN
+    qcom(  The time span is :tlast:, with LSTEP = :lstep:
+  ENDIF
ENDIF
  qcom(  ****************************************************
qcom(

IF(ONEPHS) THEN
 qcom(  This is a single-phase run
ELSE
 qcom(  This is a two-phase run
ENDIF

  qcom(  ****************************************************
qcom(
IF(BFC) THEN
+  qcom(
+  qcom(  The grid is body-fitted
ELSE
+  IF(CARTES) THEN
+    qcom(
+    qcom(  The grid is cartesian
+  ELSE
+    qcom(  The grid is cylindrical-polar
+  ENDIF
ENDIF

  qcom(  ****************************************************
qcom(
qcom(
qcom(  The geometrical size of the domain is...
qcom(  x-direction dimension = :xulast:, NX = :nx:, NREGX = :nregx:
qcom(  y-direction dimension = :yvlast:, NY = :ny:, NREGY = :nregy:
qcom(  z-direction dimension = :zwlast:, NZ = :nz:, NREGZ = :nregz:
 
  qcom(  ****************************************************
qcom(
INTEGER(NUMOBJ)
RSET(G,N,NUMOBJ)
qcom(
qcom(  The number of objects is :numobj:
qcom(

  qcom(  ****************************************************
qcom(
qcom(
qcom(  Allowable number of     variables is NPHI, namely :NPHI:
qcom(  The names and index numbers of the solved-for
qcom(  dependent variables are:-
  SOLVED

DO II=1,NPHI
+  IF(:ISLN(ii)/3*3:.EQ.:ISLN(ii): ) THEN
  qcom(  ****************************************************
qcom(
+    qcom(   variable :name(ii): with index :ii: has the settings:
+    qcom(
+    IF(:FIINIT(ii):.EQ.-10220) THEN
+      qcom(  initial values wiii be obtained from a restart file
+    ELSE
+      qcom(  whole-field initial value          = :fiinit(ii):
+    ENDIF
+    IF(ii.GT.2) then
+      qcom(  laminar Prandtl number             = :prndtl(ii):
+    ENDIF
+    IF(ii.GT.2.AND.ENUT.NE.0.0) THEN
+      qcom(  turbulent Prandtl number           = :prt(ii):
+    ENDIF
+    qcom(  iteration number in solver         = :liter(ii):
+    IF(:ENDIT(ii):.LT.0) THEN
+    qcom(  over-relaxation factor in solver   = :-endit(ii):
+    ENDIF
+    IF(:DTFALS(ii):.GT.0) THEN
+    qcom(  false-time-step relaxation factor  = :dtfals(ii):
+    ELSE
+    qcom(  linear relaxation factor           = :-dtfals(ii):
+    ENDIF
+    IF(.NOT.SELREF) THEN
+      qcom(  residual for solution cut-off      = :resref(ii):
+    ENDIF
+    IF(:ISLN(ii)/5*5:.EQ.:ISLN(ii):) THEN
+      qcom(                whole-field solver is activated
+    ELSE
+      qcom(                whole-field solver is NOT activated
+    ENDIF
+    IF(NAME(ii).EQ.BLOK) THEN
+      qcom(  block-correction feature is active
+    ENDIF
+  ENDIF
enddo


  qcom(  ****************************************************
qcom(
qcom(
qcom(  The variables stored but not solved are:-
qcom(
DO II=1,NPHI
+  IF(ISLN(II).EQ.2) THEN
  qcom(  ****************************************************
qcom(
+    CT2=fiinit(:ii:) = :fiinit(ii):
+    CT1='index = :ii:',5,':name(ii):',20,':ct2:',30
+    qcom(  :CT1:
+  ENDIF
ENDDO

 
GTPARG(CHSO,N,CT1,IT1,CT2,IT2)
+  qcom(
+  qcom(  For CHSO patch, parameters are :ct1:, :it1:, :ct2:, :it2:

 qcom(  ****************************************************
 qcom(  Material property information....
   Note that information should also be supplied about tmp1, cp1, 
                                                       len1, etc
   qcom(  ****************************************************
   qcom(
  first-phase density
if(rho1.gt.0) then
 qcom(  1st-phase fluid density RHO1 is a constant equal to :RHO1:
endif
IF(RHO1.EQ.GRND1) THEN
+  qcom(  phase-1 density = :rho1a: + :rho1b: * enthalpy)
ENDIF
IF(RHO1.EQ.GRND2) THEN
+  qcom(  phase-1 density = 1.0 / (:rho1a: + :rho1b: * enthalpy)
ENDIF
IF(RHO1.EQ.GRND3) THEN
+  qcom(  phase-1 density = :rho1a:*(p1+:press0:)**:rho1b:+:rho1c:
ENDIF
IF(RHO1.EQ.GRND4) THEN
+  qcom(  phase-1 density = :rho1a: + :rho1b: * temperature
ENDIF
IF(RHO1.EQ.GRND5) THEN
+  qcom(  phase-1 density = :rho1b:*(p1+:press0:)/temperature
ENDIF
IF(RHO1.EQ.GRND6) THEN
+  qcom(  phase-1 density = (p1+:press0:)*(molecular weight)/T1
ENDIF
IF(RHO1.EQ.GRND) THEN
+  qcom(  phase-1 density is computed from user's GROUND coding
ENDIF
IF(RHO2.EQ.GRND2) THEN
+  qcom(  phase-2 density = 1.0 / (:rho2a: + :rho2b: * enthalpy)
ENDIF
  qcom(  ****************************************************
 qcom(  Reference-viscosity information
   qcom(  ****************************************************
   qcom(
IF(ENUL.Ge.0) then
 qcom(  the reference laminar viscosity ENUL is equal to :ENUL:
ENDIF
IF(ENUL.Eq.grnd1) then
 qcom(  reference laminar viscosity = :enula: + :enulb: * T1
ENDIF
IF(ENUL.Eq.grnd2) then
 qcom(  ref. laminar viscosity = :enula:+:enulb:*T1+enulc:*T1**2
ENDIF
IF(ENUL.Eq.grnd3) then
 qcom(  ref. laminar viscosity = :enula:+:enulb:*T1**:enulc:
ENDIF
IF(ENUL.Eq.grnd4) then
 qcom(  ref. laminar viscosity = :enula: * (strain rate)**2
 qcom(                                   * (:enulb:-1.0)/2.0
ENDIF
IF(ENUL.Eq.grnd) then
 qcom(  laminar viscosity is computed from user's GROUND coding
ENDIF
IF(EL1.EQ.GRND3) THEN
+qcom(  the length scale varies linearly with longitudinal distance
+  qcom(  l = :el1a: + :el1b: * z
ENDIF
+  qcom(
   qcom(  ****************************************************
 qcom(  Turbulent-viscosity information
   qcom(  ****************************************************
   qcom(
IF(ENUT.GT.0.0) THEN
+  qcom(  Turbulent effective viscosity = :enut:
ENDIF
IF(ENUT.EQ.GRND1) THEN
+  qcom(  Turbulent effective viscosity = :enuta: + :enutb: * len1
ENDIF
IF(ENUT.EQ.GRND2) THEN
+  qcom(  ENUT for the mixing-length turbulence model
+  qcom(  Turbulent effective viscosity = len1 **2 * abs(dwdy)
ENDIF
IF(ENUT.EQ.GRND3) THEN
+  qcom(  Prandtl-Kolmogoroff formula:
+  qcom(  Turbulent effective viscosity = CMU * len1 * KE ** 0.5
ENDIF
IF(ENUT.EQ.GRND4) THEN
+  qcom(  ENUT for the two-fluid model of turbulence
+  qcom(  Viscosity = :enuta: * LEN1 * ABS(average(V1-V2))*R1*R2
ENDIF
IF(ENUT.EQ.GRND5) THEN
+  qcom(  Turbulent effective viscosity = CMU * KE**1.5 / EP
ENDIF
IF(ENUT.EQ.GRND6) THEN
+  qcom(  Turbulent effective viscosity = CMU * (KE/VOSQ) ** 0.5
ENDIF
IF(ENUT.EQ.GRND7) THEN
+  qcom(  Turbulent effective viscosity = CMU * KE**0.5 / OMEGA
ENDIF

 
IF(.NOT.ONEPHS) THEN
  qcom(  ****************************************************
 qcom(  Two-phase information
 qcom(  ****************************************************
 qcom(
+  IF(CFIPS.LT.0.0) THEN
+    qcom(
+    qcom(   CFIPS= :CFIPS:
+    qcom(   CFIPA= :CFIPA:; CFIPB= :CFIPB:; CFIPC= :CFIPC:; $
+    CFIPD=:CFIPD:
+    qcom(
+    IF(CFIPS.EQ.GRND4) THEN
+      qcom(   CFIPS=GRND4 selects FIP=CFIPC*M1*R2*
+      qcom(     (( max(relspeed,CFIPA) )**CFIPB) * ( EL1**CFIPD )
+    ENDIF
+    IF(CFIPS.EQ.GRND5) THEN
+      qcom(    CFIPS=GRND5 selects FIP=CFIPC*M2*R1*
+      qcom(     (( max(relspeed,CFIPA) )**CFIPB) * ( EL1**CFIPD )
+    ENDIF
+    IF(CFIPS.EQ.GRND4.OR.CFIPS.EQ.GRND5) THEN
+      qcom(   where M2 is the phase-2 mass in the cell,
+      qcom(         R1 is the phase-1 volume fraction.
+    ENDIF
+  ENDIF
ENDIF
  qcom(  ****************************************************
 qcom(  SOLVER PARAMETERS..
  qcom(  ****************************************************
 qcom(
 IF(:CSG3:.EQ.CNGR) THEN
+ qcom(  conjugate gradient solver is in use
 ELSE
+ IF(:CSG3:.EQ.GAUSS) THEN
+  qcom(  GAUSS-SEIDEL SOLVER IS IN USE
+ ELSE
+  qcom(  Stone-type solver is in use
+  qcom(                      isolbk = :isolbk:
+  qcom(                      isolx  = :isolx:
+  qcom(                      isoly  = :isoly:
+  qcom(                      isolz  = :isolz:
+  qcom(                      ovrrlx = :ovrrlx:
+  qcom(                      usolve = :usolve:
+ ENDIF
 ENDIF
 qcom(
  qcom(  ****************************************************
 qcom(  special features..
  qcom(  ****************************************************
 qcom(
 qcom(                      stra   = :stra:
 qcom(                      selref = :selref:
 qcom(                      resfac = :resfac:
 qcom(                      expert = :expert:
 qcom(                      readq1 = :readq1:
 qcom(                      debug  = :debug :

  information about patches
qcom(
qcom(  Patch information now follows .....
  qcom(  ****************************************************
IF(NUMPAT.GT.0) THEN
 DO II=1,NUMPAT
 qcom(
  qcom(  ****************************************************
 qcom(
 CT1=:NAMPAT(ii):
 qcom(  PATCH NAME = :CT1:
 CASE BUOY OF
 WHEN :CT1:,4
 qcom(  BUOYA,B,C,D = :buoya:, :BUOYB:, :buoyc:, :buoyd:
 ENDCASE
 GTPARG(:CT1:,N,CT2,IT1,CT3,IT2)
IF(XXX:CT3:.EQ.XXX) THEN
  qcom(  Name =  :CT1:
ELSE
  qcom(  Name =  :CT1:     type =   :CT3:
ENDIF
GTPARG(:CT1:,X,CT3,IT1,CT2,IT2)
qcom(  IX limits --- from :CT3::IT1: to :CT2::IT2:
GTPARG(:CT1:,Y,CT3,IT1,CT2,IT2)
qcom(  IY limits --- from :CT3::IT1: to :CT2::IT2:
GTPARG(:CT1:,Z,CT3,IT1,CT2,IT2)
qcom(  IZ limits --- from :CT3::IT1: to :CT2::IT2:
IF(.NOT.STEADY) THEN
  GTPARG(:CT1:,T,CT3,IT1,CT2,IT2)
  qcom(  IT limits --- from :CT3::IT1: to :CT2::IT2:
ENDIF
qcom(

DO JJ=1,NPHI
 GETCOV(:CT1:,JJ,RT1,RT2)
 IF(RT1.NE.-999.) THEN
 qcom(  For variable :NAME(JJ):, co & val are :RT1: & :RT2:
 ENDIF
ENDDO
enddo
ENDIF
IF(DEBUG) THEN
 qcom(
 qcom(  ****************************************************
 qcom(  debug information
  qcom(  ****************************************************
+  qcom(  debug has been activated
+  qcom(  flag=:flag:
+  qcom(  dbrho=:dbrho:
+  qcom(  dbrm=:dbemu:
+  qcom(  dbgam=:dbgam:
+  qcom(  dbt=:dbt:
ENDIF

NOCOMM=F; NODEF=F
NOCOPY=F