///////////////////////////////////////////////////////////////////////////////
// @(#) $Id$
///////////////////////////////////////////////////////////////////////////////
//
// Translation Table for data-driven phase of CFX 5.4MUL Solver Setup
//
// Purpose
// -------
//
//    This data file can be used to drive of the mapping of selected
//    CCL data structures into Solver data structures, so as to avoid
//    the need for hard-coded setup routines forv the bulk of the data.
//
// Reference
// ---------
//
//    Document CCL.CCL_TO_FLOW.DESIGN.5.4
//
// History
// -------
//
//    7 Jul 1999  BAS  First CVS version.
//
// Organization
// ------------
//
//    All "data area sections" are now sorted alphabetically from left to right
//    to ease maintenance/bug fixing and extensions of new models.
//    This sorting will be enforced before preprocessing during nightly builds,
//    or when using the enviroment variable.
//
///////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////
//  Pre-processor directives.
///////////////////////////////////////////////////////////////////////////////

//
// The only preprocessing statement allowed is #define.
//
// Pre-processing includes making sure that continuations
// are inserted into statements that are too long for cclsetup,
// we can be relaxed about line lengths in the TT source file.
//

// --- CCLSETUP controls

// __lprune__ 0 to save spent directories
// __lprune__ 1 to delete spent directories


// __cclsetup_debug__ 0 to turn off mms listings of before/after cclsetup
// __cclsetup_debug__ >0 to turn on mms listings of before/after cclsetup


// __solverdebug__ 0 to turn off mms listing after solver read
// __solverdebug__ >1 to turn on mms listing after solver read
// __solverdebug__ 100 to stop solver after solver read


// __solver_charr_strlen__ =0 for string array output as NAMLST structures
// __solver_charr_strlen__ >0 for string array output as CHAR*(MXDNAM) arrays
// __solver_charr_strlen__ <0 for string array output as LEN + CHAR*(LEN) arrays






//
// --- PATHNAMES
//
// Full pathnames are de-referenced into string values
// when used in some TT statements (CASE,IS,FOR).
//
// A full pathname is one that starts with a '/', 
// and this includes path names starting with {SourceDir}.
//
// For CASE and IS, the value becomes '*DIR*', or '*NONE*',
// if the pathname points at a directory, or at a non-existent object.
//
// For FOR, the pathname is converted into a string list
// if it points at an MMS string array; it is converted into
// an empty list if it points at a non-existant object.
//
// ... .PROLOGUE data


// ... DOMAIN data










// ... DOMAIN INTERFACE data





// ... RIGID BODY data


// --- BC data

// Full path from MASS AND MOMENTUM object
// to single-phase (or shared) FLOW DIRECTION/OPTION



// Full path from MASS AND MOMENTUM object fluid loop
// to fluid-specific FLOW DIRECTION/OPTION


//
// --- PHYSICS CONSTANTS
//









///////////////////////////////////////////////////////////////////////////////
//  Preliminary Definitions
///////////////////////////////////////////////////////////////////////////////

DEFINE TTVARS:

  // The OBJVARPAIRS list automatically associates a TT variable
  // with a named CCL Object while that object is being processed.
  // Note that, here, the CCL Object Type should not contain spaces.

  // .......... CCL Object Type .... TT Variable .................
  OBJVARPAIRS = ADDITIONALVARIABLE,AddVar, \
                BOUNDARY,Bcp, \
                COMPONENT,Component, \
                COORDINATEFRAME,Coord, \
                DOMAIN,Zone, \
                DOMAININTERFACE,Zif, \
                FLUID,Fluid, \
                FLUIDDEFINITION,Fluid, \
                FLUIDPAIR,FluidPair, \
                FUNCTION,Function, \
                MATERIAL,Material, \
                POLYDISPERSEDFLUID,PolydispersedFluid, \
                PARTICLEDEFINITION,Particle, \
                REACTION,Reaction, \
                RIGIDBODY,RigidBody, \
                SIZEGROUP,SizeGroup, \
                SOLID,Solid, \
                SOLIDDEFINITION,Solid, \
                SUBDOMAIN,Volpat, \
                USERROUTINE,UserRoutine, \
                USERSURFACE,UserSurface, \
                VARIABLE,Var, \
                VARIABLEOPERATOR,Oper, \
                HYBRIDORDEROPTION,HybOpt
END

///////////////////////////////////////////////////////////////////////////////
//  Translation Data Areas
///////////////////////////////////////////////////////////////////////////////

DATA AREA:  .PROLOGUE
  SOURCEDIR = /
END

DATA AREA:  PART
  LOCALVARS = Zone,{SourceDir[3]}
  SOURCEDIR = /EXECUTION_CONTROL/PARTITION_CONTROL/ZN*
  TARGETDIR = /FLOW/PARTITION_CONTROL/{Zone}
END

DATA AREA:  SCRIPTS
  SOURCEDIR = /EXECUTION_CONTROL
  TARGETDIR = /SCRIPTS
END

DATA AREA:  LIBRARY
  SOURCEDIR = /LIB
  LOCALVARS = EquationList,/LIB/EQUATIONS/CEQN, \
              CoordFrameList,/LIB/FRAMES/CCOORD
  TARGETDIR = /FLOW/PHYSICS/MODELS
END

DATA AREA:  LIBRARY
  SOURCEDIR = /LIB/CEL
  TARGETDIR = /FLOW/CEL
END

DATA AREA:  FLOW
  SOURCEDIR = /FLOW
END

DATA AREA:  DOMAIN
  SOURCEDIR = /FLOW/ZN*
  LOCALVARS =  Zone,{SourceDir[2]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/CFL, \
               CurrentSolidList,/FLOW/{SourceDir[2]}/CSL
  TARGETDIR = /FLOW/PHYSICS/{Zone}
END

DATA AREA:  DI // DOMAIN INTERFACE
  SOURCEDIR = /FLOW/ZIF*
  LOCALVARS =  Zif,{SourceDir[2]}
  TARGETDIR = /FLOW/PHYSICS/{Zif}
END

DATA AREA:  DM // DOMAIN MODELS
  SOURCEDIR = /FLOW/ZN*/DOMAIN_MODELS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/CFL, \
               CurrentSolidList,/FLOW/{SourceDir[2]}/CSL
  TARGETDIR = /FLOW/PHYSICS/{Zone}
END

DATA AREA:  FM // FLUID MODELS (FOR FLUID)
  SOURCEDIR = /FLOW/ZN*/FLUID_MODELS/FL*
  LOCALVARS =  Zone,{SourceDir[2]}, \
               CurrentFluidList,{SourceDir[4]}
  TARGETDIR = /FLOW/PHYSICS/{Zone}/{Fluid}
END

DATA AREA:  FM // FLUID MODELS (FOR PARTICLES)
  SOURCEDIR = /FLOW/ZN*/FLUID_MODELS/PT*
  LOCALVARS =  Zone,{SourceDir[2]}, \
               CurrentFluidList,{SourceDir[4]}
  TARGETDIR = /PARTICLE/PHYSICS/{Zone}/{Fluid}
END

DATA AREA:  FM // DIAMETER DISTRIBUTION (FOR PARTICLES)
  SOURCEDIR = /FLOW/ZN*/PT*/MORPHOLOGY
  LOCALVARS =  Zone,{SourceDir[2]}, \
               CurrentFluidList,{SourceDir[3]}
  TARGETDIR = /PARTICLE/PHYSICS/{Zone}/{CurrentFluidList}
END

DATA AREA:  PIR // DIAMETER DISTRIBUTION (FOR PARTICLES)
  SOURCEDIR = /FLOW/ZN*/PIR*/PT*/CONDITIONS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Region,{SourceDir[3]}, \
               CurrentFluidList,{SourceDir[4]}
  TARGETDIR = /PARTICLE/BOUNDCON/{Zone}/{Region}/{CurrentFluidList}/VARIABLES
END

DATA AREA:  INJECTION REGION // INJECTION DEFINITIONS
  SOURCEDIR = /FLOW/ZN*/IR*
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Region,{SourceDir[3]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/CFL
  TARGETDIR = /FLOW/PHYSICS/{Zone}/{Region}
END

DATA AREA:  IR // INJECTION CONDITIONS are treated as mass sources
  SOURCEDIR = /FLOW/ZN*/IR*/CONDITIONS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Region,{SourceDir[3]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/CFL, \
               CurrentEqnList, /FLOW/PHYSICS/{SourceDir[2]}/{SourceDir[3]}/SOUR\
CES/CEQN, \
               IRScope,SHARED
  TARGETDIR = /FLOW/PHYSICS/{Zone}/{Region}/SOURCES
END

DATA AREA:  IR // INJECTION CONDITIONS are treated as mass sources
  SOURCEDIR = /FLOW/ZN*/IR*/FL*/CONDITIONS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Region,{SourceDir[3]}, \
               CurrentFluidList,{SourceDir[4]}, \
               CurrentEqnList, CONT_{SourceDir[4]}, \
               IRScope,FLUID
  TARGETDIR = /FLOW/PHYSICS/{Zone}/{Region}/SOURCES
END

DATA AREA:  FM // FLUID MODELS
  SOURCEDIR = /FLOW/ZN*/FLUID_MODELS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/CFL
  TARGETDIR = /FLOW/PHYSICS/{Zone}
END

DATA AREA:  IM // DOMAIN INTERFACE MODELS
  SOURCEDIR = /FLOW/ZIF*/INTERFACE_MODELS
  LOCALVARS =  Zif,{SourceDir[2]}, \
               Side1Dir,/FLOW/{SourceDir[2]}/INTERFACE_MODELS/SIDE1/OVERLAP_CON\
DITIONS/BOUNDARY_CONDITIONS, \
               Side2Dir,/FLOW/{SourceDir[2]}/INTERFACE_MODELS/SIDE2/OVERLAP_CON\
DITIONS/BOUNDARY_CONDITIONS
  TARGETDIR = /FLOW/PHYSICS/{Zif}
END

DATA AREA:  IM // DOMAIN INTERFACE MODELS
  SOURCEDIR = /FLOW/ZIF*/SOLID_INTERFACE_MODE
  LOCALVARS =  Zif,{SourceDir[2]}, \
               Side1Dir,/FLOW/{SourceDir[2]}/SOLID_INTERFACE_MODE/SIDE1/OVERLAP\
_CONDITIONS/BOUNDARY_CONDITIONS, \
               Side2Dir,/FLOW/{SourceDir[2]}/SOLID_INTERFACE_MODE/SIDE2/OVERLAP\
_CONDITIONS/BOUNDARY_CONDITIONS
  TARGETDIR = /FLOW/PHYSICS/{Zif}/SOLID_INTERFACE_MODE
END

DATA AREA:  SM // SOLID MODELS
  SOURCEDIR = /FLOW/ZN*/SOLID_MODELS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               CurrentSolidList,/FLOW/{SourceDir[2]}/CSL
  TARGETDIR = /FLOW/PHYSICS/{Zone}
END

DATA AREA:  SOURCES // FLUID SOURCES (SUBDOMAIN)
  SOURCEDIR = /FLOW/ZN*/VP*/FL*/SOURCES
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Volpat,{SourceDir[3]}, \
               CurrentFluidList,{SourceDir[4]}, \
               SrcScope,FLUID
  TARGETDIR = /FLOW/PHYSICS/{Zone}/{Volpat}/SOURCES
END

DATA AREA:  SOURCES // SOLID SOURCES (SUBDOMAIN)
  SOURCEDIR = /FLOW/ZN*/VP*/SL*/SOURCES
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Volpat,{SourceDir[3]}, \
               CurrentSolidList,{SourceDir[4]}, \
               SrcScope,SOLID
  TARGETDIR = /FLOW/PHYSICS/{Zone}/{Volpat}/SOURCES
END

DATA AREA:  SOURCES // SHARED SOURCES (SUBDOMAIN)
  SOURCEDIR = /FLOW/ZN*/VP*/SOURCES
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Volpat,{SourceDir[3]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/CFL, \
               CurrentSolidList,/FLOW/{SourceDir[2]}/CSL, \
               SrcScope,SHARED
  TARGETDIR = /FLOW/PHYSICS/{Zone}/{Volpat}/SOURCES
END

DATA AREA:  SOURCES // BULK SOURCES
  SOURCEDIR = /FLOW/ZN*/VP*/BULK_SOURCES
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Volpat,{SourceDir[3]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/CFL, \
               SrcScope,FLUID
  TARGETDIR = /FLOW/PHYSICS/{Zone}/{Volpat}/BULK_SOURCES
END

DATA AREA:  SOURCES // FLUID SOURCES (POINT)
  SOURCEDIR = /FLOW/ZN*/SP*/FL*/SOURCES
  LOCALVARS =  Zone,{SourceDir[2]}, \
               SourcePoint,{SourceDir[3]}, \
               Volpat,{SourceDir[3]}, \
               CurrentFluidList,{SourceDir[4]}, \
               SrcScope,FLUID
  TARGETDIR = /FLOW/PHYSICS/{Zone}/{Volpat}/SOURCES
END

DATA AREA:  SOURCES // SOLID SOURCES (POINT)
  SOURCEDIR = /FLOW/ZN*/SP*/SL*/SOURCES
  LOCALVARS =  Zone,{SourceDir[2]}, \
               SourcePoint,{SourceDir[3]}, \
               Volpat,{SourceDir[3]}, \
               CurrentSolidList,{SourceDir[4]}, \
               SrcScope,SOLID
  TARGETDIR = /FLOW/PHYSICS/{Zone}/{Volpat}/SOURCES
END

DATA AREA:  SOURCES // SHARED SOURCES (POINT)
  SOURCEDIR = /FLOW/ZN*/SP*/SOURCES
  LOCALVARS =  Zone,{SourceDir[2]}, \
               SourcePoint,{SourceDir[3]}, \
               Volpat,{SourceDir[3]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/CFL, \
               CurrentSolidList,/FLOW/{SourceDir[2]}/CSL, \
               SrcScope,SHARED
  TARGETDIR = /FLOW/PHYSICS/{Zone}/{Volpat}/SOURCES
END

DATA AREA:  SOURCES // BULK SOURCES (POINT)
  SOURCEDIR = /FLOW/ZN*/SP*/BULK_SOURCES
  LOCALVARS =  Zone,{SourceDir[2]}, \
               SourcePoint,{SourceDir[3]}, \
               Volpat,{SourceDir[3]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/CFL, \
               SrcScope,FLUID
  TARGETDIR = /FLOW/PHYSICS/{Zone}/{Volpat}/BULK_SOURCES
END

DATA AREA:  SOURCES // FLUID FLUXES
  SOURCEDIR = /FLOW/ZN*/BCP*/BSRC/FL*/SOURCES
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Bcp,{SourceDir[3]}, \
               CurrentFluidList,{SourceDir[5]}, \
               SrcScope,FLUID
  TARGETDIR = /FLOW/PHYSICS/{Zone}/{Bcp}/SOURCES
END

DATA AREA:  SOURCES // SOLID FLUXES
  SOURCEDIR = /FLOW/ZN*/BCP*/BSRC/SL*/SOURCES
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Bcp,{SourceDir[3]}, \
               CurrentSolidList,{SourceDir[5]}, \
               SrcScope,SOLID
  TARGETDIR = /FLOW/PHYSICS/{Zone}/{Bcp}/SOURCES
END

DATA AREA:  SOURCES // SHARED FLUXES
  SOURCEDIR = /FLOW/ZN*/BCP*/BSRC/SOURCES
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Bcp,{SourceDir[3]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/CFL, \
               CurrentSolidList,/FLOW/{SourceDir[2]}/CSL, \
               SrcScope,SHARED
  TARGETDIR = /FLOW/PHYSICS/{Zone}/{Bcp}/SOURCES
END

DATA AREA:  SOURCES // BULK FLUXES
  SOURCEDIR = /FLOW/ZN*/BCP*/BSRC/BULK_SOURCES
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Bcp,{SourceDir[3]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/CFL, \
               SrcScope,FLUID
  TARGETDIR = /FLOW/PHYSICS/{Zone}/{Bcp}/BULK_SOURCES
END

DATA AREA:  BOUNDARY
  SOURCEDIR = /FLOW/ZN*/BCP*
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Bcp,{SourceDir[3]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/CFL, \
               CurrentSolidList,/FLOW/{SourceDir[2]}/CSL
  TARGETDIR = /FLOW/BOUNDCON/{Zone}/{Bcp}
END

DATA AREA:  BC // FLUID BOUNDARY CONDITIONS
  SOURCEDIR = /FLOW/ZN*/BCP*/FL*/BOUNDARY_CONDITIONS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Bcp,{SourceDir[3]}, \
               CurrentFluidList,{SourceDir[4]}, \
               BcScope,FLUID
  TARGETDIR = /FLOW/BOUNDCON/{Zone}/{Bcp}/VARIABLES
  ADDKEYS   = /FLOW/{Zone}/{Bcp}/PHYTYPE
END

DATA AREA:  BC // SOLID BOUNDARY CONDITIONS
  SOURCEDIR = /FLOW/ZN*/BCP*/SL*/BOUNDARY_CONDITIONS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Bcp,{SourceDir[3]}, \
               CurrentSolidList,{SourceDir[4]}, \
               BcScope,SOLID
  TARGETDIR = /FLOW/BOUNDCON/{Zone}/{Bcp}/VARIABLES
  ADDKEYS   = /FLOW/{Zone}/{Bcp}/PHYTYPE
END

DATA AREA:  BC // PARTICLE BOUNDARY CONDITIONS
  SOURCEDIR = /FLOW/ZN*/BCP*/PT*/BOUNDARY_CONDITIONS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Bcp,{SourceDir[3]}, \
               CurrentFluidList,{SourceDir[4]}, \
               BcScope,FLUID
  TARGETDIR = /PARTICLE/BOUNDCON/{Zone}/{Bcp}/{CurrentFluidList}/VARIABLES
  ADDKEYS   = /FLOW/{Zone}/{Bcp}/PHYTYPE
END

DATA AREA:  BC // SHARED BOUNDARY CONDITIONS
  SOURCEDIR = /FLOW/ZN*/BCP*/BOUNDARY_CONDITIONS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Bcp,{SourceDir[3]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/CFL, \
               CurrentSolidList,/FLOW/{SourceDir[2]}/CSL, \
               BcScope,SHARED
  TARGETDIR = /FLOW/BOUNDCON/{Zone}/{Bcp}/VARIABLES
  ADDKEYS   = /FLOW/{Zone}/{Bcp}/PHYTYPE
END

DATA AREA:  BC // FLUID PAIR BOUNDARY CONDITIONS
  SOURCEDIR = /FLOW/ZN*/BCP*/PP*/BOUNDARY_CONDITIONS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Bcp,{SourceDir[3]}, \
               FluidPair,{SourceDir[4]}
  TARGETDIR = /FLOW/BOUNDCON/{Zone}/{Bcp}/VARIABLES
  ADDKEYS   = /FLOW/{Zone}/{Bcp}/PHYTYPE
END

DATA AREA:  BC // WALL BULK BOUNDARY CONDITIONS
  SOURCEDIR = /FLOW/ZN*/BCP*/WALL_CONTACT_MODEL
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Bcp,{SourceDir[3]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/CFL, \
               CurrentSolidList,/FLOW/{SourceDir[2]}/CSL, \
               BcScope,BULK
  TARGETDIR = /FLOW/BOUNDCON/{Zone}/{Bcp}/VARIABLES
  ADDKEYS   = /FLOW/{Zone}/{Bcp}/PHYTYPE
END

DATA AREA:  BC // ZIF OVERLAP FLUID BOUNDARY CONDITIONS
  SOURCEDIR = /FLOW/ZN*/BCP*/OVERLAP_CONDITIONS/FL*/BOUNDARY_CONDITIONS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Bcp,{SourceDir[3]}, \
               CurrentFluidList,{SourceDir[5}, \
               BcScope,FLUID
  TARGETDIR = /FLOW/BOUNDCON/{Zone}/{Bcp}/VARIABLES
  ADDKEYS   = /FLOW/{Zone}/{Bcp}/PHYTYPE
END

DATA AREA:  BC // ZIF OVERLAP SOLID BOUNDARY CONDITIONS
  SOURCEDIR = /FLOW/ZN*/BCP*/OVERLAP_CONDITIONS/SL*/BOUNDARY_CONDITIONS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Bcp,{SourceDir[3]}, \
               CurrentSolidList,{SourceDir[5]}, \
               BcScope,SOLID
  TARGETDIR = /FLOW/BOUNDCON/{Zone}/{Bcp}/VARIABLES
  ADDKEYS   = /FLOW/{Zone}/{Bcp}/PHYTYPE
END

DATA AREA:  BC // ZIF OVERLAP PARTICLE BOUNDARY CONDITIONS
  SOURCEDIR = /FLOW/ZN*/BCP*/OVERLAP_CONDITIONS/PT*/BOUNDARY_CONDITIONS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Bcp,{SourceDir[3]}, \
               CurrentFluidList,{SourceDir[5]}, \
               BcScope,FLUID
  TARGETDIR = /PARTICLE/BOUNDCON/{Zone}/{Bcp}/{CurrentFluidList}/VARIABLES
  ADDKEYS   = /FLOW/{Zone}/{Bcp}/PHYTYPE
END

DATA AREA:  BC // ZIF OVERLAP BOUNDARY CONDITONS
  SOURCEDIR = /FLOW/ZN*/BCP*/OVERLAP_CONDITIONS/BOUNDARY_CONDITIONS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Bcp,{SourceDir[3]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/CFL, \
               CurrentSolidList,/FLOW/{SourceDir[2]}/CSL, \
               BcScope,SHARED
  TARGETDIR = /FLOW/BOUNDCON/{Zone}/{Bcp}/VARIABLES
  ADDKEYS   = /FLOW/{Zone}/{Bcp}/PHYTYPE
END

DATA AREA:  BC // ZIF NONOVERLAP FLUID BOUNDARY CONDITIONS
  SOURCEDIR = /FLOW/ZN*/BCP*/NOVERLAP_CONDITIONS/FL*/BOUNDARY_CONDITIONS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Bcp,{SourceDir[3]}, \
               CurrentFluidList,{SourceDir[5]}, \
               BcScope,FLUID
  TARGETDIR = /FLOW/BOUNDCON/{Zone}/{Bcp}/NOVARIABLES
  ADDKEYS   = /FLOW/{Zone}/{Bcp}/NOVERLAP_CONDITIONS/PHYTYPE
END

DATA AREA:  BC // ZIF NONOVERLAP SOLID BOUNDARY CONDITIONS
  SOURCEDIR = /FLOW/ZN*/BCP*/NOVERLAP_CONDITIONS/SL*/BOUNDARY_CONDITIONS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Bcp,{SourceDir[3]}, \
               CurrentSolidList,{SourceDir[5]}, \
               BcScope,SOLID
  TARGETDIR = /FLOW/BOUNDCON/{Zone}/{Bcp}/NOVARIABLES
  ADDKEYS   = /FLOW/{Zone}/{Bcp}/NOVERLAP_CONDITIONS/PHYTYPE
END

DATA AREA:  BC // ZIF NONOVERLAP PARTICLE BOUNDARY CONDITIONS
  SOURCEDIR = /FLOW/ZN*/BCP*/NOVERLAP_CONDITIONS/PT*/BOUNDARY_CONDITIONS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Bcp,{SourceDir[3]}, \
               CurrentFluidList,{SourceDir[5]}, \
               BcScope,FLUID
  TARGETDIR = /PARTICLE/BOUNDCON/{Zone}/{Bcp}/{CurrentFluidList}/NOVARIABLES
  ADDKEYS   = /FLOW/{Zone}/{Bcp}/NOVERLAP_CONDITIONS/PHYTYPE
END

DATA AREA:  BC // ZIF NONOVERLAP BOUNDARY CONDITONS
  SOURCEDIR = /FLOW/ZN*/BCP*/NOVERLAP_CONDITIONS/BOUNDARY_CONDITIONS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               Bcp,{SourceDir[3]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/CFL, \
               CurrentSolidList,/FLOW/{SourceDir[2]}/CSL, \
               BcScope,SHARED
  TARGETDIR = /FLOW/BOUNDCON/{Zone}/{Bcp}/NOVARIABLES
  ADDKEYS   = /FLOW/{Zone}/{Bcp}/NOVERLAP_CONDITIONS/PHYTYPE
END

DATA AREA:  IMC // DOMAIN INTERFACE MODELS OVERLAP BOUNDARY CONDITIONS
  SOURCEDIR = /FLOW/ZIF*/INTERFACE_MODELS/OVERLAP_CONDITIONS/BOUNDARY_CONDITION\
S
  LOCALVARS =  Zif,{SourceDir[2]}, \
               Side1Dir,/FLOW/{SourceDir[2]}/INTERFACE_MODELS/SIDE1/OVERLAP_CON\
DITIONS/BOUNDARY_CONDITIONS, \
               Side2Dir,/FLOW/{SourceDir[2]}/INTERFACE_MODELS/SIDE2/OVERLAP_CON\
DITIONS/BOUNDARY_CONDITIONS
  TARGETDIR = /FLOW/PHYSICS/{Zif}
END

DATA AREA:  IMC // DOMAIN INTERFACE MODELS NONOVERLAP BOUNDARY CONDITIONS
  SOURCEDIR = /FLOW/ZIF*/INTERFACE_MODELS/NOVERLAP_CONDITIONS/BOUNDARY_CONDITIO\
NS
  LOCALVARS =  Zif,{SourceDir[2]}, \
               Side1Dir,/FLOW/{SourceDir[2]}/INTERFACE_MODELS/SIDE1/NOVERLAP_CO\
NDITIONS/BOUNDARY_CONDITIONS, \
               Side2Dir,/FLOW/{SourceDir[2]}/INTERFACE_MODELS/SIDE2/NOVERLAP_CO\
NDITIONS/BOUNDARY_CONDITIONS
  TARGETDIR = /FLOW/PHYSICS/{Zif}
END

DATA AREA:  BC // DOMAIN INTERFACE MODELS FLUID OVERLAP CONDITIONS
  SOURCEDIR = /FLOW/ZIF*/INTERFACE_MODELS/SIDE*/OVERLAP_CONDITIONS/FL*/BOUNDARY\
_CONDITIONS
  LOCALVARS =  Zif,{SourceDir[2]}, \
               Side,{SourceDir[4]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/{SourceDir[4]}/{SourceDir[\
6]}, \
               BcScope,FLUID
  TARGETDIR = /FLOW/PHYSICS/{Zif}/{Side}/VARIABLES
  ADDKEYS   = /FLOW/{Zif}/ZIF_PHYTYPE
END

DATA AREA:  BC // DOMAIN INTERFACE MODELS SOLID OVERLAP CONDITIONS
  SOURCEDIR = /FLOW/ZIF*/INTERFACE_MODELS/SIDE*/OVERLAP_CONDITIONS/SL*/BOUNDARY\
_CONDITIONS
  LOCALVARS =  Zif,{SourceDir[2]}, \
               Side,{SourceDir[4]}, \
               CurrentSolidList,/FLOW/{SourceDir[2]}/{SourceDir[4]}/{SourceDir[\
6]}, \
               BcScope,SOLID
  TARGETDIR = /FLOW/PHYSICS/{Zif}/{Side}/VARIABLES
  ADDKEYS   = /FLOW/{Zif}/ZIF_PHYTYPE
END

DATA AREA:  BC // DOMAIN INTERFACE MODELS PARTICLE OVERLAP CONDITIONS
  SOURCEDIR = /FLOW/ZIF*/INTERFACE_MODELS/SIDE*/OVERLAP_CONDITIONS/PT*/BOUNDARY\
_CONDITIONS
  LOCALVARS =  Zif,{SourceDir[2]}, \
               Side,{SourceDir[4]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/{SourceDir[4]}/{SourceDir[\
6]}, \
               BcScope,FLUID
  TARGETDIR = /FLOW/PHYSICS/{Zif}/{Side}/VARIABLES
  ADDKEYS   = /FLOW/{Zif}/ZIF_PHYTYPE
END

DATA AREA:  BC // DOMAIN INTERFACE MODELS SHARED OVERLAP CONDITIONS
  SOURCEDIR = /FLOW/ZIF*/INTERFACE_MODELS/SIDE*/OVERLAP_CONDITIONS/BOUNDARY_CON\
DITIONS
  LOCALVARS =  Zif,{SourceDir[2]}, \
               Side,{SourceDir[4]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/{SourceDir[4]}/CFL, \
               CurrentSolidList,/FLOW/{SourceDir[2]}/{SourceDir[4]}/CSL, \
               BcScope,SHARED
  TARGETDIR = /FLOW/PHYSICS/{Zif}/{Side}/VARIABLES
  ADDKEYS   = /FLOW/{Zif}/ZIF_PHYTYPE
END

DATA AREA:  BC // DOMAIN INTERFACE MODELS SHARED OVERLAP CONDITIONS
  SOURCEDIR = /FLOW/ZIF*/SOLID_INTERFACE_MODE/SIDE*/OVERLAP_CONDITIONS/BOUNDARY\
_CONDITIONS
  LOCALVARS =  Zif,{SourceDir[2]}, \
               Side,{SourceDir[4]}, \
               CurrentSolidList,/FLOW/{SourceDir[2]}/{SourceDir[4]}/CSL, \
               BcScope,SOLID
  TARGETDIR = /FLOW/PHYSICS/{Zif}/{Side}/VARIABLES
  ADDKEYS   = /FLOW/{Zif}/ZIF_PHYTYPE
END

DATA AREA:  BC // DOMAIN INTERFACE MODELS FLUID NONOVERLAP CONDITIONS
  SOURCEDIR = /FLOW/ZIF*/INTERFACE_MODELS/SIDE*/NOVERLAP_CONDITIONS/FL*/BOUNDAR\
Y_CONDITIONS
  LOCALVARS =  Zif,{SourceDir[2]}, \
               Side,{SourceDir[4]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/{SourceDir[4]}/{SourceDir[\
6]}, \
               BcScope,FLUID
  TARGETDIR = /FLOW/PHYSICS/{Zif}/{Side}/NOVARIABLES
  ADDKEYS   = /FLOW/{Zif}/ZIF_PHYTYPE
END

DATA AREA:  BC // DOMAIN INTERFACE MODELS SOLID NONOVERLAP CONDITIONS
  SOURCEDIR = /FLOW/ZIF*/INTERFACE_MODELS/SIDE*/NOVERLAP_CONDITIONS/SL*/BOUNDAR\
Y_CONDITIONS
  LOCALVARS =  Zif,{SourceDir[2]}, \
               Side,{SourceDir[4]}, \
               CurrentSolidList,/FLOW/{SourceDir[2]}/{SourceDir[4]}/{SourceDir[\
6]}, \
               BcScope,SOLID
  TARGETDIR = /FLOW/PHYSICS/{Zif}/{Side}/NOVARIABLES
  ADDKEYS   = /FLOW/{Zif}/ZIF_PHYTYPE
END

DATA AREA:  BC // DOMAIN INTERFACE MODELS SOLID NONOVERLAP CONDITIONS
  SOURCEDIR = /FLOW/ZIF*/INTERFACE_MODELS/SIDE*/NOVERLAP_CONDITIONS/PT*/BOUNDAR\
Y_CONDITIONS
  LOCALVARS =  Zif,{SourceDir[2]}, \
               Side,{SourceDir[4]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/{SourceDir[4]}/{SourceDir[\
6]}, \
               BcScope,FLUID
  TARGETDIR = /FLOW/PHYSICS/{Zif}/{Side}/NOVARIABLES
  ADDKEYS   = /FLOW/{Zif}/ZIF_PHYTYPE
END

DATA AREA:  BC // DOMAIN INTERFACE MODELS SHARED NONOVERLAP CONDITIONS
  SOURCEDIR = /FLOW/ZIF*/INTERFACE_MODELS/SIDE*/NOVERLAP_CONDITIONS/BOUNDARY_CO\
NDITIONS
  LOCALVARS =  Zif,{SourceDir[2]}, \
               Side,{SourceDir[4]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/{SourceDir[4]}/CFL, \
               CurrentSolidList,/FLOW/{SourceDir[2]}/{SourceDir[4]}/CSL, \
               BcScope,SHARED
  TARGETDIR = /FLOW/PHYSICS/{Zif}/{Side}/NOVARIABLES
  ADDKEYS   = /FLOW/{Zif}/ZIF_PHYTYPE
END

DATA AREA:  IC // INITIAL CONDITIONS // TURBULENCE INITIAL CONDITIONS (FOR FLUID)
  SOURCEDIR = /FLOW/ZN*/INITIALISATION/FL*/INITIAL_CONDITIONS/TURBULENCE_INITIA\
L_CONDITIONS
  TARGETDIR = /FLOW/INITCON/{Zone}/VARIABLES
  LOCALVARS =  Zone,{SourceDir[2]}, \
               CurrentFluidList,{SourceDir[4]}, \
               IcScope,FLUID
  TARGETDIR = /FLOW/INITCON/{Zone}/VARIABLES
END

DATA AREA:  IC // INITIAL CONDITIONS // TURBULENCE INITIAL CONDITIONS
  SOURCEDIR = /FLOW/ZN*/INITIALISATION/INITIAL_CONDITIONS/TURBULENCE_INITIAL_CO\
NDITIONS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/CFL, \
               CurrentSolidList,/FLOW/{SourceDir[2]}/CSL, \
               IcScope,SHARED
  TARGETDIR = /FLOW/INITCON/{Zone}/VARIABLES
END

DATA AREA:  IC // INITIAL CONDITIONS (FOR FLUID)
  SOURCEDIR = /FLOW/ZN*/INITIALISATION/FL*/INITIAL_CONDITIONS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               CurrentFluidList,{SourceDir[4]}, \
               IcScope,FLUID
  TARGETDIR = /FLOW/INITCON/{Zone}/VARIABLES
END

DATA AREA:  IC // INITIAL CONDITIONS (FOR SOLID)
  SOURCEDIR = /FLOW/ZN*/INITIALISATION/SL*/INITIAL_CONDITIONS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               CurrentSolidList,{SourceDir[4]}, \
               IcScope,SOLID
  TARGETDIR = /FLOW/INITCON/{Zone}/VARIABLES
END

DATA AREA:  IC // INITIAL CONDITIONS
  SOURCEDIR = /FLOW/ZN*/INITIALISATION/INITIAL_CONDITIONS
  LOCALVARS =  Zone,{SourceDir[2]}, \
               CurrentFluidList,/FLOW/{SourceDir[2]}/CFL, \
               CurrentSolidList,/FLOW/{SourceDir[2]}/CSL, \
               IcScope,SHARED
  TARGETDIR = /FLOW/INITCON/{Zone}/VARIABLES
END

DATA AREA:  .EPILOGUE
  SOURCEDIR = /
END

///////////////////////////////////////////////////////////////////////////////
//   .PROLOGUE data area
///////////////////////////////////////////////////////////////////////////////

.PROLOGUE:

  // Entry debug report
  CASE: /CCLSETUP/CCLSETUP_DEBUG
  IS: *NONE*
  IS: 0
  ELSE
    MESAGE 
    MESAGE: CCLSETUP_input
    MESAGE 
    LISALL
    MESAGE 
  ENDCASE

  CASE: /FLOW/DEBUG
  IS: *DIR*
    RENAM: /FLOW/DEBUG, DEBUG
  ENDCASE

  // Default coordinate frame: Coord 0
  MAKDIR: /LIB/FRAMES
    CASE: /LIB/FRAMES/OBJECT_TYPE
    IS: *NONE*
      CHAR: /LIB/FRAMES/OBJECT_TYPE = COORDINATE FRAME DEFINITIONS
    ENDCASE
    
    MAKDIR: COORD0
      CATLG: COORD
      REAL: TRANL2G
      MAKDIR: TRANL2G
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 3
        REAL: VALUE = 0.0, 0.0, 0.0
      ENDDIR
      MAKDIR: ROTG2L
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 9
        REAL: VALUE = 1.0, 0.0, 0.0, \
                      0.0, 1.0, 0.0, \
                      0.0, 0.0, 1.0, 
      ENDDIR
      CHAR: OBJECT_TYPE = COORDINATE FRAME
    ENDDIR
  ENDDIR

  // Create phase list on sides of domain interfaces
  FOR: Zif = /FLOW/CZIF
    CHAR: /FLOW/{Zif}/CBCP1, /FLOW/{Zif}/SIDE1/CBCP
    CHAR: /FLOW/{Zif}/CBCP2, /FLOW/{Zif}/SIDE2/CBCP
    FOR: Side = SIDE1, SIDE2
      FOR: Bcp = /FLOW/{Zif}/{Side}/CBCP
        FOR: Zone = /FLOW/CZN
          CASE: /FLOW/{Zone}/{Bcp}, /BCPMAP/{Bcp}/CFL
          IS: *DIR*,*NONE*
            CHAR: /FLOW/{Zone}/CFL, /BCPMAP/{Bcp}/CFL
            CHAR: /FLOW/{Zone}/CSL, /BCPMAP/{Bcp}/CSL
            CHAR: /FLOW/{Zone}/CPT, /BCPMAP/{Bcp}/CPT
          ENDCASE
        ENDFOR
        CASE: /FLOW/{Zif}/{Side}/CFL
        IS: *NONE*
          CHAR: /BCPMAP/{Bcp}/CFL, /FLOW/{Zif}/{Side}/CFL
        ENDCASE
        CASE: /FLOW/{Zif}/{Side}/CSL
        IS: *NONE*
          CHAR: /BCPMAP/{Bcp}/CSL, /FLOW/{Zif}/{Side}/CSL
        ENDCASE
      ENDFOR
    ENDFOR
  ENDFOR
  DELDIR: /BCPMAP

  // Scatter global initial conditions
  // Initialize domain coord frame
  FOR: Zone = /FLOW/CZN
    CASE: /FLOW/{Zone}/INITIALISATION
    IS: *NONE*
      COPDIR: /FLOW/INITIALISATION, /FLOW/{Zone}/INITIALISATION
      ENDDIR
    ENDCASE

    CASE: /FLOW/{Zone}/COORD
    IS: *NONE*
      CHAR: /FLOW/{Zone}/COORD = COORD0
    ENDCASE
  ENDFOR

  // Delete global initialisation CCL as we don't need it now
  CASE: /FLOW/INITIALISATION
  IS: *DIR*
    DELDIR: /FLOW/INITIALISATION
  ENDCASE

  // Scatter global partitioning controls
  FOR: Zone = /FLOW/CZN
    CASE: /EXECUTION_CONTROL/PARTITION_CONTROL/{Zone}/PARTITIONING_TYPE
    IS: *NONE*
      COPDIR: /EXECUTION_CONTROL/PARTITION_CONTROL/PARTITIONING_TYPE, \
              /EXECUTION_CONTROL/PARTITION_CONTROL/{Zone}/PARTITIONING_TYPE
      ENDDIR
    ENDCASE
  ENDFOR
  // Delete global initialisation CCL as we don't need it now
  CASE: /EXECUTION_CONTROL/PARTITION_CONTROL/PARTITIONING_TYPE
  IS: *DIR*
    DELDIR: /EXECUTION_CONTROL/PARTITION_CONTROL/PARTITIONING_TYPE
  ENDCASE

  FOR: Section = ABR_CTRL
    CASE: /FLOW/{Section}
    IS: *DIR*
      RENAM: /FLOW/{Section}/SCHEME/INITIME, /FLOW/ANALYSIS_TYPE/INITIME
      RENAM: /FLOW/{Section}/SCHEME/PERIOD, /FLOW/ANALYSIS_TYPE/PERIOD
      RENAM: /FLOW/{Section}/SCHEME/DURATION, /FLOW/ANALYSIS_TYPE/DURATION
      RENAM: /FLOW/{Section}/SCHEME/TIME_STEPS, /FLOW/ANALYSIS_TYPE/TIME_STEPS
      RENAM: /FLOW/{Section}/SCHEME/NMODE, /FLOW/ANALYSIS_TYPE/NMODE
      RENAM: /FLOW/{Section}/SCHEME/OPTION, /FLOW/ANALYSIS_TYPE/SCHEME
      MAKDIR: /ABR
      ENDDIR
      RENAM: /FLOW/{Section},/ABR/ALGORITHM
    ENDCASE

    CASE: /FLOW/OUTPUT_CONTROL/{Section}
    IS: *DIR*
      RENAM: /FLOW/OUTPUT_CONTROL/{Section},/ABR/OUTPUT
    ENDCASE    

  ENDFOR
END

///////////////////////////////////////////////////////////////////////////////
//   .EPILOGUE data area
///////////////////////////////////////////////////////////////////////////////

.EPILOGUE:

  // Translate multidomain partitioning option
  CASE: /EXECUTION_CONTROL/PARTITION_CONTROL/MULTIDOMAIN_OPTION
  IS: *NONE*
  ELSE
    RENAM: /EXECUTION_CONTROL/PARTITION_CONTROL/MULTIDOMAIN_OPTION, \
           /FLOW/PARTITION_CONTROL/MULTIDOMAIN_OPTION
  ENDCASE

  // Translate partition smoothing option
  CASE: /EXECUTION_CONTROL/PARTITION_CONTROL/PARTITION_SMOOTHING/OPTION
  IS: Smooth
    LOGL: /FLOW/PARTITION_CONTROL/LPSMTH = .TRUE.
  IS: None
    LOGL: /FLOW/PARTITION_CONTROL/LPSMTH = .FALSE.
  IS: *NONE*
    LOGL: /FLOW/PARTITION_CONTROL/LPSMTH = .TRUE.
  ELSE:
    MESAGE: Unknown Smoothing Method
    EXIT
  ENDCASE

  CASE: /EXECUTION_CONTROL/PARTITION_CONTROL/PARTITION_SMOOTHING/MXSMTHS
  IS: *NONE*
  ELSE
    RENAM: /EXECUTION_CONTROL/PARTITION_CONTROL/PARTITION_SMOOTHING/MXSMTHS, \
           /FLOW/PARTITION_CONTROL/MXSMTHS
  ENDCASE

  // Translate pre-coarsening for partitioning
  CASE: /EXECUTION_CONTROL/PARTITION_CONTROL/PRECSN_CTRL/OPTION
  IS: Mesh Precoarsening
    LOGL: /FLOW/PARTITION_CONTROL/LPRECSN = .TRUE.
    COPDIR: /EXECUTION_CONTROL/PARTITION_CONTROL/PRECSN_CTRL, \
            /FLOW/PARTITION_CONTROL/PRECSN_CTRL
    ENDDIR
  IS: None
    LOGL: /FLOW/PARTITION_CONTROL/LPRECSN = .FALSE.
  IS: *NONE*
    LOGL: /FLOW/PARTITION_CONTROL/LPRECSN = .FALSE.
  ELSE:
    MESAGE: Unknown Pre-coarsening option
    EXIT
  ENDCASE

  // --- FINAL EDITS ------------------------------------------------------


  // --- SOLVER CONTROL FLAGS ---------------------------------------------

  // Absence or .FALSE. value for /COMMAND/AVAILABLE indicates 5.3 deffile.
  LOGL: /COMMAND/AVAILABLE = .TRUE.

  // Absence or .FALSE. value for /COMMAND/VALID indicates CCL error.
  LOGL: /COMMAND/VALID = .TRUE.

  // Can tell solver to list CCL-MMS data it received.
  CASE: /CCLSETUP/SOLVERSETUP_DEBUG
  IS: *NONE*
     LOGL: /COMMAND/LIST = .FALSE.
  IS: 0
     LOGL: /COMMAND/LIST = .FALSE.
  ELSE
     LOGL: /COMMAND/LIST = .TRUE.
  ENDCASE

  // Can tell solver to stop after reading (listing) CCL-MMS data.
  CASE: /CCLSETUP/SOLVERSETUP_DEBUG
  IS: 100
     LOGL: /COMMAND/STOP = .TRUE.
  ELSE
     LOGL: /COMMAND/STOP = .FALSE.
  ENDCASE
 

  // --- TIDY -------------------------------------------------------------
  // Relocate structures that do not otherwise need translation.

  FOR: Section = PT_CTRL
    CASE: /FLOW/SOLVER_CONTROL/{Section}
    IS: *DIR*
      MAKDIR: /PARTICLE/ALGORITHM
      ENDDIR
      RENAM: /FLOW/SOLVER_CONTROL/{Section},/PARTICLE/ALGORITHM/CONTROL
    ENDCASE
  ENDFOR

  FOR: Section = TRAD_CONTROL
    CASE: /FLOW/SOLVER_CONTROL/{Section}
    IS: *DIR*
      MAKDIR: /RADIATION/ALGORITHM
      ENDDIR
      RENAM: /FLOW/SOLVER_CONTROL/{Section},/RADIATION/ALGORITHM/CONTROL
    ENDCASE
  ENDFOR

  CASE: /FLOW/SOLVER_CONTROL/CPLG_CTRL
  IS: *DIR*
    MAKDIR: /PRCCPLG/CONTROL
    ENDDIR
    RENAM: /FLOW/SOLVER_CONTROL/CPLG_CTRL, \
           /PRCCPLG/CONTROL/COUPLING
  ENDCASE

  CASE: /FLOW/SOLVER_CONTROL/RB_CTRL/CPLG_CTRL
  IS: *DIR*
    MAKDIR: /INTCPLG/CONTROL
    ENDDIR
    RENAM: /FLOW/SOLVER_CONTROL/RB_CTRL/CPLG_CTRL, \
           /INTCPLG/CONTROL/COUPLING
  ENDCASE

  CASE: /FLOW/ALGORITHM
  IS: *DIR*
  ELSE:
    MAKDIR: /FLOW/ALGORITHM
    ENDDIR
  ENDCASE
  
  RENAM: /FLOW/SOLVER_CONTROL, /FLOW/ALGORITHM/CONTROL
  CHAR: /FLOW/ALGORITHM/TRANS/CTRANS, /FLOW/ALGORITHM/CONTROL/TRANS/CTRANS

  CASE: /FLOW/OUTPUT_CONTROL
  IS: *DIR*
    MAKDIR: /FLOW/CONTROL
    ENDDIR
    RENAM: /FLOW/OUTPUT_CONTROL, /FLOW/CONTROL/OUTPUT
  ENDCASE
    
  FOR: Tpd = /FLOW/CONTROL/OUTPUT/CTPD
    CASE: /FLOW/CONTROL/OUTPUT,/FLOW/CONTROL/OUTPUT/{Tpd}/OPTION
    IS: *DIR*,Particle Penetration
      CHAR: /FLOW/CONTROL/OUTPUT/{Tpd}/CMETHOD = PENETRATION
    IS: *DIR*,Total Particle Mass
      CHAR: /FLOW/CONTROL/OUTPUT/{Tpd}/CMETHOD = TOTAL_MASS
    IS: *DIR*,User Defined
      CHAR: /FLOW/CONTROL/OUTPUT/{Tpd}/CMETHOD = USER
    ENDCASE
  ENDFOR

  // Copy zif-specific intersection controls
  FOR: Zif = /FLOW/CZIF
    CASE: /FLOW/{Zif}/MESH_CONNECTION/INTERSECT
    IS: *DIR*
      COPDIR: /FLOW/{Zif}/MESH_CONNECTION/INTERSECT, \
              /FLOW/ALGORITHM/CONTROL/{Zif}/INTERSECT
      ENDDIR
    ENDCASE
  ENDFOR

  CASE: /FLOW/CONTROL/OUTPUT/MONITOR/EXP_EFF
  IS: *DIR*
    RENAM: /FLOW/CONTROL/OUTPUT/MONITOR/EXP_EFF, \
           /FLOW/CONTROL/OUTPUT/MONITOR/MON_EFF
  ENDCASE

  // Delete spent source directories
  CASE: 1
  IS: 1

    // All relevant /EXECUTION_CONTROL data has been transferred into /FLOW
    DELDIR: /EXECUTION_CONTROL

    // All relevant /LIB input data has been transferred into /FLOW
    DELDIR: /LIB

    FOR: Coord = /FLOW/CCOORD
      DELDIR: /FLOW/{Coord}
    ENDFOR
    DELDAT: /FLOW/NCOORD
    DELDIR: /FLOW/CCOORD  // Note at this point CCCORD is a NAMLST1 directory

    // All /FLOW/{RigidBody} input data has been translated to other /FLOW areas.
    FOR: RigidB = /FLOW/CRB
      DELDIR: /FLOW/{RigidB}
    ENDFOR
    DELDAT: /FLOW/NRB
    DELDIR: /FLOW/CRB  // Note at this point CRB is a NAMLST1 directory

    // All /FLOW/{Zone} input data has been translated to other /FLOW areas.
    FOR: Zone = /FLOW/CZN
      DELDIR: /FLOW/{Zone}
    ENDFOR
    DELDAT: /FLOW/NZN
    DELDIR: /FLOW/CZN  // Note at this point CZN is a NAMLST1 directory

    // Delete all ZIF data
    FOR: Zif = /FLOW/CZIF
      DELDIR: /FLOW/{Zif}
    ENDFOR
    DELDAT: /FLOW/NZIF
    DELDIR: /FLOW/CZIF // CZIF also appears to be a NAMLST1 directory

    // Workaround against ccl2flow failing to output /FLOW/CZN above.
    // Delete at least /FLOW/ZN1 to stop developers relying on ghost data.
    DELDIR: /FLOW/ZN1

    // Delete other translated areas.
    DELDIR: /FLOW/ANALYSIS_TYPE

  ENDCASE

  // Optionally print final data,
  // after first referencing /CCLSETUP/CCLSETUP_DEBUG
  // then deleting cclsetup controls directory containing /CCLSETUP/CCLSETUP_DEBUG .
  CASE: /CCLSETUP/CCLSETUP_DEBUG
  IS: *NONE*
    DELDIR: /CCLSETUP
  IS: 0
    DELDIR: /CCLSETUP
  ELSE
    DELDIR: /CCLSETUP
    MESAGE
    MESAGE: CCLSETUP_output
    MESAGE 
    LISALL
    MESAGE 
  ENDCASE

  // --- DELETE unused data areas -----------------------------------------

  CLEAN: CHAR = OBJECT_TYPE
  CLEAN: CHAR = EXPRN

  // --- OUTPUT DATA TO SOLVER --------------------------------------------

  // Generate output file for solver.
  OUTPUT: OPTIONS =  cfx5.mms.setup , \
                     0 , \
                     LEN_

END


///////////////////////////////////////////////////////////////////////////////
//   SCRIPTS data area
///////////////////////////////////////////////////////////////////////////////


SCRIPTS: CCL2FLOW STEP CONTROL
END

SCRIPTS: CCLSETUP STEP CONTROL
END

SCRIPTS: INTERPOLATOR STEP CONTROL
END

SCRIPTS: MFX RUN CONTROL
END

SCRIPTS: PARTITIONER STEP CONTROL
END

SCRIPTS: RUN DEFINITION
  CASE: {SourceDir}/{MmsName}/RUN_MODE
  IS: *NONE*
  ELSE
    CHAR: RUN_MODE, RUNMODE
    CHAR: RESFILE
  ENDCASE
END

SCRIPTS: SOLVER STEP CONTROL
  CASE: {SourceDir}/{MmsName}/PRCCPLG
  IS: *DIR*
    COPDIR: PRCCPLG
    ENDDIR
  ENDCASE
  CASE: {SourceDir}/{MmsName}/SCCPLG
  IS: *DIR*
    COPDIR: SCCPLG
    ENDDIR
  ENDCASE
  CASE: {SourceDir}/{MmsName}/LICCTRL
  IS: *DIR*
    COPDIR: LICCTRL
    ENDDIR
  ENDCASE
  CASE: {SourceDir}/{MmsName}/MMS_CONTROL/NUMA_OPTION
  IS: *NONE*
    CHAR: MMS_CONTROL/NUMA_OPTION = None
  ELSE
    CHAR: {SourceDir}/{MmsName}/MMS_CONTROL/NUMA_OPTION, \
          MMS_CONTROL/NUMA_OPTION
  ENDCASE
  CASE: {SourceDir}/{MmsName}/AFFCTRL
  IS: *NONE*
    CHAR: AFFCTRL/OPTION = Implicit
  IS: *DIR*
    COPDIR: AFFCTRL
    ENDDIR
  ENDCASE
END


///////////////////////////////////////////////////////////////////////////////
//   PART data area
///////////////////////////////////////////////////////////////////////////////

PART: PARTITIONING TYPE,Circumferential
  CHAR: PART_TYPE = CIRCDIR

  CASE: {SourceDir}/{MmsName}/PART_WEIGHTS
  IS: *DIR*
    CHAR: PART_WEIGHTS/VALUE, PART_WEIGHTS
  ENDCASE

  // Pass through the rotation axis if it exists
  CASE:{SourceDir}/{MmsName}/AXIS
  IS: *DIR*
    COPDIR: AXIS
    ENDDIR
  IS: *NONE*
    MESAGE: Missing rotation axis specification
    EXIT
  ENDCASE

  INTR: PART_MASTER = 1
  CHAR: MULTIPASS_OPTION = None
END

PART: PARTITIONING TYPE,Directional Recursive Coordinate Bisection
  CHAR: PART_TYPE = DIRRECCRDBIS

  CASE: {SourceDir}/{MmsName}/PART_WEIGHTS
  IS: *DIR*
    CHAR: PART_WEIGHTS/VALUE, PART_WEIGHTS
  ENDCASE

  CASE: {SourceDir}/{MmsName}/PROJ_CTRL
  IS: *DIR*
    COPDIR: PROJ_CTRL
    ENDDIR
  ENDCASE

  INTR: PART_MASTER = 1

  INTR: LEVEL_MAX = 3

  INTR: NRES = 2
  CHAR: MULTIPASS_OPTION = None
END

PART: PARTITIONING TYPE,Junction Box
  CHAR: PART_TYPE = JCTBOX

  CASE: {SourceDir}/{MmsName}/PART_WEIGHTS
  IS: *DIR*
    CHAR: PART_WEIGHTS/VALUE, PART_WEIGHTS
  ENDCASE

  INTR: PART_MASTER = 1
  CHAR: ROUTINE_NAME = DUMMY
  LOGL: LGRAPH = .FALSE.
  CHAR: MULTIPASS_OPTION = None
END


PART: PARTITIONING TYPE,MeTiS
  CHAR: PART_TYPE = METIS

  CASE: {SourceDir}/{MmsName}/METIS_TYPE
  IS: k-way
    CHAR: dummy, METIS_TYPE = KWAY
  IS: recursive bisection
    CHAR: dummy, METIS_TYPE = RECBIS
  ELSE
    MESAGE: Unknown PARTITIONING TYPE/MeTiS Type
    EXIT
  ENDCASE

  CASE: {SourceDir}/{MmsName}/PART_WEIGHTS
  IS: *DIR*
    CHAR: PART_WEIGHTS/VALUE, PART_WEIGHTS
  ENDCASE

  INTR: PART_MASTER = 1
  CHAR: MULTIPASS_OPTION = None
END

PART: PARTITIONING TYPE,Optimized Recursive Coordinate Bisection
  CHAR: PART_TYPE = OPTRECCRDBIS

  CASE: {SourceDir}/{MmsName}/PART_WEIGHTS
  IS: *DIR*
    CHAR: PART_WEIGHTS/VALUE, PART_WEIGHTS
  ENDCASE

  CASE: {SourceDir}/{MmsName}/PROJ_CTRL
  IS: *DIR*
    COPDIR: PROJ_CTRL
    ENDDIR
  ENDCASE

  INTR: PART_MASTER = 1
  CHAR: MULTIPASS_OPTION = None
END

PART: PARTITIONING TYPE,Radial
  CHAR: PART_TYPE = RADDIR

  CASE: {SourceDir}/{MmsName}/PART_WEIGHTS
  IS: *DIR*
    CHAR: PART_WEIGHTS/VALUE, PART_WEIGHTS
  ENDCASE

  // Pass through the rotation axis if it exists
  CASE:{SourceDir}/{MmsName}/AXIS
  IS: *DIR*
    COPDIR: AXIS
    ENDDIR
  IS: *NONE*
    MESAGE: Missing rotation axis specification
    EXIT
  ENDCASE

  INTR: PART_MASTER = 1
  CHAR: MULTIPASS_OPTION = None
END

PART: PARTITIONING TYPE,Recursive Coordinate Bisection
  CHAR: PART_TYPE = RECCRDBIS

  CASE: {SourceDir}/{MmsName}/PART_WEIGHTS
  IS: *DIR*
    CHAR: PART_WEIGHTS/VALUE, PART_WEIGHTS
  ENDCASE

  CASE: {SourceDir}/{MmsName}/PROJ_CTRL
  IS: *DIR*
    COPDIR: PROJ_CTRL
    ENDDIR
  ENDCASE

  INTR: PART_MASTER = 1
  CHAR: MULTIPASS_OPTION = None
END

PART: PARTITIONING TYPE,Simple Assignment
  CHAR: PART_TYPE = ASSIGN

  CASE: {SourceDir}/{MmsName}/PART_WEIGHTS
  IS: *DIR*
    CHAR: PART_WEIGHTS/VALUE, PART_WEIGHTS
  ENDCASE

  INTR: PART_MASTER = 1
  CHAR: MULTIPASS_OPTION = None
END

PART: PARTITIONING TYPE,User Specified Direction
  CHAR: PART_TYPE = USRDIR

  CASE: {SourceDir}/{MmsName}/PART_WEIGHTS
  IS: *DIR*
    CHAR: PART_WEIGHTS/VALUE, PART_WEIGHTS
  ENDCASE

  CASE: {SourceDir}/{MmsName}/PART_DIR
  IS: *DIR*
    CHAR: PART_DIR/VALUE, PART_DIR
  ENDCASE

  INTR: PART_MASTER = 1
  CHAR: MULTIPASS_OPTION = None
END

///////////////////////////////////////////////////////////////////////////////
//   LIBRARY data area
///////////////////////////////////////////////////////////////////////////////

LIBRARY: ADDITIONAL VARIABLE, Definition
  // Copy across complete directory.
  //
  // Catalogue its name in ../CADV(NADV).
  //
  COPDIR: .,/FLOW/PHYSICS/MODELS/ADV/{AddVar}
    CATLG: ADV
    CASE: /FLOW/PHYSICS/MODELS/ADV/{AddVar}/TENSOR_TYPE
    IS: SCALAR
      INTR: NCOMPT = 1
    IS: VECTOR
      INTR: NCOMPT = 3
    IS: *NONE*
      INTR: NCOMPT = 1
      CHAR: TENSOR_TYPE = SCALAR
    ELSE:
      MESAGE: Unknown Tensor Type for VARIABLE {Alias}
      EXIT
    ENDCASE
  ENDDIR
END

LIBRARY: CEL
  COPDIR: CBCK_ORDER_LIST, /FLOW/CEL/CBCK/CBCK_ORDER_LIST
  ENDDIR
END

LIBRARY: COORDINATE FRAME DEFINITIONS
  FOR: CoordDef = {CoordFrameList}
    COPDIR: {CoordDef}, ../FRAMES/{CoordDef}
      CATLG: COORD
      CASE: {SourceDir}/{MmsName}/{CoordDef}/MOTION
      IS: *NONE*
        MAKDIR: MOTION
          CHAR: OPTION = Stationary
        ENDDIR
      ENDCASE
    ENDDIR
  ENDFOR
END

LIBRARY: EQUATION DEFINITIONS
  // Rename automatic ALIAS so that
  //   ALIAS       becomes the  Long Name (GUI name)
  //   SHORT_ALIAS becomes the Short Name (CCL name)
  //
  FOR: EqnDef = {EquationList}
    COPDIR: {EqnDef}, EQUATIONS/{EqnDef}
      CATLG: EQN
    ENDDIR
    RENAM: /FLOW/PHYSICS/MODELS/EQUATIONS/{EqnDef}/ALIAS, \
           /FLOW/PHYSICS/MODELS/EQUATIONS/{EqnDef}/SHORT_ALIAS
    RENAM: /FLOW/PHYSICS/MODELS/EQUATIONS/{EqnDef}/LONG_ALIAS, \
           /FLOW/PHYSICS/MODELS/EQUATIONS/{EqnDef}/ALIAS
  ENDFOR
END

LIBRARY: FUNCTION, CallBack
  COPDIR: ., CBCK/{Function}
    CATLG: FUNC
  ENDDIR
END

LIBRARY: FUNCTION, Interpolation
END

LIBRARY: FUNCTION, Profile Data
  COPDIR: ., PROF/{Function}
    CATLG: FUNC
  ENDDIR
END

LIBRARY: FUNCTION, User Function
END

LIBRARY: HYBRID ORDER OPTION, Definition  
  COPDIR: .,/FLOW/PHYSICS/MODELS/HYBORD/{HybOpt}
    CATLG: HYBOPT
  ENDDIR
END



LIBRARY: MATERIAL, Fixed Composition Mixture

  COPDIR: ., /FLOW/PHYSICS/MATERIALS/{Material}

    CATLG: MAT  // NB: should be MT for consistent automation
    CHAR: TYPE = MIXTURE_F
    //
    // Set thermodynamic state if it's there
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/THPHASE
    IS: Solid
      CHAR: STATE = S
    IS: Liquid
      CHAR: STATE = L
    IS: Gas
      CHAR: STATE = G
    ELSE
      CHAR: STATE = U
    ENDCASE
    // 
    // Explicitly specified mixture properties
    //
    // Density and related values (by parameter)
    //
    FOR: Property = DENSITY, \
                    DRHODP_H, \
                    DRHODP_S, \
                    DRHODP_T, \
                    SNDSPD
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}, \
            /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/OPTION, \
            /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}/OPTION 
      IS: *DIR*, Ideal Mixture, *NONE*
        COPDIR: PROPERTIES/{Property}, {Property}
          CATLG: PROP
        ENDDIR
      ENDCASE
    ENDFOR
    //
    // Density by singleton
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/DENSITY/DENSITY, \
          /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/DENSITY/OPTION
      IS: *DIR*, Value
        COPDIR: PROPERTIES/DENSITY/DENSITY, DENSITY
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/WMOL, WMOL
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/DENSITY/OPTION, DENSITY/OPTION
      IS: *NONE*, Ideal Gas
        COPDIR: PROPERTIES/DENSITY, DENSITY
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/WMOL, WMOL
          CATLG: PROP
        ENDDIR
        DELDIR: /FLOW/PHYSICS/MATERIALS/{Material}/DENSITY/WMOL
      IS: *DIR*, Mixture Density
        COPDIR: PROPERTIES/DENSITY/DENSITY, DENSITY
          CATLG: PROP
          CHAR: PROPERTIES/DENSITY/OPTION, OPTION
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/DRHODP_T, DRHODP_T
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/DRHODP_H, DRHODP_H
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/DRHODT_P, DRHODT_P
          CATLG: PROP
        ENDDIR
        DELDIR: /FLOW/PHYSICS/MATERIALS/{Material}/DENSITY/WMOL
    ENDCASE
    //
    // Specific heat by parameter
    // 
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT, \
          /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT/OPTION
    IS: *DIR*, *NONE*
      COPDIR: PROPERTIES/SPHEAT, SPHEATP
        CATLG: PROP
      ENDDIR
    ENDCASE
    //
    //  Specific heat by singleton
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT/SPHEAT, \
          /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT/OPTION, \ 
          /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT/TYPE
      IS: *DIR*, Value, Constant Pressure
        COPDIR: PROPERTIES/SPHEAT/SPHEAT, SPHEATP
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/SPHEAT/OPTION, SPHEATP/OPTION
      IS: *DIR*, Value, Constant Volume
        COPDIR: PROPERTIES/SPHEAT/SPHEAT, SPHEATV
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/SPHEAT/OPTION, SPHEATV/OPTION
      IS: *DIR*, Value, *NONE*
        COPDIR: PROPERTIES/SPHEAT/SPHEAT, SPHEATP
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/SPHEAT/OPTION, SPHEATP/OPTION
      IS: *NONE*, NASA Format, *NONE*
        COPDIR: PROPERTIES/SPHEAT, SPHEATP
          CATLG: PROP
        ENDDIR
    ENDCASE
    FOR: Property = TREF, \
                    PREF, \
                    ENTHREF, \
                    ENTRREF
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT/{Property}
        IS: *DIR*
          COPDIR: PROPERTIES/SPHEAT/{Property},{Property}
            CATLG: AUX_PROP
          ENDDIR
      ENDCASE
    ENDFOR
    //
    // Reference State values in their own singleton
    //
    FOR: Property = TREF, \
                    PREF, \
                    ENTHREF, \
                    ENTRREF
      CASE: {SourceDir}/{MmsName}/PROPERTIES/REFSTATE/{Property}
        IS: *DIR*
          COPDIR: PROPERTIES/REFSTATE/{Property},{Property}
            CATLG: AUX_PROP
          ENDDIR
      ENDCASE
    ENDFOR
    //
    // Other properties 
    //
    FOR: Property = VISCDYN, \
                    CONDUCT, \
                    THERMX, \
                    CONELEC, \
                    ELASMOD, \
                    POISSON, \
                    PERMELEC, \
                    PERMMAG, \
                    WMOL, \
                    ABSORP, \
                    SCATTER, \
                    REFRAC
      //
      // Property specified by a parameter
      //
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}, \
            /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}/OPTION
      IS: *DIR*, *NONE*
        COPDIR: PROPERTIES/{Property}, {Property}
          CATLG: PROP
        ENDDIR
      ENDCASE
      //
      // Property specified in a singleton
      //
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}/{Property}\
, \
            /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}/OPTION
        IS: *DIR*, Value
          COPDIR: PROPERTIES/{Property}/{Property}, {Property}
            CATLG: PROP
          ENDDIR
        IS: *DIR*, Non Newtonian Model
          COPDIR: PROPERTIES/{Property}/{Property}, {Property}
            CATLG: PROP
          ENDDIR
        IS: *DIR*, Kinetic Theory Model
          COPDIR: PROPERTIES/{Property}/{Property}, {Property}
            CATLG: PROP
          ENDDIR
        IS: *DIR*, Orthotropic Cylindrical Components
          COPDIR: PROPERTIES/{Property}/{Property}, {Property}
            CATLG: PROP
            CHAR: PROPERTIES/{Property}/OPTION, OPTION
          ENDDIR
          COPDIR: PROPERTIES/{Property}/AXIS, {Property}/AXIS
          ENDDIR
        IS: *DIR*, Orthotropic Cartesian Components
          COPDIR: PROPERTIES/{Property}/{Property}, {Property}
            CATLG: PROP
            CHAR: PROPERTIES/{Property}/OPTION, OPTION
          ENDDIR
        IS: *NONE*, Anisotropic Components
          COPDIR: PROPERTIES/{Property}/VALUE, {Property}
            CATLG: PROP
            CHAR: PROPERTIES/{Property}/OPTION, OPTION
          ENDDIR
        IS: *NONE*, Sutherlands Formula
          COPDIR: PROPERTIES/{Property}, {Property}
            CATLG: PROP
          ENDDIR
      ENDCASE
    ENDFOR
    // 
    // Top level table generation controls
    //
    FOR: Property = TABSMIN, \
                    TABSMAX, \
                    PABSMIN, \
                    PABSMAX, \
                    TABERR
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/TABGEN/{Property}
      IS: *DIR*
        COPDIR: PROPERTIES/TABGEN/{Property}, {Property}
          CATLG: AUX_PROP
        ENDDIR
      ENDCASE
    ENDFOR
    LOGL: PROPERTIES/TABGEN/TABTEXT, TABTEXT
    LOGL: PROPERTIES/TABGEN/TABPEXT, TABPEXT
    INTR: PROPERTIES/TABGEN/TABPTS,  TABPTS
    // 
    // Enthalpy table generation controls
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/ENTHSTAT
    IS: *DIR*
      MAKDIR: ENTHSTAT
        CATLG: PROP
      ENDDIR
    ENDCASE
    FOR: Property = TABSMIN, \
                    TABSMAX, \
                    PABSMIN, \
                    PABSMAX, \
                    TABERR
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/ENTHSTAT/TABGEN/{Prop\
erty}
      IS: *DIR*
        COPDIR: PROPERTIES/ENTHSTAT/TABGEN/{Property}, ENTHSTAT/{Property}
        ENDDIR
      ENDCASE
    ENDFOR
    LOGL: PROPERTIES/ENTHSTAT/TABGEN/TABTEXT, ENTHSTAT/TABTEXT
    LOGL: PROPERTIES/ENTHSTAT/TABGEN/TABPEXT, ENTHSTAT/TABPEXT
    INTR: PROPERTIES/ENTHSTAT/TABGEN/TABPTS,  ENTHSTAT/TABPTS
    // 
    // Entropy table generation controls
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/ENTROPY
    IS: *DIR*
      MAKDIR: ENTROPY
        CATLG: PROP
      ENDDIR
    ENDCASE
    FOR: Property = TABSMIN, \
                    TABSMAX, \
                    PABSMIN, \
                    PABSMAX, \
                    TABERR
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/ENTROPY/TABGEN/{Prope\
rty}
      IS: *DIR*
        COPDIR: PROPERTIES/ENTROPY/TABGEN/{Property}, ENTROPY/{Property}
        ENDDIR
      ENDCASE
    ENDFOR
    LOGL: PROPERTIES/ENTROPY/TABGEN/TABTEXT, ENTROPY/TABTEXT
    LOGL: PROPERTIES/ENTROPY/TABGEN/TABPEXT, ENTROPY/TABPEXT
    LOGL: PROPERTIES/ENTROPY/TABGEN/CHKSTAB, CHKSTAB
    INTR: PROPERTIES/ENTROPY/TABGEN/TABPTS,  ENTROPY/TABPTS
          
    //
    // Auxiliary Quantities specified by parameters (old style)
    //
    FOR: Property = TABSMIN, \
                    TABSMAX, \
                    TREF, \
                    PABSMIN, \
                    PABSMAX, \
                    PREF, \
                    ENTHREF, \
                    ENTRREF
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}
      IS: *DIR*
        COPDIR: PROPERTIES/{Property}, {Property}
          CATLG: AUX_PROP
        ENDDIR
      ENDCASE
    ENDFOR

    // Delete propreties directory, no longer needed.
    DELDIR: PROPERTIES

  ENDDIR

END

LIBRARY: MATERIAL, Homogeneous Binary Mixture

  MAKDIR: /FLOW/PHYSICS/MATERIALS/{Material}

    CATLG: MAT  
    CHAR: TYPE = MIXTURE_B
    CHAR: STATE = U
    CHAR: ALIAS
    RENAM: {SourceDir}/{MmsName}/COMLS, COMLS
    RENAM: {SourceDir}/{MmsName}/COMLS2, COMLS2

    // Add saturation data table options, if they exist
    CHAR: SATPROP/TABFORM, TABFORM
    CHAR: SATPROP/TABNAME, TABNAME
    CHAR: SATPROP/COMPNAME, COMPNAME
    CHAR: SATPROP/OPTION, OPTION

    // Copy auxiliary quantities specified in CCL
    // These are are catalogued in CAUX_PROP
    FOR: Property = TSATMIN, \
                    TSATMAX

      CASE: {SourceDir}/{MmsName}/SATPROP/{Property}
      IS: *DIR*
        COPDIR: SATPROP/{Property}, {Property}
          CATLG: AUX_PROP
        ENDDIR
      ENDCASE
    ENDFOR

    // Copy saturation temperature if specified
    CASE: {SourceDir}/{MmsName}/SATPROP/TEMPERATURE
    IS: *DIR*
      COPDIR: SATPROP/TEMPERATURE/TEMP, TSAT
        CATLG: PROP
      ENDDIR
    ENDCASE

    // Copy saturation pressure if specified
    CASE: {SourceDir}/{MmsName}/SATPROP/PRESSURE
    IS: *DIR*
      COPDIR: SATPROP/PRESSURE/PABS, PSAT
        CATLG: PROP
      ENDDIR
      CHAR: SATPROP/PRESSURE/OPTION, PSAT/OPTION
    ENDCASE

    // Copy Antoine coefficients if specified
    FOR: Antoine = ANTOINE_PREF, \
                   ANTOINE_A, \
                   ANTOINE_B, \
                   ANTOINE_C

      CASE: {SourceDir}/{MmsName}/SATPROP/PRESSURE/{Antoine}
      IS: *DIR*
        COPDIR: SATPROP/PRESSURE/{Antoine}, PSAT/{Antoine}
        ENDDIR
      ENDCASE
    ENDFOR
    // 
    // Top level table generation controls
    //
    FOR: Property = TABSMIN, \
                    TABSMAX, \
                    PABSMIN, \
                    PABSMAX, \
                    TABERR
      CASE: {SourceDir}/{MmsName}/SATPROP/TABGEN/{Property}
      IS: *DIR*
        COPDIR: SATPROP/TABGEN/{Property}, {Property}
          CATLG: AUX_PROP
        ENDDIR
      ENDCASE
    ENDFOR
    LOGL: {SourceDir}/{MmsName}/SATPROP/TABGEN/TABTEXT, TABTEXT
    LOGL: {SourceDir}/{MmsName}/SATPROP/TABGEN/TABPEXT, TABPEXT
    INTR: {SourceDir}/{MmsName}/SATPROP/TABGEN/TABPTS,  TABPTS
    //
    // Auxiliary parameters (Pressure newton iteration control)
    //
    FOR: Parameter = S2PMAP_ERRABS, \
                     S2PMAP_URF
      CASE: {SourceDir}/{MmsName}/{Parameter}
      IS: *DIR*
        COPDIR: {Parameter}, {Parameter}
        ENDDIR
      ENDCASE
    ENDFOR
    FOR: Parameter = S2PMAP_MAXIT
      INTR: {SourceDir}/{MmsName}/{Parameter},{Parameter}
    ENDFOR
  ENDDIR

END

LIBRARY: MATERIAL, Hydrocarbon Fuel

  COPDIR: ., /FLOW/PHYSICS/MATERIALS/{Material}
    CATLG: MAT  // NB: should be MT for consistent automation
    CHAR: TYPE = MIXTURE_V
    //
    // Set thermodynamic state if it's there
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/THPHASE
    IS: Solid
      CHAR: STATE = S
    IS: Liquid
      CHAR: STATE = L
    IS: Gas
      CHAR: STATE = G
    ELSE
      CHAR: STATE = U
    ENDCASE
    // 
    // Explicitly specified mixture properties
    //
    // Density and related values (by parameter)
    //
    FOR: Property = DENSITY, \
                    DRHODP_H, \
                    DRHODP_S, \
                    DRHODP_T, \
                    SNDSPD
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}, \
            /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/OPTION, \
            /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}/OPTION 
      IS: *DIR*, Ideal Mixture, *NONE*
        COPDIR: PROPERTIES/{Property}, {Property}
          CATLG: PROP
        ENDDIR
      ENDCASE
    ENDFOR
    //
    // Density by singleton
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/DENSITY/DENSITY, \
          /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/DENSITY/OPTION
      IS: *DIR*, Value
        COPDIR: PROPERTIES/DENSITY/DENSITY, DENSITY
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/WMOL, WMOL
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/DENSITY/OPTION, DENSITY/OPTION
      IS: *NONE*, Ideal Gas
        COPDIR: PROPERTIES/DENSITY, DENSITY
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/WMOL, WMOL
          CATLG: PROP
        ENDDIR
        DELDIR: /FLOW/PHYSICS/MATERIALS/{Material}/DENSITY/WMOL
    ENDCASE
    //
    // Specific heat by parameter
    // 
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT, \
          /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT/OPTION
    IS: *DIR*, *NONE*
      COPDIR: PROPERTIES/SPHEAT, SPHEATP
        CATLG: PROP
      ENDDIR
    ENDCASE
    //
    //  Specific heat by singleton
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT/SPHEAT, \
          /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT/OPTION, \ 
          /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT/TYPE
      IS: *DIR*, Value, Constant Pressure
        COPDIR: PROPERTIES/SPHEAT/SPHEAT, SPHEATP
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/SPHEAT/OPTION, SPHEATP/OPTION
      IS: *DIR*, Value, Constant Volume
        COPDIR: PROPERTIES/SPHEAT/SPHEAT, SPHEATV
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/SPHEAT/OPTION, SPHEATV/OPTION
      IS: *DIR*, Value, *NONE*
        COPDIR: PROPERTIES/SPHEAT/SPHEAT, SPHEATP
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/SPHEAT/OPTION, SPHEATP/OPTION
      IS: *NONE*, NASA Format, *NONE*
        COPDIR: PROPERTIES/SPHEAT, SPHEATP
          CATLG: PROP
        ENDDIR
    ENDCASE
    FOR: Property = TREF, \
                    PREF, \
                    ENTHREF, \
                    ENTRREF
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT/{Property}
        IS: *DIR*
          COPDIR: PROPERTIES/SPHEAT/{Property},{Property}
            CATLG: AUX_PROP
          ENDDIR
      ENDCASE
    ENDFOR
    //
    // Other properties 
    //
    FOR: Property = VISCDYN, \
                    CONDUCT, \
                    THERMX, \
                    CONELEC, \
                    ELASMOD, \
                    POISSON, \
                    PERMELEC, \
                    PERMMAG, \
                    WMOL, \
                    ABSORP, \
                    SCATTER, \
                    REFRAC
    // Check if property specified by a parameter
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}, \
            /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}/OPTION
      IS: *DIR*, *NONE*
        COPDIR: PROPERTIES/{Property}, {Property}
          CATLG: PROP
        ENDDIR
      ENDCASE
    // Check if property specified by a built in recipe
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}, \
            /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}/HOW, \
            /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}/{Property}\
/HOW
        IS: *DIR*, *NONE*, *NONE*
          COPDIR: PROPERTIES/{Property}, {Property}
            CATLG: PROP
          ENDDIR
      ENDCASE
    // Check for value specified by a parameter
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}/{Property}\
, \
            /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}/OPTION
        IS: *DIR*, Value
          COPDIR: PROPERTIES/{Property}/{Property}, \
                 {Property}
            CATLG: PROP
          ENDDIR
      ENDCASE
    ENDFOR
    // 
    // Top level table generation controls
    //
    FOR: Property = TABSMIN, \
                    TABSMAX, \
                    PABSMIN, \
                    PABSMAX, \
                    TABERR
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/TABGEN/{Property}
      IS: *DIR*
        COPDIR: PROPERTIES/TABGEN/{Property}, {Property}
          CATLG: AUX_PROP
        ENDDIR
      ENDCASE
    ENDFOR
    LOGL: PROPERTIES/TABGEN/TABTEXT, TABTEXT
    LOGL: PROPERTIES/TABGEN/TABPEXT, TABPEXT
    INTR: PROPERTIES/TABGEN/TABPTS,  TABPTS
    // 
    // Enthalpy table generation controls
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/ENTHSTAT
    IS: *DIR*
      MAKDIR: ENTHSTAT
        CATLG: PROP
      ENDDIR
    ENDCASE
    FOR: Property = TABSMIN, \
                    TABSMAX, \
                    PABSMIN, \
                    PABSMAX, \
                    TABERR
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/ENTHSTAT/TABGEN/{Prop\
erty}
      IS: *DIR*
        COPDIR: PROPERTIES/ENTHSTAT/TABGEN/{Property}, ENTHSTAT/{Property}
        ENDDIR
      ENDCASE
    ENDFOR
    LOGL: PROPERTIES/ENTHSTAT/TABGEN/TABTEXT, ENTHSTAT/TABTEXT
    LOGL: PROPERTIES/ENTHSTAT/TABGEN/TABPEXT, ENTHSTAT/TABPEXT
    INTR: PROPERTIES/ENTHSTAT/TABGEN/TABPTS,  ENTHSTAT/TABPTS
    // 
    // Entropy table generation controls
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/ENTROPY
    IS: *DIR*
      MAKDIR: ENTROPY
        CATLG: PROP
      ENDDIR
    ENDCASE
    FOR: Property = TABSMIN, \
                    TABSMAX, \
                    PABSMIN, \
                    PABSMAX, \
                    TABERR
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/ENTROPY/TABGEN/{Prope\
rty}
      IS: *DIR*
        COPDIR: PROPERTIES/ENTROPY/TABGEN/{Property}, ENTROPY/{Property}
        ENDDIR
      ENDCASE
    ENDFOR
    LOGL: PROPERTIES/ENTROPY/TABGEN/TABTEXT, ENTROPY/TABTEXT
    LOGL: PROPERTIES/ENTROPY/TABGEN/TABPEXT, ENTROPY/TABPEXT
    LOGL: PROPERTIES/ENTROPY/TABGEN/CHKSTAB, CHKSTAB
    INTR: PROPERTIES/ENTROPY/TABGEN/TABPTS,  ENTROPY/TABPTS
          
    //
    // Auxiliary Quantities specified by parameters (old style)
    //
    FOR: Property = TABSMIN, \
                    TABSMAX, \
                    TREF, \
                    PABSMIN, \
                    PABSMAX, \
                    PREF, \
                    ENTHREF, \
                    ENTRREF
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}
      IS: *DIR*
        COPDIR: PROPERTIES/{Property}, {Property}
          CATLG: AUX_PROP
        ENDDIR
      ENDCASE
    ENDFOR

    // Delete propreties directory, no longer needed.
    DELDIR: PROPERTIES

  ENDDIR

  // Rename ACTIVE_COMLS(NACTIVE_COMLS) -> COMLS(NCOMLS)
  CASE: /FLOW/PHYSICS/MATERIALS/{Material}/NACTIVE_COMLS
  IS: *NONE*
  IS: 1
  IS: 0
  ELSE:
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/COMLS,         /FLOW/PHYSICS/MATE\
RIALS/{Material}/USER_COMLS
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/ALIAS_COMLS,   /FLOW/PHYSICS/MATE\
RIALS/{Material}/USER_ALIAS_COMLS
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/ACTIVE_COMLS,      /FLOW/PHYSICS/\
MATERIALS/{Material}/COMLS
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/ACTIVE_COMPONENTS, /FLOW/PHYSICS/\
MATERIALS/{Material}/ALIAS_COMLS
  ENDCASE

  // Rename ACTIVE_RCLS(NACTIVE_RCLS) -> RCLS(NRCLS)
  CASE: /FLOW/PHYSICS/MATERIALS/{Material}/NACTIVE_RCLS
  IS: *NONE*
  IS: 1
  IS: 0
  ELSE:
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/RCLS,        /FLOW/PHYSICS/MATERI\
ALS/{Material}/USER_RCLS
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/ALIAS_RCLS,  /FLOW/PHYSICS/MATERI\
ALS/{Material}/USER_ALIAS_RCLS
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/ACTIVE_RCLS,      /FLOW/PHYSICS/M\
ATERIALS/{Material}/RCLS
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/ACTIVE_REACTIONS, /FLOW/PHYSICS/M\
ATERIALS/{Material}/ALIAS_RCLS
  ENDCASE

END

LIBRARY: MATERIAL, Pure Substance

  MAKDIR:/FLOW/PHYSICS/MATERIALS/{Material}

    CATLG: MAT  // NB: should be MT for consistent automation
    CHAR: TYPE = PURE
    CHAR: ALIAS

    // DESCRIPTION and LONG_ALIAS are used for matching materials
    // in flamelet libraries.
    CHAR: DESCRIPTION
    CHAR: LONG_ALIAS

    CHAR: THPHASE
    CHAR: PROPERTIES/OPTION, OPTION

    // Add table options, if they exist
    CHAR: PROPERTIES/TABFORM, TABFORM
    CHAR: PROPERTIES/TABNAME, TABNAME
    CHAR: PROPERTIES/COMPNAME, COMPNAME
    CHAR: PROPERTIES/RGPLOPT, RGPLOPT
    //
    // Translate properties specified using parameters
    //
    // 
    // Density and related properties (non-ideal gases)
    //
    FOR: Property = DENSITY, \
                    DRHODP_H, \
                    DRHODP_S, \
                    DRHODP_T, \
                    SNDSPD
      CASE: {SourceDir}/{MmsName}/PROPERTIES/{Property}, \
            {SourceDir}/{MmsName}/PROPERTIES/OPTION, \
            {SourceDir}/{MmsName}/PROPERTIES/{Property}/OPTION 
      IS: *DIR*, General Fluid, *NONE*
        COPDIR: PROPERTIES/{Property}, {Property}
          CATLG: PROP
        ENDDIR
      IS: *DIR*, General Material, *NONE*
        COPDIR: PROPERTIES/{Property}, {Property}
          CATLG: PROP
        ENDDIR
      IS: *DIR*, Solid, *NONE*
        COPDIR: PROPERTIES/{Property}, {Property}
          CATLG: PROP
        ENDDIR
      IS: *DIR*, Table, *NONE*
        COPDIR: PROPERTIES/{Property}, {Property}
          CATLG: PROP
        ENDDIR
      ENDCASE
    ENDFOR
    //
    // Specific Heat Capacity at Constant Pressure
    // 
    CASE: {SourceDir}/{MmsName}/PROPERTIES/SPHEAT, \
          {SourceDir}/{MmsName}/PROPERTIES/SPHEAT/OPTION
    IS: *DIR*, *NONE*
      COPDIR: PROPERTIES/SPHEAT, SPHEATP
        CATLG: PROP
      ENDDIR
    ENDCASE
    //
    // All remaining properies
    //
    FOR: Property = VISCDYN, \
                    CONDUCT, \
                    THERMX, \
                    CONELEC, \
                    PERMELEC, \
                    PERMMAG, \
                    ELASMOD, \
                    POISSON, \
                    WMOL, \
                    ABSORP, \
                    SCATTER, \
                    REFRAC, \
		    EMIS
      CASE: {SourceDir}/{MmsName}/PROPERTIES/{Property}, \
            {SourceDir}/{MmsName}/PROPERTIES/{Property}/OPTION
      IS: *DIR*, *NONE*
        COPDIR: PROPERTIES/{Property}, {Property}
          CATLG: PROP
        ENDDIR
      ENDCASE
    ENDFOR
    //
    // Auxiliary properties
    // 
    FOR: Property = TABSMIN, \
                    TABSMAX, \
                    PABSMIN, \
                    PABSMAX, \
                    TREF, \
                    PREF, \
                    ENTHREF, \
                    ENTRREF
      CASE: {SourceDir}/{MmsName}/PROPERTIES/{Property}
      IS: *DIR*
        COPDIR: PROPERTIES/{Property}, {Property}
          CATLG: AUX_PROP
        ENDDIR
      ENDCASE
    ENDFOR
    //
    // Auxiliary parameters
    //
    FOR: Parameter = HTABERR, \
                     STABERR, \
                     H2TMAP_ERRABS, \
                     H2TMAP_URF, \
                     S2PMAP_ERRABS, \
                     S2PMAP_URF
      CASE: {SourceDir}/{MmsName}/PROPERTIES/{Parameter}
      IS: *DIR*
        COPDIR: PROPERTIES/{Parameter}, {Parameter}
        ENDDIR
      ENDCASE
    ENDFOR
    FOR: Parameter = HTABPTS, \
                     STABPTS, \
                     H2TMAP_MAXIT, \
                     S2PMAP_MAXIT
      INTR: {SourceDir}/{MmsName}/PROPERTIES/{Parameter},{Parameter}
    ENDFOR
    FOR: Parameter = CHKSTAB, \
                     HTAB_TEXT, \
                     HTAB_PEXT, \
                     STAB_TEXT, \
                     STAB_PEXT
      LOGL: {SourceDir}/{MmsName}/PROPERTIES/{Parameter},{Parameter}
    ENDFOR
    //
    // Check for properties specified inside singletons 
    //
    // Density
    //
    CASE: {SourceDir}/{MmsName}/PROPERTIES/DENSITY/DENSITY, \
          {SourceDir}/{MmsName}/PROPERTIES/DENSITY/OPTION
      IS: *DIR*, Value
        COPDIR: PROPERTIES/DENSITY/DENSITY, DENSITY
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/WMOL, WMOL
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/DENSITY/OPTION, DENSITY/OPTION
      IS: *NONE*, Ideal Gas
        COPDIR: PROPERTIES/DENSITY, DENSITY
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/WMOL, WMOL
          CATLG: PROP
        ENDDIR
        DELDIR: /FLOW/PHYSICS/MATERIALS/{Material}/DENSITY/WMOL
      IS: *NONE*, Real Gas
        COPDIR: PROPERTIES/DENSITY, DENSITY
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/WMOL, WMOL
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/PABSCRT, PABSCRT
          CATLG: AUX_PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/TABSCRT, TABSCRT
          CATLG: AUX_PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/VABSCRT, VABSCRT
          CATLG: AUX_PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/ACFACT, ACFACT
          CATLG: AUX_PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/TBOIL, TBOIL
          CATLG: AUX_PROP
        ENDDIR
        DELDIR: /FLOW/PHYSICS/MATERIALS/{Material}/DENSITY/WMOL
        DELDIR: /FLOW/PHYSICS/MATERIALS/{Material}/DENSITY/PABSCRT
        DELDIR: /FLOW/PHYSICS/MATERIALS/{Material}/DENSITY/TABSCRT
        DELDIR: /FLOW/PHYSICS/MATERIALS/{Material}/DENSITY/VABSCRT
        DELDIR: /FLOW/PHYSICS/MATERIALS/{Material}/DENSITY/ACFACT
        DELDIR: /FLOW/PHYSICS/MATERIALS/{Material}/DENSITY/TBOIL
    ENDCASE
    //
    // Specific Heat Capacity and Reference State Values
    //
    CASE: {SourceDir}/{MmsName}/PROPERTIES/SPHEAT/SPHEAT, \
          {SourceDir}/{MmsName}/PROPERTIES/SPHEAT/OPTION, \ 
          {SourceDir}/{MmsName}/PROPERTIES/SPHEAT/TYPE
      IS: *DIR*, Value, Constant Pressure
        COPDIR: PROPERTIES/SPHEAT/SPHEAT, SPHEATP
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/SPHEAT/OPTION, SPHEATP/OPTION
      IS: *DIR*, Value, Constant Volume
        COPDIR: PROPERTIES/SPHEAT/SPHEAT, SPHEATV
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/SPHEAT/OPTION, SPHEATV/OPTION
      IS: *DIR*, Value, *NONE*
        COPDIR: PROPERTIES/SPHEAT/SPHEAT, SPHEATP
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/SPHEAT/OPTION, SPHEATP/OPTION
      IS: *NONE*, NASA Format, *NONE*
        COPDIR: PROPERTIES/SPHEAT, SPHEATP
          CATLG: PROP
        ENDDIR
      IS: *NONE*, Zero Pressure Polynomial, *NONE*
        COPDIR: PROPERTIES/SPHEAT, SPHEATP
          CATLG: PROP
        ENDDIR
      IS: *NONE*, Real Gas, *NONE*
        COPDIR: PROPERTIES/SPHEAT, SPHEATP
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/SPHEAT/SPHEATP0, SPHEATP0
        ENDDIR
        DELDIR: /FLOW/PHYSICS/MATERIALS/{Material}/SPHEATP/SPHEATP0
    ENDCASE
    FOR: Property = TREF, \
                    PREF, \
                    ENTHREF, \
                    ENTRREF
      CASE: {SourceDir}/{MmsName}/PROPERTIES/SPHEAT/{Property}
        IS: *DIR*
          COPDIR: PROPERTIES/SPHEAT/{Property},{Property}
            CATLG: AUX_PROP
          ENDDIR
      ENDCASE
    ENDFOR
    //
    // Reference State values in their own singleton
    //
    FOR: Property = TREF, \
                    PREF, \
                    ENTHREF, \
                    ENTRREF
      CASE: {SourceDir}/{MmsName}/PROPERTIES/REFSTATE/{Property}
        IS: *DIR*
          COPDIR: PROPERTIES/REFSTATE/{Property},{Property}
            CATLG: AUX_PROP
          ENDDIR
      ENDCASE
    ENDFOR
    // 
    // All remaining properties
    // 
    FOR: Property = VISCDYN, \
                    CONDUCT, \
                    THERMX, \
                    CONELEC, \
                    ELASMOD, \
                    POISSON, \
                    PERMELEC, \
                    PERMMAG, \
                    ABSORP, \
                    SCATTER, \
                    REFRAC
    // Check for value specified by a parameter(s)
      CASE: {SourceDir}/{MmsName}/PROPERTIES/{Property}/{Property}, \
            {SourceDir}/{MmsName}/PROPERTIES/{Property}/OPTION
        IS: *DIR*, Value
          COPDIR: PROPERTIES/{Property}/{Property}, {Property}
            CATLG: PROP
          ENDDIR
        IS: *DIR*, Non Newtonian Model
          COPDIR: PROPERTIES/{Property}/{Property}, {Property}
            CATLG: PROP
          ENDDIR
        IS: *DIR*, Kinetic Theory Model
          COPDIR: PROPERTIES/{Property}/{Property}, {Property}
            CATLG: PROP
          ENDDIR
        IS: *DIR*, Orthotropic Cylindrical Components
          COPDIR: PROPERTIES/{Property}/{Property}, {Property}
            CATLG: PROP
            CHAR: PROPERTIES/{Property}/OPTION, OPTION
          ENDDIR
          COPDIR: PROPERTIES/{Property}/AXIS, {Property}/AXIS
          ENDDIR
        IS: *DIR*, Orthotropic Cartesian Components
          COPDIR: PROPERTIES/{Property}/{Property}, {Property}
            CATLG: PROP
            CHAR: PROPERTIES/{Property}/OPTION, OPTION
          ENDDIR
        IS: *NONE*, Anisotropic Components
          COPDIR: PROPERTIES/{Property}/VALUE, {Property}
            CATLG: PROP
            CHAR: PROPERTIES/{Property}/OPTION, OPTION
          ENDDIR
        IS: *NONE*, Sutherlands Formula
          COPDIR: PROPERTIES/{Property}, {Property}
            CATLG: PROP
          ENDDIR
      ENDCASE
    ENDFOR
    // 
    // Top level table generation controls
    //
    FOR: Property = TABSMIN, \
                    TABSMAX, \
                    PABSMIN, \
                    PABSMAX, \
                    TABERR
      CASE: {SourceDir}/{MmsName}/PROPERTIES/TABGEN/{Property}
      IS: *DIR*
        COPDIR: PROPERTIES/TABGEN/{Property}, {Property}
          CATLG: AUX_PROP
        ENDDIR
      ENDCASE
    ENDFOR
    LOGL: {SourceDir}/{MmsName}/PROPERTIES/TABGEN/TABTEXT, TABTEXT
    LOGL: {SourceDir}/{MmsName}/PROPERTIES/TABGEN/TABPEXT, TABPEXT
    LOGL: {SourceDir}/{MmsName}/PROPERTIES/TABGEN/CHKSTAB, CHKSTAB
    INTR: {SourceDir}/{MmsName}/PROPERTIES/TABGEN/TABPTS,  TABPTS
    // 
    // Enthalpy table generation controls
    //
    CASE: {SourceDir}/{MmsName}/PROPERTIES/ENTHSTAT
    IS: *DIR*
      MAKDIR: ENTHSTAT
        CATLG: PROP
      ENDDIR
    ENDCASE
    FOR: Property = TABSMIN, \
                    TABSMAX, \
                    PABSMIN, \
                    PABSMAX, \
                    TABERR
      CASE: {SourceDir}/{MmsName}/PROPERTIES/ENTHSTAT/TABGEN/{Property}
      IS: *DIR*
        COPDIR: PROPERTIES/ENTHSTAT/TABGEN/{Property}, ENTHSTAT/{Property}
        ENDDIR
      ENDCASE
    ENDFOR
    LOGL: {SourceDir}/{MmsName}/PROPERTIES/ENTHSTAT/TABGEN/TABTEXT, \
          ENTHSTAT/TABTEXT
    LOGL: {SourceDir}/{MmsName}/PROPERTIES/ENTHSTAT/TABGEN/TABPEXT, \
          ENTHSTAT/TABPEXT
    INTR: {SourceDir}/{MmsName}/PROPERTIES/ENTHSTAT/TABGEN/TABPTS,  \
          ENTHSTAT/TABPTS
    // 
    // Entropy table generation controls
    //
    CASE: {SourceDir}/{MmsName}/PROPERTIES/ENTROPY
    IS: *DIR*
      MAKDIR: ENTROPY
        CATLG: PROP
      ENDDIR
    ENDCASE
    FOR: Property = TABSMIN, \
                    TABSMAX, \
                    PABSMIN, \
                    PABSMAX, \
                    TABERR
      CASE: {SourceDir}/{MmsName}/PROPERTIES/ENTROPY/TABGEN/{Property}
      IS: *DIR*
        COPDIR: PROPERTIES/ENTROPY/TABGEN/{Property}, ENTROPY/{Property}
        ENDDIR
      ENDCASE
    ENDFOR
    LOGL: {SourceDir}/{MmsName}/PROPERTIES/ENTROPY/TABGEN/TABTEXT, \
          ENTROPY/TABTEXT
    LOGL: {SourceDir}/{MmsName}/PROPERTIES/ENTROPY/TABGEN/TABPEXT, \
          ENTROPY/TABPEXT
    LOGL: {SourceDir}/{MmsName}/PROPERTIES/ENTROPY/TABGEN/CHKSTAB, \
          CHKSTAB
    INTR: {SourceDir}/{MmsName}/PROPERTIES/ENTROPY/TABGEN/TABPTS,  \
          ENTROPY/TABPTS
    
  ENDDIR
END

LIBRARY: MATERIAL, Reacting Mixture

  COPDIR: ., /FLOW/PHYSICS/MATERIALS/{Material}
    CATLG: MAT  // NB: should be MT for consistent automation
    CHAR: TYPE = MIXTURE_V
    //
    // Set thermodynamic state if it's there
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/THPHASE
    IS: Solid
      CHAR: STATE = S
    IS: Liquid
      CHAR: STATE = L
    IS: Gas
      CHAR: STATE = G
    ELSE
      CHAR: STATE = U
    ENDCASE
    // 
    // Explicitly specified mixture properties
    //
    // Density and related values (by parameter)
    //
    FOR: Property = DENSITY, \
                    DRHODP_H, \
                    DRHODP_S, \
                    DRHODP_T, \
                    SNDSPD
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}, \
            /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/OPTION, \
            /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}/OPTION 
      IS: *DIR*, Ideal Mixture, *NONE*
        COPDIR: PROPERTIES/{Property}, {Property}
          CATLG: PROP
        ENDDIR
      ENDCASE
    ENDFOR
    //
    // Density by singleton
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/DENSITY/DENSITY, \
          /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/DENSITY/OPTION
      IS: *DIR*, Value
        COPDIR: PROPERTIES/DENSITY/DENSITY, DENSITY
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/WMOL, WMOL
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/DENSITY/OPTION, DENSITY/OPTION
      IS: *NONE*, Ideal Gas
        COPDIR: PROPERTIES/DENSITY, DENSITY
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/WMOL, WMOL
          CATLG: PROP
        ENDDIR
        DELDIR: /FLOW/PHYSICS/MATERIALS/{Material}/DENSITY/WMOL
      IS: *DIR*, Mixture Density
        COPDIR: PROPERTIES/DENSITY/DENSITY, DENSITY
          CATLG: PROP
          CHAR: PROPERTIES/DENSITY/OPTION, OPTION
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/DRHODP_T, DRHODP_T
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/DRHODP_H, DRHODP_H
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/DRHODT_P, DRHODT_P
          CATLG: PROP
        ENDDIR
        DELDIR: /FLOW/PHYSICS/MATERIALS/{Material}/DENSITY/WMOL
    ENDCASE
    //
    // Pressure by singleton
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/DENSITY/PABS, \
          /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/DENSITY/OPTION
      IS: *DIR*, Mixture Pressure
        COPDIR: PROPERTIES/DENSITY/DENSITY, DENSITY
          CATLG: PROP
          CHAR: PROPERTIES/DENSITY/OPTION, OPTION
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/PABS, PABS
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/DPDT_V, DPDT_V
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/DPDV_T, DPDV_T
          CATLG: PROP
        ENDDIR
        DELDIR: /FLOW/PHYSICS/MATERIALS/{Material}/DENSITY/WMOL
    ENDCASE
    //
    // Auxiliary parameters (Density newton iteration control)
    //
    FOR: Parameter = P2RHOMAP_ERRABS, \
                     P2RHOMAP_URF
      CASE: {SourceDir}/{MmsName}/PROPERTIES/DENSITY/{Parameter}
      IS: *DIR*
        COPDIR: PROPERTIES/DENSITY/{Parameter}, {Parameter}
        ENDDIR
      ENDCASE
    ENDFOR
    FOR: Parameter = P2RHOMAP_MAXIT
      INTR: PROPERTIES/DENSITY/{Parameter},{Parameter}
    ENDFOR
    //
    // Specific heat by parameter
    // 
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT, \
          /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT/OPTION
    IS: *DIR*, *NONE*
      COPDIR: PROPERTIES/SPHEAT, SPHEATP
        CATLG: PROP
      ENDDIR
    ENDCASE
    //
    //  Specific heat by singleton
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT/SPHEAT, \
          /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT/OPTION, \ 
          /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT/TYPE
      IS: *DIR*, Value, Constant Pressure
        COPDIR: PROPERTIES/SPHEAT/SPHEAT, SPHEATP
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/SPHEAT/OPTION, SPHEATP/OPTION
      IS: *DIR*, Value, Constant Volume
        COPDIR: PROPERTIES/SPHEAT/SPHEAT, SPHEATV
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/SPHEAT/OPTION, SPHEATV/OPTION
      IS: *DIR*, Value, *NONE*
        COPDIR: PROPERTIES/SPHEAT/SPHEAT, SPHEATP
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/SPHEAT/OPTION, SPHEATP/OPTION
      IS: *NONE*, NASA Format, *NONE*
        COPDIR: PROPERTIES/SPHEAT, SPHEATP
          CATLG: PROP
        ENDDIR
      IS: *DIR*, Mixture Specific Heat Capacity, Constant Pressure
        COPDIR: PROPERTIES/SPHEAT/SPHEAT, SPHEATP
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/SPHEAT/ENTHSTAT, ENTHSTAT
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/SPHEAT/ENTROPY, ENTROPY
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/SPHEAT/OPTION, SPHEATP/OPTION
      IS: *DIR*, Mixture Specific Heat Capacity, Constant Volume
        COPDIR: PROPERTIES/SPHEAT/SPHEAT, SPHEATV
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/SPHEAT/ENTHSTAT, ENTHSTAT
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/SPHEAT/ENTROPY, ENTROPY
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/SPHEAT/OPTION, SPHEATV/OPTION
    ENDCASE
    FOR: Property = TREF, \
                    PREF, \
                    ENTHREF, \
                    ENTRREF
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT/{Property}
        IS: *DIR*
          COPDIR: PROPERTIES/SPHEAT/{Property},{Property}
            CATLG: AUX_PROP
          ENDDIR
      ENDCASE
    ENDFOR
    //
    // Other properties 
    //
    FOR: Property = VISCDYN, \
                    CONDUCT, \
                    THERMX, \
                    CONELEC, \
                    ELASMOD, \
                    POISSON, \
                    PERMELEC, \
                    PERMMAG, \
                    WMOL, \
                    ABSORP, \
                    SCATTER, \
                    REFRAC
      //
      // Property specified by a parameter
      //
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}, \
            /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}/OPTION
      IS: *DIR*, *NONE*
        COPDIR: PROPERTIES/{Property}, {Property}
          CATLG: PROP
        ENDDIR
      ENDCASE
      //
      // Property specified in a singleton
      //
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}/{Property}\
, \
            /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}/OPTION
        IS: *DIR*, Value
          COPDIR: PROPERTIES/{Property}/{Property}, {Property}
            CATLG: PROP
          ENDDIR
        IS: *DIR*, Non Newtonian Model
          COPDIR: PROPERTIES/{Property}/{Property}, {Property}
            CATLG: PROP
          ENDDIR
        IS: *DIR*, Kinetic Theory Model
          COPDIR: PROPERTIES/{Property}/{Property}, {Property}
            CATLG: PROP
          ENDDIR
        IS: *DIR*, Orthotropic Cylindrical Components
          COPDIR: PROPERTIES/{Property}/{Property}, {Property}
            CATLG: PROP
            CHAR: PROPERTIES/{Property}/OPTION, OPTION
          ENDDIR
          COPDIR: PROPERTIES/{Property}/AXIS, {Property}/AXIS
          ENDDIR
        IS: *DIR*, Orthotropic Cartesian Components
          COPDIR: PROPERTIES/{Property}/{Property}, {Property}
            CATLG: PROP
            CHAR: PROPERTIES/{Property}/OPTION, OPTION
          ENDDIR
        IS: *NONE*, Anisotropic Components
          COPDIR: PROPERTIES/{Property}/VALUE, {Property}
            CATLG: PROP
            CHAR: PROPERTIES/{Property}/OPTION, OPTION
          ENDDIR
        IS: *NONE*, Sutherlands Formula
          COPDIR: PROPERTIES/{Property}, {Property}
            CATLG: PROP
          ENDDIR
      ENDCASE
    ENDFOR
    // 
    // Top level table generation controls
    //
    FOR: Property = TABSMIN, \
                    TABSMAX, \
                    PABSMIN, \
                    PABSMAX, \
                    TABERR
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/TABGEN/{Property}
      IS: *DIR*
        COPDIR: PROPERTIES/TABGEN/{Property}, {Property}
          CATLG: AUX_PROP
        ENDDIR
      ENDCASE
    ENDFOR
    LOGL: PROPERTIES/TABGEN/TABTEXT, TABTEXT
    LOGL: PROPERTIES/TABGEN/TABPEXT, TABPEXT
    INTR: PROPERTIES/TABGEN/TABPTS,  TABPTS
    // 
    // Enthalpy table generation controls
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/ENTHSTAT
    IS: *DIR*
      MAKDIR: ENTHSTAT
        CATLG: PROP
      ENDDIR
    ENDCASE
    FOR: Property = TABSMIN, \
                    TABSMAX, \
                    PABSMIN, \
                    PABSMAX, \
                    TABERR
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/ENTHSTAT/TABGEN/{Prop\
erty}
      IS: *DIR*
        COPDIR: PROPERTIES/ENTHSTAT/TABGEN/{Property}, ENTHSTAT/{Property}
        ENDDIR
      ENDCASE
    ENDFOR
    LOGL: PROPERTIES/ENTHSTAT/TABGEN/TABTEXT, ENTHSTAT/TABTEXT
    LOGL: PROPERTIES/ENTHSTAT/TABGEN/TABPEXT, ENTHSTAT/TABPEXT
    INTR: PROPERTIES/ENTHSTAT/TABGEN/TABPTS,  ENTHSTAT/TABPTS
    // 
    // Entropy table generation controls
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/ENTROPY
    IS: *DIR*
      MAKDIR: ENTROPY
        CATLG: PROP
      ENDDIR
    ENDCASE
    FOR: Property = TABSMIN, \
                    TABSMAX, \
                    PABSMIN, \
                    PABSMAX, \
                    TABERR
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/ENTROPY/TABGEN/{Prope\
rty}
      IS: *DIR*
        COPDIR: PROPERTIES/ENTROPY/TABGEN/{Property}, ENTROPY/{Property}
        ENDDIR
      ENDCASE
    ENDFOR
    LOGL: PROPERTIES/ENTROPY/TABGEN/TABTEXT, ENTROPY/TABTEXT
    LOGL: PROPERTIES/ENTROPY/TABGEN/TABPEXT, ENTROPY/TABPEXT
    LOGL: PROPERTIES/ENTROPY/TABGEN/CHKSTAB, CHKSTAB
    INTR: PROPERTIES/ENTROPY/TABGEN/TABPTS,  ENTROPY/TABPTS
          
    //
    // Auxiliary Quantities specified by parameters (old style)
    //
    FOR: Property = TABSMIN, \
                    TABSMAX, \
                    TREF, \
                    PABSMIN, \
                    PABSMAX, \
                    PREF, \
                    ENTHREF, \
                    ENTRREF
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}
      IS: *DIR*
        COPDIR: PROPERTIES/{Property}, {Property}
          CATLG: AUX_PROP
        ENDDIR
      ENDCASE
    ENDFOR

    // Delete propreties directory, no longer needed.
    DELDIR: PROPERTIES

  ENDDIR

  // Rename ACTIVE_COMLS(NACTIVE_COMLS) -> COMLS(NCOMLS)
  CASE: /FLOW/PHYSICS/MATERIALS/{Material}/NACTIVE_COMLS
  IS: *NONE*
  IS: 1
  IS: 0
  ELSE:
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/COMLS,         /FLOW/PHYSICS/MATE\
RIALS/{Material}/USER_COMLS
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/ALIAS_COMLS,   /FLOW/PHYSICS/MATE\
RIALS/{Material}/USER_ALIAS_COMLS
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/ACTIVE_COMLS,      /FLOW/PHYSICS/\
MATERIALS/{Material}/COMLS
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/ACTIVE_COMPONENTS, /FLOW/PHYSICS/\
MATERIALS/{Material}/ALIAS_COMLS
  ENDCASE

  // Rename ACTIVE_RCLS(NACTIVE_RCLS) -> RCLS(NRCLS)
  CASE: /FLOW/PHYSICS/MATERIALS/{Material}/NACTIVE_RCLS
  IS: *NONE*
  IS: 1
  IS: 0
  ELSE:
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/RCLS,        /FLOW/PHYSICS/MATERI\
ALS/{Material}/USER_RCLS
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/ALIAS_RCLS,  /FLOW/PHYSICS/MATERI\
ALS/{Material}/USER_ALIAS_RCLS
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/ACTIVE_RCLS,      /FLOW/PHYSICS/M\
ATERIALS/{Material}/RCLS
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/ACTIVE_REACTIONS, /FLOW/PHYSICS/M\
ATERIALS/{Material}/ALIAS_RCLS
  ENDCASE

END

LIBRARY: MATERIAL, Variable Composition Mixture

  COPDIR: ., /FLOW/PHYSICS/MATERIALS/{Material}
    CATLG: MAT  // NB: should be MT for consistent automation
    CHAR: TYPE = MIXTURE_V
    //
    // Set thermodynamic state if it's there
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/THPHASE
    IS: Solid
      CHAR: STATE = S
    IS: Liquid
      CHAR: STATE = L
    IS: Gas
      CHAR: STATE = G
    ELSE
      CHAR: STATE = U
    ENDCASE
    // 
    // Explicitly specified mixture properties
    //
    // Density and related values (by parameter)
    //
    FOR: Property = DENSITY, \
                    DRHODP_H, \
                    DRHODP_S, \
                    DRHODP_T, \
                    SNDSPD
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}, \
            /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/OPTION, \
            /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}/OPTION 
      IS: *DIR*, Ideal Mixture, *NONE*
        COPDIR: PROPERTIES/{Property}, {Property}
          CATLG: PROP
        ENDDIR
      ENDCASE
    ENDFOR
    //
    // Density by singleton
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/DENSITY/DENSITY, \
          /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/DENSITY/OPTION
      IS: *DIR*, Value
        COPDIR: PROPERTIES/DENSITY/DENSITY, DENSITY
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/WMOL, WMOL
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/DENSITY/OPTION, DENSITY/OPTION
      IS: *NONE*, Ideal Gas
        COPDIR: PROPERTIES/DENSITY, DENSITY
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/WMOL, WMOL
          CATLG: PROP
        ENDDIR
        DELDIR: /FLOW/PHYSICS/MATERIALS/{Material}/DENSITY/WMOL
      IS: *DIR*, Mixture Density
        COPDIR: PROPERTIES/DENSITY/DENSITY, DENSITY
          CATLG: PROP
          CHAR: PROPERTIES/DENSITY/OPTION, OPTION
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/DRHODP_T, DRHODP_T
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/DRHODP_H, DRHODP_H
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/DRHODT_P, DRHODT_P
          CATLG: PROP
        ENDDIR
        DELDIR: /FLOW/PHYSICS/MATERIALS/{Material}/DENSITY/WMOL
    ENDCASE
    //
    // Pressure by singleton
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/DENSITY/PABS, \
          /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/DENSITY/OPTION
      IS: *DIR*, Mixture Pressure
        COPDIR: PROPERTIES/DENSITY/DENSITY, DENSITY
          CATLG: PROP
          CHAR: PROPERTIES/DENSITY/OPTION, OPTION
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/PABS, PABS
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/DPDT_V, DPDT_V
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/DENSITY/DPDV_T, DPDV_T
          CATLG: PROP
        ENDDIR
        DELDIR: /FLOW/PHYSICS/MATERIALS/{Material}/DENSITY/WMOL
    ENDCASE
    //
    // Auxiliary parameters (Density newton iteration control)
    //
    FOR: Parameter = P2RHOMAP_ERRABS, \
                     P2RHOMAP_URF
      CASE: {SourceDir}/{MmsName}/PROPERTIES/DENSITY/{Parameter}
      IS: *DIR*
        COPDIR: PROPERTIES/DENSITY/{Parameter}, {Parameter}
        ENDDIR
      ENDCASE
    ENDFOR
    FOR: Parameter = P2RHOMAP_MAXIT
      INTR: PROPERTIES/DENSITY/{Parameter},{Parameter}
    ENDFOR
    //
    // Specific heat by parameter
    // 
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT, \
          /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT/OPTION
    IS: *DIR*, *NONE*
      COPDIR: PROPERTIES/SPHEAT, SPHEATP
        CATLG: PROP
      ENDDIR
    ENDCASE
    //
    //  Specific heat by singleton
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT/SPHEAT, \
          /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT/OPTION, \ 
          /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT/TYPE
      IS: *DIR*, Value, Constant Pressure
        COPDIR: PROPERTIES/SPHEAT/SPHEAT, SPHEATP
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/SPHEAT/OPTION, SPHEATP/OPTION
      IS: *DIR*, Value, Constant Volume
        COPDIR: PROPERTIES/SPHEAT/SPHEAT, SPHEATV
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/SPHEAT/OPTION, SPHEATV/OPTION
      IS: *DIR*, Value, *NONE*
        COPDIR: PROPERTIES/SPHEAT/SPHEAT, SPHEATP
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/SPHEAT/OPTION, SPHEATP/OPTION
      IS: *NONE*, NASA Format, *NONE*
        COPDIR: PROPERTIES/SPHEAT, SPHEATP
          CATLG: PROP
        ENDDIR
      IS: *DIR*, Mixture Specific Heat Capacity, Constant Pressure
        COPDIR: PROPERTIES/SPHEAT/SPHEAT, SPHEATP
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/SPHEAT/ENTHSTAT, ENTHSTAT
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/SPHEAT/ENTROPY, ENTROPY
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/SPHEAT/OPTION, SPHEATP/OPTION
      IS: *DIR*, Mixture Specific Heat Capacity, Constant Volume
        COPDIR: PROPERTIES/SPHEAT/SPHEAT, SPHEATV
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/SPHEAT/ENTHSTAT, ENTHSTAT
          CATLG: PROP
        ENDDIR
        COPDIR: PROPERTIES/SPHEAT/ENTROPY, ENTROPY
          CATLG: PROP
        ENDDIR
        CHAR: PROPERTIES/SPHEAT/OPTION, SPHEATV/OPTION
    ENDCASE
    FOR: Property = TREF, \
                    PREF, \
                    ENTHREF, \
                    ENTRREF
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/SPHEAT/{Property}
        IS: *DIR*
          COPDIR: PROPERTIES/SPHEAT/{Property},{Property}
            CATLG: AUX_PROP
          ENDDIR
      ENDCASE
    ENDFOR
    //
    // Other properties 
    //
    FOR: Property = VISCDYN, \
                    CONDUCT, \
                    THERMX, \
                    CONELEC, \
                    ELASMOD, \
                    POISSON, \
                    WMOL, \
                    ABSORP, \
                    SCATTER, \
                    REFRAC
      //
      // Property specified by a parameter
      //
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}, \
            /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}/OPTION
      IS: *DIR*, *NONE*
        COPDIR: PROPERTIES/{Property}, {Property}
          CATLG: PROP
        ENDDIR
      ENDCASE
      //
      // Property specified in a singleton
      //
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}/{Property}\
, \
            /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}/OPTION
        IS: *DIR*, Value
          COPDIR: PROPERTIES/{Property}/{Property}, {Property}
            CATLG: PROP
          ENDDIR
        IS: *DIR*, Non Newtonian Model
          COPDIR: PROPERTIES/{Property}/{Property}, {Property}
            CATLG: PROP
          ENDDIR
        IS: *DIR*, Kinetic Theory Model
          COPDIR: PROPERTIES/{Property}/{Property}, {Property}
            CATLG: PROP
          ENDDIR
        IS: *DIR*, Orthotropic Cylindrical Components
          COPDIR: PROPERTIES/{Property}/{Property}, {Property}
            CATLG: PROP
            CHAR: PROPERTIES/{Property}/OPTION, OPTION
          ENDDIR
          COPDIR: PROPERTIES/{Property}/AXIS, {Property}/AXIS
          ENDDIR
        IS: *DIR*, Orthotropic Cartesian Components
          COPDIR: PROPERTIES/{Property}/{Property}, {Property}
            CATLG: PROP
            CHAR: PROPERTIES/{Property}/OPTION, OPTION
          ENDDIR
        IS: *NONE*, Anisotropic Components
          COPDIR: PROPERTIES/{Property}/VALUE, {Property}
            CATLG: PROP
            CHAR: PROPERTIES/{Property}/OPTION, OPTION
          ENDDIR
        IS: *NONE*, Sutherlands Formula
          COPDIR: PROPERTIES/{Property}, {Property}
            CATLG: PROP
          ENDDIR
      ENDCASE
    ENDFOR
    // 
    // Top level table generation controls
    //
    FOR: Property = TABSMIN, \
                    TABSMAX, \
                    PABSMIN, \
                    PABSMAX, \
                    TABERR
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/TABGEN/{Property}
      IS: *DIR*
        COPDIR: PROPERTIES/TABGEN/{Property}, {Property}
          CATLG: AUX_PROP
        ENDDIR
      ENDCASE
    ENDFOR
    LOGL: PROPERTIES/TABGEN/TABTEXT, TABTEXT
    LOGL: PROPERTIES/TABGEN/TABPEXT, TABPEXT
    INTR: PROPERTIES/TABGEN/TABPTS,  TABPTS
    // 
    // Enthalpy table generation controls
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/ENTHSTAT
    IS: *DIR*
      MAKDIR: ENTHSTAT
        CATLG: PROP
      ENDDIR
    ENDCASE
    FOR: Property = TABSMIN, \
                    TABSMAX, \
                    PABSMIN, \
                    PABSMAX, \
                    TABERR
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/ENTHSTAT/TABGEN/{Prop\
erty}
      IS: *DIR*
        COPDIR: PROPERTIES/ENTHSTAT/TABGEN/{Property}, ENTHSTAT/{Property}
        ENDDIR
      ENDCASE
    ENDFOR
    LOGL: PROPERTIES/ENTHSTAT/TABGEN/TABTEXT, ENTHSTAT/TABTEXT
    LOGL: PROPERTIES/ENTHSTAT/TABGEN/TABPEXT, ENTHSTAT/TABPEXT
    INTR: PROPERTIES/ENTHSTAT/TABGEN/TABPTS,  ENTHSTAT/TABPTS
    // 
    // Entropy table generation controls
    //
    CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/ENTROPY
    IS: *DIR*
      MAKDIR: ENTROPY
        CATLG: PROP
      ENDDIR
    ENDCASE
    FOR: Property = TABSMIN, \
                    TABSMAX, \
                    PABSMIN, \
                    PABSMAX, \
                    TABERR
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/ENTROPY/TABGEN/{Prope\
rty}
      IS: *DIR*
        COPDIR: PROPERTIES/ENTROPY/TABGEN/{Property}, ENTROPY/{Property}
        ENDDIR
      ENDCASE
    ENDFOR
    LOGL: PROPERTIES/ENTROPY/TABGEN/TABTEXT, ENTROPY/TABTEXT
    LOGL: PROPERTIES/ENTROPY/TABGEN/TABPEXT, ENTROPY/TABPEXT
    LOGL: PROPERTIES/ENTROPY/TABGEN/CHKSTAB, CHKSTAB
    INTR: PROPERTIES/ENTROPY/TABGEN/TABPTS,  ENTROPY/TABPTS
          
    //
    // Auxiliary Quantities specified by parameters (old style)
    //
    FOR: Property = TABSMIN, \
                    TABSMAX, \
                    TREF, \
                    PABSMIN, \
                    PABSMAX, \
                    PREF, \
                    ENTHREF, \
                    ENTRREF
      CASE: /FLOW/PHYSICS/MATERIALS/{Material}/PROPERTIES/{Property}
      IS: *DIR*
        COPDIR: PROPERTIES/{Property}, {Property}
          CATLG: AUX_PROP
        ENDDIR
      ENDCASE
    ENDFOR

    // Delete propreties directory, no longer needed.
    DELDIR: PROPERTIES

  ENDDIR

  // Rename ACTIVE_COMLS(NACTIVE_COMLS) -> COMLS(NCOMLS)
  CASE: /FLOW/PHYSICS/MATERIALS/{Material}/NACTIVE_COMLS
  IS: *NONE*
  IS: 1
  IS: 0
  ELSE:
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/COMLS,         /FLOW/PHYSICS/MATE\
RIALS/{Material}/USER_COMLS
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/ALIAS_COMLS,   /FLOW/PHYSICS/MATE\
RIALS/{Material}/USER_ALIAS_COMLS
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/ACTIVE_COMLS,      /FLOW/PHYSICS/\
MATERIALS/{Material}/COMLS
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/ACTIVE_COMPONENTS, /FLOW/PHYSICS/\
MATERIALS/{Material}/ALIAS_COMLS
  ENDCASE

  // Rename ACTIVE_RCLS(NACTIVE_RCLS) -> RCLS(NRCLS)
  CASE: /FLOW/PHYSICS/MATERIALS/{Material}/NACTIVE_RCLS
  IS: *NONE*
  IS: 1
  IS: 0
  ELSE:
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/RCLS,        /FLOW/PHYSICS/MATERI\
ALS/{Material}/USER_RCLS
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/ALIAS_RCLS,  /FLOW/PHYSICS/MATERI\
ALS/{Material}/USER_ALIAS_RCLS
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/ACTIVE_RCLS,      /FLOW/PHYSICS/M\
ATERIALS/{Material}/RCLS
    RENAM: /FLOW/PHYSICS/MATERIALS/{Material}/ACTIVE_REACTIONS, /FLOW/PHYSICS/M\
ATERIALS/{Material}/ALIAS_RCLS
  ENDCASE

END

LIBRARY: REACTION, Flamelet Library
  COPDIR: ., /FLOW/PHYSICS/REACTIONS/{Reaction}
    CATLG: REAC  // NB: should be RC for consistent automation
    CHAR: TYPE = CHEMLIB
  ENDDIR
END

LIBRARY: REACTION, Multi Phase
  COPDIR: ., /FLOW/PHYSICS/REACTIONS/{Reaction}
    CATLG: REAC  // NB: should be RC for consistent automation
    CHAR: TYPE = MULTIPHASE
  ENDDIR
END

LIBRARY: REACTION, Multi Step
  COPDIR: ., /FLOW/PHYSICS/REACTIONS/{Reaction}
    CATLG: REAC  // NB: should be RC for consistent automation
    CHAR: TYPE = MULTISTEP
  ENDDIR
END

LIBRARY: REACTION, Single Step
  COPDIR: ., /FLOW/PHYSICS/REACTIONS/{Reaction}
    CATLG: REAC  // NB: should be RC for consistent automation
    CHAR: TYPE = SINGLESTEP

// Optional Combustion Model.
// NOTE: RENAM of directory fails to delete source dir,
//       so copy and delete.

    CASE: {SourceDir}/{MmsName}/COMBUSTION_MODEL/OPTION
    IS: *NONE*
    IS: Eddy Dissipation
      COPDIR: COMBUSTION_MODEL, COMBM
        LIST: CCOMBM = EDM:
      ENDDIR
      DELDIR: COMBUSTION_MODEL
    IS: Finite Rate Chemistry
      COPDIR: COMBUSTION_MODEL, COMBM
        LIST: CCOMBM = CKIN:
      ENDDIR
      DELDIR: COMBUSTION_MODEL
    IS: Finite Rate Chemistry and Eddy Dissipation
      COPDIR: COMBUSTION_MODEL, COMBM
        LIST: CCOMBM = CKIN:EDM
      ENDDIR
      DELDIR: COMBUSTION_MODEL
    ELSE
      MESAGE: Unknown COMBUSTION MODEL specified for REACTION.
      EXIT
    ENDCASE

  ENDDIR
END

LIBRARY: USER LOCATION DEFINITIONS
  COPDIR: .,/FLOW/PHYSICS/USER_LOCATIONS
  ENDDIR
END

LIBRARY: USER ROUTINE DEFINITIONS
  COPDIR: .,/FLOW/CONTROL/USER_ROUTINES
  ENDDIR
END

LIBRARY: VARIABLE, Definition
  // Copy across complete directory.
  //
  // Catalogue its name in ../CVAR(NVAR).
  // Set number of components in variable NCOMPT
  // according to tensor type.
  //
  COPDIR: .,/FLOW/PHYSICS/MODELS/VARIABLES/{Var}
    CATLG: VAR
    CASE: /FLOW/PHYSICS/MODELS/VARIABLES/{Var}/TENSOR_TYPE
    IS: SCALAR
      INTR: NCOMPT = 1
    IS: SYMTEN2
      INTR: NCOMPT = 6
    IS: VECTOR
      INTR: NCOMPT = 3
    IS: *NONE*
      CHAR: TENSOR_TYPE = SCALAR
      INTR: NCOMPT = 1
    ELSE:
      MESAGE: Unknown Tensor Type for VARIABLE {Alias}
      EXIT
    ENDCASE
  ENDDIR
  // Rename automatic ALIAS so that
  //   ALIAS       becomes the  Long Name (GUI name)
  //   SHORT_ALIAS becomes the Short Name (CCL name)
  //
  RENAM: /FLOW/PHYSICS/MODELS/VARIABLES/{Var}/ALIAS, \
         /FLOW/PHYSICS/MODELS/VARIABLES/{Var}/SHORT_ALIAS
  RENAM: /FLOW/PHYSICS/MODELS/VARIABLES/{Var}/LONG_ALIAS, \
         /FLOW/PHYSICS/MODELS/VARIABLES/{Var}/ALIAS
END

LIBRARY: VARIABLE OPERATOR, Definition
  // Copy across complete directory.
  //
  // Catalogue its name in ../COPER(NOPER).
  // Set number of components in variable NCOMPT
  // according to tensor type.
  //
  COPDIR: .,/FLOW/PHYSICS/MODELS/OPERATORS/{Oper}
    CATLG: OPER
    CASE: /FLOW/PHYSICS/MODELS/OPERATORS/{Oper}/TENSOR_TYPE
    IS: SCALAR
      INTR: NCOMPT = 1
    IS: SYMTEN2
      INTR: NCOMPT = 6
    IS: VECTOR
      INTR: NCOMPT = 3
    ELSE:
      MESAGE: Unknown Tensor Type for VARIABLE OPERATOR {Alias}
      EXIT
    ENDCASE
  ENDDIR
  // Rename automatic ALIAS so that
  //   ALIAS       becomes the  Long Name (GUI name)
  //   SHORT_ALIAS becomes the Short Name (CCL name)
  //
  RENAM: /FLOW/PHYSICS/MODELS/OPERATORS/{Oper}/ALIAS, \
         /FLOW/PHYSICS/MODELS/OPERATORS/{Oper}/SHORT_ALIAS
  RENAM: /FLOW/PHYSICS/MODELS/OPERATORS/{Oper}/LONG_ALIAS, \
         /FLOW/PHYSICS/MODELS/OPERATORS/{Oper}/ALIAS
END

///////////////////////////////////////////////////////////////////////////////
//   FLOW data area
///////////////////////////////////////////////////////////////////////////////

FLOW: ANALYSIS TYPE, Harmonic
   CHAR: /FLOW/ALGORITHM/TRANS/CTRANS = TRANSIENT:HARMONIC:
   INTR: NMODE, /FLOW/ALGORITHM/TRANS/NMODE

   CASE: {SourceDir}/{MmsName}/PERIOD
   IS: *DIR*
     COPDIR: PERIOD, /FLOW/ALGORITHM/TRANS/PERIOD
     ENDDIR
   ENDCASE

   CASE: {SourceDir}/{MmsName}/DURATION
   IS: *DIR*
     COPDIR: DURATION, /FLOW/ALGORITHM/TRANS/DURATION
     ENDDIR
   ENDCASE

   CASE: {SourceDir}/{MmsName}/TIME_STEPS
   IS: *DIR*
     COPDIR: TIME_STEPS, /FLOW/ALGORITHM/TRANS/TIME_STEPS
     ENDDIR
   ENDCASE

   CASE: {SourceDir}/{MmsName}/INITIME
   IS: *DIR*
     COPDIR: INITIME, /FLOW/ALGORITHM/TRANS/INITIME
     ENDDIR
   // and copy the variable for current run initial time
     COPDIR: INITIME, /FLOW/ALGORITHM/TRANS/RINITIME
     ENDDIR
   ENDCASE
   
   CASE: {SourceDir}/{MmsName}/INITIME
   IS: *DIR*
     COPDIR: EXTERNAL_COUPLING, /PRCCPLG/CONTROL
     ENDDIR
   ENDCASE
END

FLOW: ANALYSIS TYPE, Steady State
   CHAR: /FLOW/ALGORITHM/TRANS/CTRANS = S-S:
   
   COPDIR: EXTERNAL_COUPLING, /PRCCPLG/CONTROL
   ENDDIR
END

FLOW: ANALYSIS TYPE, Transient
   CHAR: /FLOW/ALGORITHM/TRANS/CTRANS = TRANSIENT:

   COPDIR: DURATION, /FLOW/ALGORITHM/TRANS/DURATION
   ENDDIR

   CASE: {SourceDir}/{MmsName}/TIME_STEPS
   IS: *DIR*
     COPDIR: TIME_STEPS, /FLOW/ALGORITHM/TRANS/TIME_STEPS
     ENDDIR
   ENDCASE

   CASE: /FLOW/ALGORITHM/TRANS/TIME_STEPS/RTSTEPS
   IS: *DIR*
     COPDIR: /FLOW/ALGORITHM/TRANS/TIME_STEPS/RTSTEPS, \
             /FLOW/ALGORITHM/TRANS/DURATION/RTSTEPS
     ENDDIR
   ENDCASE
   CASE: /FLOW/ALGORITHM/TRANS/TIME_STEPS/TSTEPS
   IS: *DIR*
     COPDIR: /FLOW/ALGORITHM/TRANS/TIME_STEPS/TSTEPS, \
             /FLOW/ALGORITHM/TRANS/DURATION/TSTEPS
     ENDDIR
   ENDCASE

   COPDIR: INITIME, /FLOW/ALGORITHM/TRANS/INITIME
   ENDDIR
   // and copy the variable for current run initial time
   COPDIR: INITIME, /FLOW/ALGORITHM/TRANS/RINITIME
   ENDDIR

   COPDIR: EXTERNAL_COUPLING, /PRCCPLG/CONTROL
   ENDDIR
END

FLOW: ANALYSIS TYPE, Transient Blade Row
   CASE: {SourceDir}/{MmsName}/SCHEME
   IS: Time Integration
     CHAR: /FLOW/ALGORITHM/TRANS/CTRANS = TRANSIENT:PERIODIC:
   IS: Harmonic Balance
     CHAR: /FLOW/ALGORITHM/TRANS/CTRANS = TRANSIENT:HARMONIC:
     INTR: NMODE, /FLOW/ALGORITHM/TRANS/NMODE
     MAKDIR: /ABR/OUTPUT/CONTROL
       INTR: /FLOW/ANALYSIS_TYPE/NMODE, /ABR/OUTPUT/CONTROL/NMODE
       CHAR: /ABR/OUTPUT/CONTROL/PERIOD_S = Last Period
     ENDDIR
   ELSE
     MESAGE: Invalid solution method for Transient Blade Row
     EXIT
   ENDCASE

   CASE: {SourceDir}/{MmsName}/PERIOD
   IS: *DIR*
     COPDIR: PERIOD, /FLOW/ALGORITHM/TRANS/PERIOD
     ENDDIR
   ENDCASE

   CASE: {SourceDir}/{MmsName}/DURATION
   IS: *DIR*
     COPDIR: DURATION, /FLOW/ALGORITHM/TRANS/DURATION
     ENDDIR
   ENDCASE

   CASE: {SourceDir}/{MmsName}/TIME_STEPS
   IS: *DIR*
     COPDIR: TIME_STEPS, /FLOW/ALGORITHM/TRANS/TIME_STEPS
     ENDDIR
   ENDCASE

   COPDIR: INITIME, /FLOW/ALGORITHM/TRANS/INITIME
   ENDDIR
   // and copy the variable for current run initial time
   COPDIR: INITIME, /FLOW/ALGORITHM/TRANS/RINITIME
   ENDDIR
   
   COPDIR: EXTERNAL_COUPLING, /PRCCPLG/CONTROL
   ENDDIR   
END

FLOW: CCLSETUP
END

FLOW: DEBUG
  COPDIR: DEBUG
  ENDDIR
END

FLOW: DOMAIN
  MAKDIR: /FLOW/PHYSICS/{Zone}
    // PHYTYPE is set as a simple string under {Zone}
    // The solver will order the PHYTYPE's into an array
    CHAR: DIMTYPE = 3D
    CHAR: PHYTYPE
    CHAR: ALIAS
    CHAR: COORD

    LOGL: LCROSSFLOW

    CASE: /FLOW/{Zone}/DOMAIN_TYPE
    IS: Solid
      CHAR: PHYTYPE = SOLID
      LOGL: LIMSOLID =.FALSE.
    IS: Porous
      CHAR: PHYTYPE = POROUS
      LOGL: LIMSOLID =.FALSE.
    IS: Porous Solid
      CHAR: PHYTYPE = POROUS
      LOGL: LIMSOLID =.FALSE.
// Translate existing coord frame into /FLOW/PHYSICS dir
// Create dummy material
    IS: Immersed Solid
      CHAR: PHYTYPE = IMMERSED SOLID
      LOGL: LIMSOLID =.TRUE.
    IS: Fluid
      CHAR: PHYTYPE = FLUID
      LOGL: LIMSOLID =.FALSE.
    ELSE
      MESAGE: Invalid or missing Domain Type specification.
      EXIT
    ENDCASE

    CASE:  /FLOW/{Zone}/DOMAIN_TYPE, /FLOW/PHYSICS/MATERIALS/MT0
    IS: Immersed Solid, *NONE*
      MAKDIR: /FLOW/PHYSICS/MATERIALS/MT0
        CATLG: MAT
        CHAR: OPTION = Dummy Material
        CHAR: TYPE = DUMMY
        CHAR: STATE = S
        CHAR: ALIAS1 = __Dummy_Material__
        RENAM: /FLOW/PHYSICS/MATERIALS/MT0/ALIAS1, /FLOW/PHYSICS/MATERIALS/MT0/\
ALIAS
        INTR: NPROP = 0
      ENDDIR
    ENDCASE

    CASE:  /FLOW/{Zone}/DOMAIN_TYPE, /FLOW/{Zone}/SOLID_DEFINITION
    IS: Immersed Solid, *NONE*
      MAKDIR: SL0
        CATLG: SOLID
        CATLG: PHASE
        CHAR: ALIAS1 = __Dummy_Material__
        RENAM: /FLOW/PHYSICS/{Zone}/SL0/ALIAS1, /FLOW/PHYSICS/{Zone}/SL0/ALIAS
        CHAR: CMAT = MT0
        CHAR: ALIAS_CMAT = __Dummy_Material__
      ENDDIR
    ENDCASE
   
    CASE: {SourceDir}/{MmsName}/MULTIFLUID_MODELS
    IS: *DIR*
      COPDIR: MULTIFLUID_MODELS
      ENDDIR
    ENDCASE

    CASE: {SourceDir}/{MmsName}/MULTIFLUID_MODELS/LHOMOGENEOUS
    IS: .TRUE.
      CHAR: MULTIFLUID_MODELS/OPTION = Homogeneous
    ENDCASE

    CASE: {SourceDir}/{MmsName}/PITCH
    ISNOT: *NONE*
      REAL: PITCH/VALUE, PITCH_ANGLE
    ENDCASE

  ENDDIR
END

FLOW: DOMAIN INTERFACE

  CHAR: /FLOW/{Zif}/ZIF_PHYTYPE = INTERFACE

  MAKDIR: /FLOW/PHYSICS/{Zif}

    // Pass through the interface name and connection type
    CHAR: ALIAS

    // Pass through side 1 and side 2 boundary lists
    COPDIR: CBCP1
    ENDDIR
    COPDIR: CBCP2
    ENDDIR

    // Explicitly set the interface type, override Periodic CHT
    // interfaces here to be Fluid Solid or Solid Solid so that
    // these are treated identically by the flow solver.
    CASE: {SourceDir}/{MmsName}/PHYTYPE
    IS: Fluid Fluid
      CHAR: PHYTYPE
    IS: Fluid Porous
      CHAR: PHYTYPE    
    IS: Fluid Solid
      CHAR: PHYTYPE    
    IS: Porous Porous
      CHAR: PHYTYPE
    IS: Solid Porous
      CHAR: PHYTYPE    
    IS: Solid Solid
      CHAR: PHYTYPE    
    IS: Periodic
      CHAR: PHYTYPE
    ELSE:
      MESAGE: Unsupported DOMAIN INTERFACE Type
      EXIT
    ENDCASE

    // For periodic domain interfaces with no interface model singleton 
    // create a blank frame change model data area.  If neither of these 
    // exist then the interface is either a "Fluid Solid" or "Solid Solid"
    // interface from before 5.5 when we did not write the interface 
    // physical type.  This is a bit of a hack, but it makes some further
    // pre-processing in the solver front end easier.
    CASE: {SourceDir}/{MmsName}/INTERFACE_MODELS, {SourceDir}/{MmsName}/PHYTYPE
    IS: *NONE*, Periodic
      CHAR: CFRCHG = /SPACE
    IS: *NONE*, *NONE*
      CHAR: PHYTYPE = CHT
    ENDCASE

    // Pass through the rotation axis if it exists
    CASE: {SourceDir}/{MmsName}/AXIS/AROT, {SourceDir}/{MmsName}/AXIS/BROT
    IS: *DIR*,*DIR*
      COPDIR: AXIS, /FLOW/PHYSICS/{Zif}/AXIS
      ENDDIR
    IS: *DIR*,*NONE*
      MESAGE: Invalid DOMAIN INTERFACE rotation axis specification 
      EXIT
    IS: *NONE*,*DIR*
      MESAGE: Invalid DOMAIN INTERFACE rotation axis specification 
      EXIT
    ENDCASE

  ENDDIR
END

FLOW: EXPERT PARAMETERS
END

FLOW: OUTPUT CONTROL
END

FLOW: RIGID BODY
  COPDIR: ., /FLOW/PHYSICS/{RigidBody}
    CATLG: RB
  ENDDIR
END

FLOW: SOLUTION UNITS
END

FLOW: SOLVER CONTROL
END

///////////////////////////////////////////////////////////////////////////////
//   DOMAIN data area
///////////////////////////////////////////////////////////////////////////////

DOMAIN: BOUNDARY
  // Translate existing coord frame into /FLOW/PHYSICS dir
  CASE: {SourceDir}/{MmsName}/COORD
  IS: *NONE*
    CHAR: {SourceDir}/COORD, {MmsName}/COORD
  ELSE
    CHAR: COORD, {MmsName}/COORD
  ENDCASE

  CASE: {SourceDir}/{MmsName}/PITCH
  ISNOT: *NONE*
    COPDIR: PITCH, {MmsName}/PITCH
    LOGL: ../LCLOCK = .TRUE.
    ENDDIR
  ENDCASE

  MAKDIR: /FLOW/BOUNDCON/{Zone}/{Bcp}
    // BCP(NBCP) cannot be prepared here since the order expected
    // by the 5.4 solver is unknown.

    // Similarly PHYTYPE is left as simple variable {Bcp}/PHYTYPE
    // for the solver setup to make into an array.

    CHAR: ALIAS
    CHAR: MESH_ALIAS
    CHAR: PHYTYPE

    CASE: {SourceDir}/{MmsName}/PHYTYPE
    IS: INTERFACE
      MAKDIR: NOVARIABLES
      ENDDIR
      MAKDIR: VARIABLES
      ENDDIR
    ELSE
      MAKDIR: VARIABLES
      ENDDIR
    ENDCASE
  ENDDIR
END

DOMAIN: DOMAIN MODELS
END

DOMAIN: FLUID DEFINITION, Material Definition
  MAKDIR: {Fluid}
    CATLG: FLUID
    CATLG: PHASE
    CHAR: ALIAS
    CHAR: CMAT
    CHAR: ALIAS_CMAT
  ENDDIR

  CHAR: MORPHOLOGY/OPTION, {Fluid}/MORPHOLOGY_OPTION

  CASE: {SourceDir}/{MmsName}/MORPHOLOGY/OPTION
  IS: Continuous Fluid
    CHAR: {Fluid}/MORPHOLOGY = C
  IS: Continuous Solid
    CHAR: {Fluid}/MORPHOLOGY = C
  IS: Dispersed Fluid
    CHAR: {Fluid}/MORPHOLOGY = D
  IS: Dispersed Solid
    CHAR: {Fluid}/MORPHOLOGY = D
  IS: Dispersed Particle Transport Fluid
    CHAR: {Fluid}/MORPHOLOGY = D
  IS: Dispersed Particle Transport Solid
    CHAR: {Fluid}/MORPHOLOGY = D
  IS: Droplets with Phase Change
    CHAR: {Fluid}/MORPHOLOGY = D
  IS: Polydispersed Fluid
    CHAR: {Fluid}/MORPHOLOGY = P
  ELSE
    MESAGE: Invalid Morphology Option
    EXIT
  ENDCASE
    
  CASE: {SourceDir}/{MmsName}/MORPHOLOGY/MIN_VOLFRC
  IS: *DIR*
    COPDIR: MORPHOLOGY/MIN_VOLFRC, {Fluid}/MIN_VOLFRC
    ENDDIR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/MORPHOLOGY/MAX_VOLFRC
  IS: *DIR*
    COPDIR: MORPHOLOGY/MAX_VOLFRC, {Fluid}/MAX_VOLFRC
    ENDDIR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/MORPHOLOGY/DIAM
  IS: *DIR*
    COPDIR: MORPHOLOGY/DIAM, {Fluid}/DIAM
    ENDDIR
  ENDCASE

// Only for Droplets with Phase Change
//      CHAR: MORPHOLOGY_OPTION = Phase Change 

  CASE: {SourceDir}/{MmsName}/MORPHOLOGY/CONDRF
  IS: *DIR*
    COPDIR: MORPHOLOGY/CONDRF, {Fluid}/CONDRF
    ENDDIR
  ENDCASE

// Only for Dispersed Solid
  CASE: {SourceDir}/{MmsName}/MORPHOLOGY/RES_COEF
  IS: *DIR*
    COPDIR: MORPHOLOGY/RES_COEF, {Fluid}/RES_COEF
    ENDDIR
  ENDCASE
END

DOMAIN: FLUID DEFINITION, Material Library
  MAKDIR: {Fluid}
    CATLG: FLUID
    CATLG: PHASE
    CHAR: ALIAS
    CHAR: CMAT
    CHAR: ALIAS_CMAT
  ENDDIR

  CHAR: MORPHOLOGY/OPTION, {Fluid}/MORPHOLOGY_OPTION

  CASE: {SourceDir}/{MmsName}/MORPHOLOGY/OPTION
  IS: Continuous Fluid
    CHAR: {Fluid}/MORPHOLOGY = C
  IS: Continuous Solid
    CHAR: {Fluid}/MORPHOLOGY = C
  IS: Dispersed Fluid
    CHAR: {Fluid}/MORPHOLOGY = D
  IS: Dispersed Solid
    CHAR: {Fluid}/MORPHOLOGY = D
  IS: Dispersed Particle Transport Fluid
    CHAR: {Fluid}/MORPHOLOGY = D
  IS: Dispersed Particle Transport Solid
    CHAR: {Fluid}/MORPHOLOGY = D
  IS: Droplets with Phase Change
    CHAR: {Fluid}/MORPHOLOGY = D
  IS: Polydispersed Fluid
    CHAR: {Fluid}/MORPHOLOGY = P
  ELSE
    MESAGE: Invalid Morphology Option
    EXIT
  ENDCASE
    
  CASE: {SourceDir}/{MmsName}/MORPHOLOGY/MIN_VOLFRC
  IS: *DIR*
    COPDIR: MORPHOLOGY/MIN_VOLFRC, {Fluid}/MIN_VOLFRC
    ENDDIR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/MORPHOLOGY/MAX_VOLFRC
  IS: *DIR*
    COPDIR: MORPHOLOGY/MAX_VOLFRC, {Fluid}/MAX_VOLFRC
    ENDDIR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/MORPHOLOGY/DIAM
  IS: *DIR*
    COPDIR: MORPHOLOGY/DIAM, {Fluid}/DIAM
    ENDDIR
  ENDCASE

// Only for Droplets with Phase Change
//      CHAR: MORPHOLOGY_OPTION = Phase Change 

  CASE: {SourceDir}/{MmsName}/MORPHOLOGY/CONDRF
  IS: *DIR*
    COPDIR: MORPHOLOGY/CONDRF, {Fluid}/CONDRF
    ENDDIR
  ENDCASE

// Only for Dispersed Solid
  CASE: {SourceDir}/{MmsName}/MORPHOLOGY/RES_COEF
  IS: *DIR*
    COPDIR: MORPHOLOGY/RES_COEF, {Fluid}/RES_COEF
    ENDDIR
  ENDCASE
END

DOMAIN: FLUID MODELS
END

DOMAIN: FLUID PAIR
  COPDIR: ., {FluidPair}
    CATLG: PP
  ENDDIR
END

DOMAIN: INITIALISATION, Automatic
//  CHAR: /FLOW/INITCON/{Zone}/ICTYPE = AUTO_DEF
END

DOMAIN: INITIALISATION, Default
  CHAR: /FLOW/INITCON/{Zone}/ICTYPE = DEFAULT
END

DOMAIN: MULTIPHASE MODELS
END

DOMAIN: PARTICLE DEFINITION, Material Library
  CASE: {SourceDir}/{MmsName}/MORPHOLOGY/OPTION
  IS: Dispersed Particle Transport Fluid
    MAKDIR: /PARTICLE/PHYSICS/{Zone}/{Particle}
      CATLG: PT
      CHAR: ALIAS
      CHAR: CMAT
      CHAR: ALIAS_CMAT
    ENDDIR
  IS: Dispersed Particle Transport Solid
    MAKDIR: /PARTICLE/PHYSICS/{Zone}/{Particle}
      CATLG: PT
      CHAR: ALIAS
      CHAR: CMAT
      CHAR: ALIAS_CMAT
    ENDDIR
  ELSE  
    MAKDIR: {Fluid}
      CATLG: FLUID
      CATLG: PHASE
      CHAR: ALIAS
      CHAR: CMAT
      CHAR: ALIAS_CMAT
    ENDDIR
  ENDCASE

  CHAR: MORPHOLOGY/OPTION, /PARTICLE/PHYSICS/{Zone}/{Particle}/MORPHOLOGY_OPTIO\
N

  CASE: {SourceDir}/{MmsName}/MORPHOLOGY/OPTION
  IS: Continuous Fluid
    CHAR: /PARTICLE/PHYSICS/{Zone}/{Particle}/MORPHOLOGY = C
  IS: Continuous Solid
    CHAR: /PARTICLE/PHYSICS/{Zone}/{Particle}/MORPHOLOGY = C
  IS: Dispersed Fluid
    CHAR: /PARTICLE/PHYSICS/{Zone}/{Particle}/MORPHOLOGY = D
  IS: Dispersed Solid
    CHAR: /PARTICLE/PHYSICS/{Zone}/{Particle}/MORPHOLOGY = D
  IS: Dispersed Particle Transport Fluid
    CHAR: /PARTICLE/PHYSICS/{Zone}/{Particle}/MORPHOLOGY = D
  IS: Dispersed Particle Transport Solid
    CHAR: /PARTICLE/PHYSICS/{Zone}/{Particle}/MORPHOLOGY = D
  IS: Droplets with Phase Change
    CHAR: /PARTICLE/PHYSICS/{Zone}/{Particle}/MORPHOLOGY = D
  IS: Polydispersed Fluid
    CHAR: /PARTICLE/PHYSICS/{Zone}/{Particle}/MORPHOLOGY = P
  ELSE
    MESAGE: Invalid Morphology Option
    EXIT
  ENDCASE
    
  CASE: {SourceDir}/{MmsName}/MORPHOLOGY/MIN_VOLFRC
  IS: *DIR*
    COPDIR: MORPHOLOGY/MIN_VOLFRC, {Fluid}/MIN_VOLFRC
    ENDDIR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/MORPHOLOGY/MAX_VOLFRC
  IS: *DIR*
    COPDIR: MORPHOLOGY/MAX_VOLFRC, {Fluid}/MAX_VOLFRC
    ENDDIR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/MORPHOLOGY/DIAM
  IS: *DIR*
    COPDIR: MORPHOLOGY/DIAM, {Fluid}/DIAM
    ENDDIR
  ENDCASE

// Only for Droplets with Phase Change
//      CHAR: MORPHOLOGY_OPTION = Phase Change 

  CASE: {SourceDir}/{MmsName}/MORPHOLOGY/CONDRF
  IS: *DIR*
    COPDIR: MORPHOLOGY/CONDRF, {Fluid}/CONDRF
    ENDDIR
  ENDCASE

// Only for Dispersed Solid
  CASE: {SourceDir}/{MmsName}/MORPHOLOGY/RES_COEF
  IS: *DIR*
    COPDIR: MORPHOLOGY/RES_COEF, {Fluid}/RES_COEF
    ENDDIR
  ENDCASE
END

DOMAIN: PARTICLE INJECTION REGION
  MAKDIR: /PARTICLE/BOUNDCON/{Zone}/{MmsName}
    CATLG: PIR
    CHAR: ALIAS
  ENDDIR
END

DOMAIN: INJECTION REGION
  MAKDIR: /FLOW/PHYSICS/{Zone}/{MmsName}
    CATLG: IR
    CHAR: ALIAS
  ENDDIR
END

DOMAIN: PARTITIONER STEP CONTROL
END

DOMAIN: POROSITY MODELS
  COPDIR: ., POROUSM
  ENDDIR

// Set defaults for Rhie-Chow inclusion
  CASE: /FLOW/PHYSICS/{Zone}/POROUSM/LOSSM/RESIST/LCOEF_RC, /FLOW/PHYSICS/{Zone\
}/POROUSM/LOSSM/RESIST
  IS: *NONE*,*DIR*
    LOGL: POROUSM/LOSSM/RESIST/LCOEF_RC = .TRUE.
  ENDCASE
  CASE: /FLOW/PHYSICS/{Zone}/POROUSM/LOSSM/DIRLOSS/LCOEF_RC, /FLOW/PHYSICS/{Zon\
e}/POROUSM/LOSSM/DIRLOSS
  IS: *NONE*,*DIR*
    LOGL: POROUSM/LOSSM/DIRLOSS/LCOEF_RC = .TRUE.
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CASE: /FLOW/PHYSICS/{Zone}/POROUSM/{Fluid}/LOSSM/RESIST/LCOEF_RC, /FLOW/PHY\
SICS/{Zone}/POROUSM/{Fluid}/LOSSM/RESIST
    IS: *NONE*,*DIR*
      LOGL: POROUSM/{Fluid}/LOSSM/RESIST/LCOEF_RC = .TRUE.
    ENDCASE
    CASE: /FLOW/PHYSICS/{Zone}/POROUSM/{Fluid}/LOSSM/DIRLOSS/LCOEF_RC, /FLOW/PH\
YSICS/{Zone}/POROUSM/{Fluid}/LOSSM/DIRLOSS
    IS: *NONE*,*DIR*
      LOGL: POROUSM/{Fluid}/LOSSM/DIRLOSS/LCOEF_RC = .TRUE.
    ENDCASE
  ENDFOR

  RENAM: /FLOW/PHYSICS/{Zone}/POROUSM/POROVOL/FLUPOROV, /FLOW/PHYSICS/{Zone}/FL\
UPOROV
  CASE: /FLOW/PHYSICS/{Zone}/POROUSM/POROAREA/FLUPOROA
  IS: *DIR*
    RENAM: /FLOW/PHYSICS/{Zone}/POROUSM/POROAREA/FLUPOROA, /FLOW/PHYSICS/{Zone}\
/FLUPOROA
  ENDCASE
END

DOMAIN: SOLID DEFINITION, Material Library
  MAKDIR: {Solid}
    CATLG: SOLID
    CATLG: PHASE
    CHAR: ALIAS
    CHAR: CMAT
    CHAR: ALIAS_CMAT
  ENDDIR

  CHAR: MORPHOLOGY/OPTION, {Solid}/MORPHOLOGY_OPTION

  CASE: {SourceDir}/{MmsName}/MORPHOLOGY/OPTION
  IS: Continuous Fluid
    CHAR: {Solid}/MORPHOLOGY = C
  IS: Continuous Solid
    CHAR: {Solid}/MORPHOLOGY = C
  IS: Dispersed Fluid
    CHAR: {Solid}/MORPHOLOGY = D
  IS: Dispersed Solid
    CHAR: {Solid}/MORPHOLOGY = D
  IS: Dispersed Particle Transport Fluid
    CHAR: {Solid}/MORPHOLOGY = D
  IS: Dispersed Particle Transport Solid
    CHAR: {Solid}/MORPHOLOGY = D
  IS: Droplets with Phase Change
    CHAR: {Solid}/MORPHOLOGY = D
  IS: Polydispersed Fluid
    CHAR: {Solid}/MORPHOLOGY = P
  ELSE
    MESAGE: Invalid Morphology Option
    EXIT
  ENDCASE
END

DOMAIN: SOLID MODELS
END

DOMAIN: SOLVER CONTROL
   CASE: {SourceDir}/{MmsName}/TRAD_CONTROL
   IS: *DIR*
     MAKDIR: /RADIATION/ALGORITHM/{Zone}
     ENDDIR
     RENAM: {SourceDir}/{MmsName}/TRAD_CONTROL, /RADIATION/ALGORITHM/{Zone}/CON\
TROL
   ENDCASE
   COPDIR: ., /FLOW/ALGORITHM/{Zone}/CONTROL
   ENDDIR
END

DOMAIN: SOURCE POINT, Cartesian Coordinates
  MAKDIR: /FLOW/PHYSICS/{Zone}/{MmsName}
    CATLG: SP
    CHAR: ALIAS
    CHAR: OPTION

    CASE: {SourceDir}/{MmsName}/COORD
    IS: *NONE*
      CHAR: {SourceDir}/COORD, COORD
    ELSE
      CHAR: COORD
    ENDCASE

    COPDIR: CARTCRD
    ENDDIR
  ENDDIR
END

DOMAIN: SOURCE POINT, Cylindrical Coordinates
  MAKDIR: /FLOW/PHYSICS/{Zone}/{MmsName}
    CATLG: SP
    CHAR: ALIAS
    CHAR: OPTION

    CASE: {SourceDir}/{MmsName}/COORD
    IS: *NONE*
      CHAR: {SourceDir}/COORD, COORD
    ELSE
      CHAR: COORD
    ENDCASE

    COPDIR: CYLCRD
    ENDDIR
  ENDDIR
END

DOMAIN: SUBDOMAIN
  // Preserve user name for possible output
  MAKDIR: /FLOW/PHYSICS/{Zone}/{Volpat}
    CHAR: ALIAS

    CASE: {SourceDir}/{MmsName}/COORD
    IS: *NONE*
      CHAR: {SourceDir}/COORD, COORD
    ELSE
      CHAR: COORD
    ENDCASE
  ENDDIR

  // MESH MOTION
  CASE: /FLOW/{Zone}/{Volpat}/MESH_MOTION/
  IS: *DIR*
     COPDIR: /FLOW/{Zone}/{Volpat}/MESH_MOTION,/FLOW/PHYSICS/{Zone}/{Volpat}/ME\
SH_MOTION
     ENDDIR
     RENAM: /FLOW/PHYSICS/{Zone}/{Volpat}/MESH_MOTION/LOCATION/VALUE, /FLOW/PHY\
SICS/{Zone}/{Volpat}/MESH_MOTION/MESHDISP
     RENAM: /FLOW/PHYSICS/{Zone}/{Volpat}/MESH_MOTION/DISPLACEMENT/VALUE, /FLOW\
/PHYSICS/{Zone}/{Volpat}/MESH_MOTION/MESHDISP
  ENDCASE

  CASE: /FLOW/PHYSICS/{Zone}/{Volpat}/MESH_MOTION/OPTION
  IS: Rigid Body Solution
     MAKDIR: /FLOW/PHYSICS/{Zone}/{Volpat}/MESH_MOTION/MESHDISP
       CHAR: HOW = RBS
       INTR: NVALUES = 3
     ENDDIR
     CHAR: /FLOW/PHYSICS/{Zone}/{Volpat}/MESH_MOTION/VPTYPE = SPEC_VAR_MDISP
  ISNOT: *NONE*
     CHAR: /FLOW/PHYSICS/{Zone}/{Volpat}/MESH_MOTION/VPTYPE = SPEC_VAR_MDISP
  ENDCASE

  // PARTICLE ABSORPTION
  FOR: Partl = /FLOW/{Zone}/CPT
    CASE: /FLOW/{Zone}/{Volpat}/{Partl}/PARTABSORP/
    IS: *DIR*
       COPDIR: /FLOW/{Zone}/{Volpat}/{Partl}/PARTABSORP,/FLOW/PHYSICS/{Zone}/{V\
olpat}/{Partl}/PARTABSORP
       ENDDIR
    ENDCASE
  ENDFOR
END

///////////////////////////////////////////////////////////////////////////////
//   DI data area (Domain Interface Objects)
///////////////////////////////////////////////////////////////////////////////

DI: INTERFACE MODELS, General Connection
  CHAR: OPTION
  LOGL: AUTO_TRANSF = .TRUE.
END

DI: INTERFACE MODELS, Quasi 2D Axisymmetric
  CHAR: OPTION
  CHAR: PERTYPE = Rotational
  COPDIR: AXIS
  ENDDIR
END

DI: INTERFACE MODELS, Quasi 2D Planar
  CHAR: OPTION
  CHAR: PERTYPE = Translational
END

DI: INTERFACE MODELS, Rotational Periodicity
  CHAR: OPTION
  CHAR: PERTYPE = Rotational
  COPDIR: AXIS
  ENDDIR
  LOGL: AUTO_TRANSF = .FALSE.
END

DI: INTERFACE MODELS, Translational Periodicity
  CHAR: OPTION
  CHAR: PERTYPE = Translational
  LOGL: AUTO_TRANSF = .TRUE.
END

DI: MESH CONNECTION, Automatic
  CHAR: ZIFTYPE = Automatic
END

DI: MESH CONNECTION, Direct
  CHAR: ZIFTYPE = Vx_TO_Vx
END

DI: MESH CONNECTION, GGI
  CHAR: ZIFTYPE = GGI
END

DI: SOLID INTERFACE MODELS
END

///////////////////////////////////////////////////////////////////////////////
//   DM data area
///////////////////////////////////////////////////////////////////////////////

DM: BUOYANCY MODEL, Buoyant
  // Set buoyancy model to CHOOSE_CBUOY (solver front end decides model)
  FOR: Fluid = {CurrentFluidList}
     MAKDIR: {Fluid}
       CHAR: CBUOYM = CHOOSE_CBUOYM
     ENDDIR
  ENDFOR

  COPDIR: GRAV
  ENDDIR
  COPDIR: DENBUO
  ENDDIR
  COPDIR: TEMBUO
  ENDDIR
  COPDIR: LOCBUO
  ENDDIR

  CASE: {SourceDir}/{MmsName}/LREDIST_RC
  ISNOT: *NONE*
    LOGL: LREDIST_RC, LBUOY_RC
  ENDCASE

  CASE: {SourceDir}/{MmsName}/FTL
  ISNOT: *NONE*
    COPDIR: FTL, FTL_BUOY
    ENDDIR
  ENDCASE
END

DM: BUOYANCY MODEL, Non Buoyant
  FOR: Fluid = {CurrentFluidList}
     MAKDIR: {Fluid}
       CHAR: CBUOYM = /SPACE
     ENDDIR
  ENDFOR
END

DM: DOMAIN MOTION, General Motion

  LOGL: LROTAT =.FALSE.
  LOGL: LTRNSLT =.FALSE.
  LOGL: LMOVFRM=.TRUE.

  COPDIR: ., MOTION
  ENDDIR

END

DM: DOMAIN MOTION, Rigid Body Solution

  LOGL: LROTAT =.FALSE.
  LOGL: LTRNSLT =.FALSE.
  LOGL: LMOVFRM=.TRUE.

  COPDIR: ., MOTION
  ENDDIR

END

DM: DOMAIN MOTION, Rotating

  LOGL: LROTAT=.TRUE.
  LOGL: LTRNSLT =.FALSE.
  LOGL: LMOVFRM=.TRUE.
  LOGL: LAROTM

  CASE: {SourceDir}/{MmsName}/LREDIST_RC
  IS: *NONE*
  ELSE
    LOGL: LREDIST_RC, LROTAT_RC
  ENDCASE

  COPDIR: DENROT
  ENDDIR

  COPDIR: LOCROT
  ENDDIR

  COPDIR: ., MOTION
  ENDDIR

  // If rotation axis is specified, check it is consistent
  CASE: {SourceDir}/{MmsName}/AXIS/AROT, {SourceDir}/{MmsName}/AXIS/BROT
  IS: *DIR*,*NONE*
     MESAGE: Invalid DOMAIN rotation axis specification 
     EXIT
  IS: *NONE*,*DIR*
     MESAGE: Invalid DOMAIN rotation axis specification 
     EXIT
  ENDCASE
END

DM: DOMAIN MOTION, Specified Displacement

  LOGL: LTRNSLT =.FALSE.
  LOGL: LROTAT=.FALSE.
  LOGL: LMOVFRM=.TRUE.

  COPDIR: ., MOTION
  ENDDIR

END

DM: DOMAIN MOTION, Speed and Direction

  LOGL: LTRNSLT =.TRUE.
  LOGL: LROTAT=.FALSE.
  LOGL: LMOVFRM=.TRUE.

  COPDIR: ., MOTION
  ENDDIR

END

DM: DOMAIN MOTION, Stationary

  LOGL: LROTAT =.FALSE.
  LOGL: LTRNSLT =.FALSE.
  LOGL: LMOVFRM=.FALSE.

  COPDIR: ., MOTION
  ENDDIR

END

DM: MESH DEFORMATION, Junction Box Routine
  LOGL: LMMESH = .TRUE.
  COPDIR: .,MMESHM/JBOX_ROUTINES
  ENDDIR

  CHAR: {TargetDir}/MMESHM/JBOX_ROUTINES/OPTION, \
        {TargetDir}/MMESHM/OPTION
END

DM: MESH DEFORMATION, None
  LOGL: LMMESH = .FALSE.
END

DM: MESH DEFORMATION, Regions of Motion Specified
  LOGL: LMMESH = .TRUE.
  LOGL: LMESHDISP = .TRUE.
  COPDIR: .,MMESHM
  ENDDIR

  CASE: {TargetDir}/MMESHM/MESH_MOTION_MODEL/MESH_STIFFNESS/DIFFMESH, \
        {TargetDir}/MMESHM/MESH_MOTION_MODEL/MESH_STIFFNESS/OPTION
    IS: *DIR*, Value
      CHAR: {TargetDir}/MMESHM/MESH_MOTION_MODEL/MESH_STIFFNESS/OPTION, \
            {TargetDir}/MMESHM/MESH_MOTION_MODEL/MESH_STIFFNESS/DIFFMESH/OPTION
    IS: *DIR*, Anisotropic Components
      CHAR: {TargetDir}/MMESHM/MESH_MOTION_MODEL/MESH_STIFFNESS/OPTION, \
            {TargetDir}/MMESHM/MESH_MOTION_MODEL/MESH_STIFFNESS/DIFFMESH/OPTION
  ENDCASE 
END

DM: MESH DEFORMATION, Periodic Regions of Motion
  LOGL: LMMESH = .TRUE.
  LOGL: LMESHDISP = .TRUE.
  COPDIR: .,MMESHM
  ENDDIR

  CASE: {TargetDir}/MMESHM/PERMODEL
    IS: Complex Displacement
      DELDAT: {TargetDir}/MMESHM/OPTION
      CHAR: {TargetDir}/MMESHM/OPTION = Periodic Motion
    IS: Store and Restore
      DELDAT: {TargetDir}/MMESHM/OPTION
      CHAR: {TargetDir}/MMESHM/OPTION = Store and Restore Periodic Regions
  ENDCASE 

  CASE: {TargetDir}/MMESHM/MESH_MOTION_MODEL/MESH_STIFFNESS/DIFFMESH, \
        {TargetDir}/MMESHM/MESH_MOTION_MODEL/MESH_STIFFNESS/OPTION
    IS: *DIR*, Value
      CHAR: {TargetDir}/MMESHM/MESH_MOTION_MODEL/MESH_STIFFNESS/OPTION, \
            {TargetDir}/MMESHM/MESH_MOTION_MODEL/MESH_STIFFNESS/DIFFMESH/OPTION
    IS: *DIR*, Anisotropic Components
      CHAR: {TargetDir}/MMESHM/MESH_MOTION_MODEL/MESH_STIFFNESS/OPTION, \
            {TargetDir}/MMESHM/MESH_MOTION_MODEL/MESH_STIFFNESS/DIFFMESH/OPTION
  ENDCASE 
END

DM: PASSAGE DEFINITION
  COPDIR: ., PASSAGE
  ENDDIR
END

DM: REFERENCE PRESSURE
  COPDIR: PREF
  ENDDIR
END

///////////////////////////////////////////////////////////////////////////////
//   FM data area
///////////////////////////////////////////////////////////////////////////////

FM: ADDITIONAL VARIABLE, Algebraic Equation
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {Fluid}
      MAKDIR: {AddVar}
        CATLG: ADV
        CHAR: OPTION = {Option}
        COPDIR: AV
        ENDDIR
      ENDDIR
    ENDDIR
  ENDFOR
END

FM: ADDITIONAL VARIABLE, Diffusion Details
  CASE: {SourceDir}/{MmsName}/DIFFKIN, \
        {SourceDir}/{MmsName}/DIFFKIN/OPTION
    IS: *DIR*, *NONE*
      COPDIR: DIFFKIN
      ENDDIR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/DIFFKIN/DIFFKIN, \
        {SourceDir}/{MmsName}/DIFFKIN/OPTION
    IS: *DIR*, Value
      COPDIR: DIFFKIN/DIFFKIN, DIFFKIN
      ENDDIR
    IS: *DIR*, Orthotropic Cylindrical Components
      COPDIR: DIFFKIN/DIFFKIN, DIFFKIN
        CHAR: DIFFKIN/OPTION, OPTION
      ENDDIR
      COPDIR: DIFFKIN/AXIS, DIFFKIN/AXIS
      ENDDIR
    IS: *DIR*, Orthotropic Cartesian Components
      COPDIR: DIFFKIN/DIFFKIN, DIFFKIN
        CHAR: DIFFKIN/OPTION, OPTION
      ENDDIR
    IS: *DIR*, Anisotropic Components
      COPDIR: DIFFKIN/DIFFKIN, DIFFKIN
        CHAR: DIFFKIN/OPTION, OPTION
      ENDDIR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/TFC
    IS: *DIR*
      COPDIR: TFC
      ENDDIR
  ENDCASE
END

FM: ADDITIONAL VARIABLE, Diffusive Transport Equation
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {Fluid}
      MAKDIR: {AddVar}
        CATLG: ADV
        CHAR: OPTION = {Option}

        USE: FM: ADDITIONAL VARIABLE, Diffusion Details

      ENDDIR
    ENDDIR
  ENDFOR
END
 
FM: ADDITIONAL VARIABLE, Fluid Dependent
END

FM: ADDITIONAL VARIABLE, Homogeneous Algebraic Equation
  MAKDIR: {AddVar}
    CATLG: ADV_HOMO
    CHAR: OPTION = {Option}
    COPDIR: AV
    ENDDIR
  ENDDIR
END
 
FM: ADDITIONAL VARIABLE, Homogeneous Diffusive Transport Equation
  MAKDIR: {AddVar}
    CATLG: ADV_HOMO
    CHAR: OPTION = {Option}
    FOR: Fluid = {CurrentFluidList}
      COPDIR: {Fluid}
      ENDDIR
    ENDFOR
  ENDDIR
END

FM: ADDITIONAL VARIABLE, Homogeneous Poisson Equation
  MAKDIR: {AddVar}
    CATLG: ADV_HOMO
    CHAR: OPTION = {Option}
    FOR: Fluid = {CurrentFluidList}
      COPDIR: {Fluid}
      ENDDIR
    ENDFOR
  ENDDIR
END

FM: ADDITIONAL VARIABLE, Homogeneous Transport Equation
  MAKDIR: {AddVar}
    CATLG: ADV_HOMO
    CHAR: OPTION = {Option}
    FOR: Fluid = {CurrentFluidList}
      COPDIR: {Fluid}
      ENDDIR
    ENDFOR
  ENDDIR
END

FM: ADDITIONAL VARIABLE, Not Used
END

FM: ADDITIONAL VARIABLE, Particle Additional Variable Model
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {Fluid}
      MAKDIR: {AddVar}
        CHAR: OPTION = {Option}
        CATLG: ADV
      ENDDIR
    ENDDIR
  ENDFOR
END

FM: ADDITIONAL VARIABLE, Poisson Equation
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {Fluid}
      MAKDIR: {AddVar}
        CATLG: ADV
        CHAR: OPTION = {Option}

        USE: FM: ADDITIONAL VARIABLE, Diffusion Details

      ENDDIR
    ENDDIR
  ENDFOR
END

FM: ADDITIONAL VARIABLE, Transport Equation
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {Fluid}
      MAKDIR: {AddVar}
        CATLG: ADV
        CHAR: OPTION = {Option}

        USE: FM: ADDITIONAL VARIABLE, Diffusion Details

      ENDDIR
    ENDDIR
  ENDFOR
END

FM: ADDITIONAL VARIABLE, Vector Algebraic Equation
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {Fluid}
      MAKDIR: {AddVar}
        CATLG: ADV
        // edit solver option
        CHAR: dummy, OPTION = Algebraic Equation
        // edit solver name of CEL directory
        COPDIR: VALUE, AV
        ENDDIR
      ENDDIR
    ENDDIR
  ENDFOR
END

FM: COMBUSTION MODEL, Burning Velocity Model
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CCOMBM = MXF:RPV:BVM
    COPDIR: ., {Fluid}/COMBM
    ENDDIR

    CASE: ./{Fluid}/COMBM/RESIDMAT_MODEL/OPTION
    IS: Exhaust Gas
      CHAR: {Fluid}/COMBM/CRESIDM = EGR
    IS: Inert
      CHAR: {Fluid}/COMBM/CRESIDM = INERT
    ELSE
      CHAR: {Fluid}/COMBM/CRESIDM = /SPACE
    ENDCASE

    CASE: ./{Fluid}/COMBM/AUTOIGN_MODEL/OPTION
    IS: Knock
      CHAR: {Fluid}/COMBM/CAUTOIGNM = KNOCK
    IS: Ignition Delay
      CHAR: {Fluid}/COMBM/CAUTOIGNM = IGNDELAY
    ELSE
      CHAR: {Fluid}/COMBM/CAUTOIGNM = /SPACE
    ENDCASE

    CASE: ./{Fluid}/COMBM/SOOT_MODEL/OPTION
    IS: Magnussen
      RENAM: /FLOW/PHYSICS/{Zone}/{Fluid}/COMBM/SOOT_MODEL, \
             /FLOW/PHYSICS/{Zone}/{Fluid}/SOOTM
      CHAR: {Fluid}/CSOOTM = MAGNUSSEN
    ENDCASE

    CASE: ./{Fluid}/COMBM/SPARK_IGNITION/OPTION
    IS: User Defined
      RENAM: /FLOW/PHYSICS/{Zone}/{Fluid}/COMBM/SPARK_IGNITION/REACPROG, \
             /FLOW/PHYSICS/{Zone}/{Fluid}/COMBM/SPARK_IGNITION/SPARKRGN
    ENDCASE
  ENDFOR
END

FM: COMBUSTION MODEL, Eddy Dissipation
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CCOMBM = EDM:
    COPDIR: ., {Fluid}/COMBM
    ENDDIR

    CASE: ./{Fluid}/COMBM/AUTOIGN_MODEL/OPTION
    IS: Knock
      CHAR: {Fluid}/COMBM/CAUTOIGNM = KNOCK
    IS: Ignition Delay
      CHAR: {Fluid}/COMBM/CAUTOIGNM = IGNDELAY
    ELSE
      CHAR: {Fluid}/COMBM/CAUTOIGNM = /SPACE
    ENDCASE

    CASE: ./{Fluid}/COMBM/SOOT_MODEL/OPTION
    IS: Magnussen
      RENAM: /FLOW/PHYSICS/{Zone}/{Fluid}/COMBM/SOOT_MODEL, \
             /FLOW/PHYSICS/{Zone}/{Fluid}/SOOTM
      CHAR: {Fluid}/CSOOTM = MAGNUSSEN
    ENDCASE
  ENDFOR
END

FM: COMBUSTION MODEL, Extended Coherent Flame Model
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CCOMBM = MXF:RPV:FSD
    COPDIR: ., {Fluid}/COMBM
    ENDDIR

    CASE: ./{Fluid}/COMBM/RESIDMAT_MODEL/OPTION
    IS: Exhaust Gas
      CHAR: {Fluid}/COMBM/CRESIDM = EGR
    IS: Inert
      CHAR: {Fluid}/COMBM/CRESIDM = INERT
    ELSE
      CHAR: {Fluid}/COMBM/CRESIDM = /SPACE
    ENDCASE

    CASE: ./{Fluid}/COMBM/AUTOIGN_MODEL/OPTION
    IS: Knock
      CHAR: {Fluid}/COMBM/CAUTOIGNM = KNOCK
    IS: Ignition Delay
      CHAR: {Fluid}/COMBM/CAUTOIGNM = IGNDELAY
    ELSE
      CHAR: {Fluid}/COMBM/CAUTOIGNM = /SPACE
    ENDCASE

    CASE: ./{Fluid}/COMBM/SOOT_MODEL/OPTION
    IS: Magnussen
      RENAM: /FLOW/PHYSICS/{Zone}/{Fluid}/COMBM/SOOT_MODEL, \
             /FLOW/PHYSICS/{Zone}/{Fluid}/SOOTM
      CHAR: {Fluid}/CSOOTM = MAGNUSSEN
    ENDCASE

    CASE: ./{Fluid}/COMBM/SPARK_IGNITION/OPTION
    IS: User Defined
      RENAM: /FLOW/PHYSICS/{Zone}/{Fluid}/COMBM/SPARK_IGNITION/REACPROG, \
             /FLOW/PHYSICS/{Zone}/{Fluid}/COMBM/SPARK_IGNITION/SPARKRGN
    ENDCASE
  ENDFOR
END

FM: COMBUSTION MODEL, Finite Rate Chemistry
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CCOMBM = CKIN:
    COPDIR: ., {Fluid}/COMBM
    ENDDIR

    CASE: ./{Fluid}/COMBM/AUTOIGN_MODEL/OPTION
    IS: Knock
      CHAR: {Fluid}/COMBM/CAUTOIGNM = KNOCK
    IS: Ignition Delay
      CHAR: {Fluid}/COMBM/CAUTOIGNM = IGNDELAY
    ELSE
      CHAR: {Fluid}/COMBM/CAUTOIGNM = /SPACE
    ENDCASE

    CASE: ./{Fluid}/COMBM/SOOT_MODEL/OPTION
    IS: Magnussen
      RENAM: /FLOW/PHYSICS/{Zone}/{Fluid}/COMBM/SOOT_MODEL, \
             /FLOW/PHYSICS/{Zone}/{Fluid}/SOOTM
      CHAR: {Fluid}/CSOOTM = MAGNUSSEN
    ENDCASE
  ENDFOR
END

FM: COMBUSTION MODEL, Finite Rate Chemistry and Eddy Dissipation
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CCOMBM = CKIN:EDM
    COPDIR: ., {Fluid}/COMBM
    ENDDIR

    CASE: ./{Fluid}/COMBM/AUTOIGN_MODEL/OPTION
    IS: Knock
      CHAR: {Fluid}/COMBM/CAUTOIGNM = KNOCK
    IS: Ignition Delay
      CHAR: {Fluid}/COMBM/CAUTOIGNM = IGNDELAY
    ELSE
      CHAR: {Fluid}/COMBM/CAUTOIGNM = /SPACE
    ENDCASE

    CASE: ./{Fluid}/COMBM/SOOT_MODEL/OPTION
    IS: Magnussen
      RENAM: /FLOW/PHYSICS/{Zone}/{Fluid}/COMBM/SOOT_MODEL, \
             /FLOW/PHYSICS/{Zone}/{Fluid}/SOOTM
      CHAR: {Fluid}/CSOOTM = MAGNUSSEN
    ENDCASE
  ENDFOR
END

FM: COMBUSTION MODEL, Fluid Dependent
END

FM: COMBUSTION MODEL, G Equation
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CCOMBM = MXF:RPV:GEQ
    COPDIR: ., {Fluid}/COMBM
    ENDDIR

    CASE: ./{Fluid}/COMBM/RESIDMAT_MODEL/OPTION
    IS: Exhaust Gas
      CHAR: {Fluid}/COMBM/CRESIDM = EGR
    IS: Inert
      CHAR: {Fluid}/COMBM/CRESIDM = INERT
    ELSE
      CHAR: {Fluid}/COMBM/CRESIDM = /SPACE
    ENDCASE

    CASE: ./{Fluid}/COMBM/AUTOIGN_MODEL/OPTION
    IS: Knock
      CHAR: {Fluid}/COMBM/CAUTOIGNM = KNOCK
    IS: Ignition Delay
      CHAR: {Fluid}/COMBM/CAUTOIGNM = IGNDELAY
    ELSE
      CHAR: {Fluid}/COMBM/CAUTOIGNM = /SPACE
    ENDCASE

    CASE: ./{Fluid}/COMBM/SOOT_MODEL/OPTION
    IS: Magnussen
      RENAM: /FLOW/PHYSICS/{Zone}/{Fluid}/COMBM/SOOT_MODEL, \
             /FLOW/PHYSICS/{Zone}/{Fluid}/SOOTM
      CHAR: {Fluid}/CSOOTM = MAGNUSSEN
    ENDCASE

    CASE: ./{Fluid}/COMBM/SPARK_IGNITION/OPTION
    IS: User Defined
      RENAM: /FLOW/PHYSICS/{Zone}/{Fluid}/COMBM/SPARK_IGNITION/REACPROG, \
             /FLOW/PHYSICS/{Zone}/{Fluid}/COMBM/SPARK_IGNITION/SPARKRGN
    ENDCASE
  ENDFOR
END

FM: COMBUSTION MODEL, Laminar Flamelet with PDF
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CCOMBM = MXF:FLM
    COPDIR: ., {Fluid}/COMBM
    ENDDIR

    CASE: ./{Fluid}/COMBM/RESIDMAT_MODEL/OPTION
    IS: Exhaust Gas
      CHAR: {Fluid}/COMBM/CRESIDM = EGR
    IS: Inert
      CHAR: {Fluid}/COMBM/CRESIDM = INERT
    ELSE
      CHAR: {Fluid}/COMBM/CRESIDM = /SPACE
    ENDCASE

    CASE: ./{Fluid}/COMBM/AUTOIGN_MODEL/OPTION
    IS: Knock
      CHAR: {Fluid}/COMBM/CAUTOIGNM = KNOCK
    IS: Ignition Delay
      CHAR: {Fluid}/COMBM/CAUTOIGNM = IGNDELAY
    ELSE
      CHAR: {Fluid}/COMBM/CAUTOIGNM = /SPACE
    ENDCASE

    CASE: ./{Fluid}/COMBM/SOOT_MODEL/OPTION
    IS: Magnussen
      RENAM: /FLOW/PHYSICS/{Zone}/{Fluid}/COMBM/SOOT_MODEL, \
             /FLOW/PHYSICS/{Zone}/{Fluid}/SOOTM
      CHAR: {Fluid}/CSOOTM = MAGNUSSEN
    ENDCASE
  ENDFOR
END

FM: COMBUSTION MODEL, Lindstedt Vaos
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CCOMBM = MXF:RPV:L-V
    COPDIR: ., {Fluid}/COMBM
    ENDDIR
    CASE: ./{Fluid}/COMBM/TFLMSTR/OPTION
    IS: ITNFS
      RENAM: /FLOW/PHYSICS/{Zone}/{Fluid}/COMBM/TFLMSTR/LFLMTHCK, \
             /FLOW/PHYSICS/{Zone}/{Fluid}/COMBM/LFLMTHCK
    ENDCASE

    CASE: ./{Fluid}/COMBM/RESIDMAT_MODEL/OPTION
    IS: Exhaust Gas
      CHAR: {Fluid}/COMBM/CRESIDM = EGR
    IS: Inert
      CHAR: {Fluid}/COMBM/CRESIDM = INERT
    ELSE
      CHAR: {Fluid}/COMBM/CRESIDM = /SPACE
    ENDCASE

    CASE: ./{Fluid}/COMBM/AUTOIGN_MODEL/OPTION
    IS: Knock
      CHAR: {Fluid}/COMBM/CAUTOIGNM = KNOCK
    IS: Ignition Delay
      CHAR: {Fluid}/COMBM/CAUTOIGNM = IGNDELAY
    ELSE
      CHAR: {Fluid}/COMBM/CAUTOIGNM = /SPACE
    ENDCASE

    CASE: ./{Fluid}/COMBM/SOOT_MODEL/OPTION
    IS: Magnussen
      RENAM: /FLOW/PHYSICS/{Zone}/{Fluid}/COMBM/SOOT_MODEL, \
             /FLOW/PHYSICS/{Zone}/{Fluid}/SOOTM
      CHAR: {Fluid}/CSOOTM = MAGNUSSEN
    ENDCASE
  ENDFOR
END

FM: COMBUSTION MODEL, None
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CCOMBM = /SPACE
    COPDIR: ., {Fluid}/COMBM
    ENDDIR
  ENDFOR
END

FM: COMPONENT, Algebraic Equation
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {Fluid}
      MAKDIR: {Component}
        CATLG: COMLS
        CHAR: OPTION = {Option}
        COPDIR: MASFRC
        ENDDIR
        CASE: {SourceDir}/{MmsName}/MSFRBRN
          IS: *DIR*
            COPDIR: MSFRBRN
            ENDDIR
        ENDCASE
        CASE: {SourceDir}/{MmsName}/MSFRUNB
          IS: *DIR*
            COPDIR: MSFRUNB
            ENDDIR
        ENDCASE
        COPDIR: DIFFKIN
        ENDDIR
        CASE: {SourceDir}/{MmsName}/SLIPVEL
          IS: *DIR*
            COPDIR: SLIPVEL
            ENDDIR
        ENDCASE
        CASE: {SourceDir}/{MmsName}/ASM_PROPERTIES
          IS: *DIR*
            COPDIR: ASM_PROPERTIES
            ENDDIR
        ENDCASE       
      ENDDIR
    ENDDIR
  ENDFOR
END

FM: COMPONENT, Algebraic Slip
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {Fluid}
      MAKDIR: {Component}
        CATLG: COMLS
        CHAR: OPTION = {Option}
        COPDIR: ASM_PROPERTIES
        ENDDIR

        CASE: {SourceDir}/{MmsName}/TFC
          IS: *DIR*
            COPDIR: TFC
            ENDDIR
        ENDCASE

        CASE: {SourceDir}/{MmsName}/COND_MOD
          IS: *DIR*
            COPDIR: COND_MOD
            ENDDIR
        ENDCASE

      ENDDIR
    ENDDIR
  ENDFOR
END

FM: COMPONENT, Automatic
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {Fluid}
      MAKDIR: {Component}
        CATLG: COMLS
        CHAR: OPTION = {Option}
      ENDDIR
    ENDDIR
  ENDFOR
END

FM: COMPONENT, Constant Mass
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {Fluid}
      MAKDIR: {Component}
        CATLG: COMLS
        CHAR: OPTION = {Option}
      ENDDIR
    ENDDIR
  ENDFOR
END

FM: COMPONENT, Constraint
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {Fluid}
      MAKDIR: {Component}
        CATLG: COMLS
        CHAR: OPTION = {Option}
        COPDIR: DIFFKIN
        ENDDIR

        CASE: {SourceDir}/{MmsName}/COND_MOD
          IS: *DIR*
            COPDIR: COND_MOD
            ENDDIR
        ENDCASE
      ENDDIR
    ENDDIR
  ENDFOR
END

FM: COMPONENT, Equilibrium Constraint
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {Fluid}
      MAKDIR: {Component}
        CATLG: COMLS
        CHAR: OPTION = {Option}
        CASE: {SourceDir}/{MmsName}/ASM_PROPERTIES
          IS: *DIR*
            COPDIR: ASM_PROPERTIES
            ENDDIR
          ELSE:
            COPDIR: DIFFKIN
            ENDDIR
        ENDCASE    
      ENDDIR
    ENDDIR
  ENDFOR
END

FM: COMPONENT, Equilibrium Fraction
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {Fluid}
      MAKDIR: {Component}
        CATLG: COMLS
        CHAR: OPTION = {Option}
        CASE: {SourceDir}/{MmsName}/ASM_PROPERTIES
          IS: *DIR*
            COPDIR: ASM_PROPERTIES
            ENDDIR
          ELSE:
            COPDIR: DIFFKIN
            ENDDIR
        ENDCASE
      ENDDIR
    ENDDIR
  ENDFOR
END

FM: COMPONENT, Library
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {Fluid}
      MAKDIR: {Component}
        CATLG: COMLS
        CHAR: OPTION = {Option}
      ENDDIR
    ENDDIR
  ENDFOR
END

FM: COMPONENT, Species Mass Equation
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {Fluid}
      MAKDIR: {Component}
        CATLG: COMLS
        CHAR: OPTION = {Option}
      ENDDIR
    ENDDIR
  ENDFOR
END

FM: COMPONENT, Transport Equation
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {Fluid}
      MAKDIR: {Component}
        CATLG: COMLS
        CHAR: OPTION = {Option}

        CASE: {SourceDir}/{MmsName}/DIFFKIN
          IS: *DIR*
            COPDIR: DIFFKIN
            ENDDIR
        ENDCASE

        CASE: {SourceDir}/{MmsName}/TFC
          IS: *DIR*
            COPDIR: TFC
            ENDDIR
        ENDCASE

        CASE: {SourceDir}/{MmsName}/COND_MOD
          IS: *DIR*
            COPDIR: COND_MOD
            ENDDIR
        ENDCASE
      ENDDIR
    ENDDIR
  ENDFOR
END

FM: DILATATIONAL STRESS, Include in Momentum
  FOR: Fluid = {CurrentFluidList}
     COPDIR: ., {Fluid}/DILAT_STRESS
     ENDDIR
  ENDFOR
END

FM: DILATATIONAL STRESS, Include in Pressure
  FOR: Fluid = {CurrentFluidList}
     COPDIR: ., {Fluid}/DILAT_STRESS
     ENDDIR
  ENDFOR
END

FM: DILATATIONAL STRESS, None
  FOR: Fluid = {CurrentFluidList}
     COPDIR: ., {Fluid}/DILAT_STRESS
     ENDDIR
  ENDFOR
END

FM: ELECTROMAGNETIC MODEL
  FOR: Fluid = {CurrentFluidList}
    COPDIR: ., {Fluid}/EMAGM
    ENDDIR
    RENAM: /FLOW/PHYSICS/{Zone}/{Fluid}/EMAGM/BMAGM, \
           /FLOW/PHYSICS/{Zone}/{Fluid}/BMAGM
    CASE: ./{Fluid}/BMAGM/OPTION
    IS: User Defined
      CHAR: {Fluid}/CBMAGM = ALG:
    IS: Magnetic Scalar Potential
      CHAR: {Fluid}/CBMAGM = PDE:POT:SCALAR
    IS: Magnetic Vector Potential
      CHAR: {Fluid}/CBMAGM = PDE:POT:VECTOR
    ELSE:
      CHAR: {Fluid}/CBMAGM = /SPACE
    ENDCASE

    RENAM: /FLOW/PHYSICS/{Zone}/{Fluid}/EMAGM/ELECM, \
           /FLOW/PHYSICS/{Zone}/{Fluid}/ELECM
    CASE: ./{Fluid}/ELECM/OPTION
    IS: User Defined
      CHAR: {Fluid}/CELECM = ALG:
    IS: Electric Potential
      CHAR: {Fluid}/CELECM = PDE:POT:CONELEC
    IS: Electrostatic Potential
      CHAR: {Fluid}/CELECM = PDE:POT:PERMELEC
    ELSE:
      CHAR: {Fluid}/CELECM = /SPACE
    ENDCASE
    DELDIR: {Fluid}/EMAGM
  ENDFOR
END

FM: EROSION MODEL, Finnie
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,{Fluid}/EROSION
    ENDDIR
  ENDFOR
END

FM: EROSION MODEL, McLaury
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,{Fluid}/EROSION
    ENDDIR
  ENDFOR
END

FM: EROSION MODEL, None
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,{Fluid}/EROSION
    ENDDIR
  ENDFOR
END


FM: EROSION MODEL, Oka
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,{Fluid}/EROSION
    ENDDIR
  ENDFOR
END

FM: EROSION MODEL, Tabakoff
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,{Fluid}/EROSION
    ENDDIR
  ENDFOR
END

FM: EROSION MODEL, User Defined
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,{Fluid}/EROSION
    ENDDIR
  ENDFOR
END

FM: FLUID
END

FM: FLUID BUOYANCY MODEL, Boussinesq
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CFLU_BUOYM = BOUSSINESQ
    COPDIR: TEMBUO, {Fluid}/TEMBUO
    ENDDIR
  ENDFOR
END

FM: FLUID BUOYANCY MODEL, Density Difference
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CFLU_BUOYM = DENDIF*G
  ENDFOR
END

FM: FLUID BUOYANCY MODEL, Non Buoyant
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CFLU_BUOYM = /SPACE
  ENDFOR
END

FM: FLUID CONDUCTIVITY MODEL, Fluid Dependent
END

FM: FLUID CONDUCTIVITY MODEL, Use Material Property
END

FM: FLUID CONDUCTIVITY MODEL, User Defined
  FOR: Fluid = {CurrentFluidList}
     COPDIR: ., {Fluid}/FLU_CONDUCT
     ENDDIR
  ENDFOR
END

FM: FLUID VISCOSITY MODEL, Fluid Dependent
END

FM: FLUID VISCOSITY MODEL, Use Material Property
END

FM: FLUID VISCOSITY MODEL, User Defined
  FOR: Fluid = {CurrentFluidList}
     COPDIR: ., {Fluid}/FLU_VISCDYN
     ENDDIR
  ENDFOR
END

FM: HEAT TRANSFER MODEL, Fluid Dependent
  // Translate homogeneous flag

  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: HEATM/MULTIFLUID_MODELS/OPTION = Homogeneous
  IS: .FALSE.
    CHAR: HEATM/MULTIFLUID_MODELS/OPTION = Interfluid Transfer
  ENDCASE
END

FM: HEAT TRANSFER MODEL, Heat Transfer Model Details
  FOR: Fluid = {CurrentFluidList}
    // Heat transfer = 'fluid dependent'
    // SourceDir contains FL tag
    CASE: {SourceDir}/TURBM_HEATM/TFC
    IS: *DIR*
      COPDIR: ../TURBM_HEATM/TFC, {Fluid}/HEATM/TFC
      ENDDIR
    ENDCASE
    CASE: {SourceDir}/TURBM_HEATM/TURBWF
    IS: *DIR*
      COPDIR: ../TURBM_HEATM/TURBWF, {Fluid}/HEATM/TURBWF
      ENDDIR
    ENDCASE

    // Heat transfer = 'Total energy' and phase specific
    // turbulence
    // SourceDir has no FL tag, so add fluid tag manually
    CASE: {SourceDir}/{Fluid}/TURBM_HEATM/TFC
    IS: *DIR*
      COPDIR: ../{Fluid}/TURBM_HEATM/TFC, {Fluid}/HEATM/TFC
      ENDDIR
    ENDCASE
    CASE: {SourceDir}/{Fluid}/TURBM_HEATM/TURBWF
    IS: *DIR*
      COPDIR: ../{Fluid}/TURBM_HEATM/TURBWF, {Fluid}/HEATM/TURBWF
      ENDDIR
    ENDCASE
  ENDFOR
END

FM: HEAT TRANSFER MODEL, Isothermal
  FOR: Fluid = {CurrentFluidList}
     MAKDIR: {Fluid}

       // Prepare ../CHEATM(NFLUID)
       CHAR: CHEATM = ISOTHERMAL

       // Prepare ../TFLUID(NFLUID)
       CASE: {SourceDir}/{MmsName}/TFLUID/HOW
       IS: *NONE*
       IS: CONSTANT
          REAL: TFLUID/VALUE, TFLUID
       ELSE:
          MESAGE: Non constant Fluid Temperature \
                  in isothermal model for {Zone} {Fluid}
          EXIT
       ENDCASE

       // Support deprecated Domain Temperature until 5.4.1,
       // but should fail if mixed with new MPF parameters!
       // Prepare ../TFLUID(NFLUID)
       CASE: {SourceDir}/{MmsName}/TDOMAIN/HOW
       IS: *NONE*
       IS: CONSTANT
          REAL: TDOMAIN/VALUE, TFLUID
       ELSE:
          MESAGE: Non constant Domain Temperature \
                  in isothermal model for {Zone} {Fluid}
          EXIT
       ENDCASE

       CASE: {SourceDir}/{MmsName}/TDOMAIN/HOW, {SourceDir}/{MmsName}/TFLUID/HO\
W
       IS: *NONE*, *NONE*
          MESAGE: Missing fluid or domain temperature \
                  in isothermal model for {Zone} {Fluid}
          EXIT
       ENDCASE

     ENDDIR

    // Turbulent Schmidt number may be needed for turbulent dispersion
    COPDIR: ., {Fluid}/HEATM
    ENDDIR
  ENDFOR

  //TREF will be zero for 5.4
  //At present, HEAT TRANSFER is FLUID MODEL object while TREF
  //is a zone object; so in MPF skip if it already exists.
  CASE: /FLOW/PHYSICS/{Zone}/TREF
  IS: *NONE*
     MAKDIR: TREF
        CHAR: HOW = CONSTANT
        REAL: VALUE = 0.0 
     ENDDIR
  ENDCASE
END

FM: HEAT TRANSFER MODEL, None
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CHEATM = /SPACE

    // Turbulent Schmidt number may be needed for turbulent dispersion
    COPDIR: ., {Fluid}/HEATM
    ENDDIR
  ENDFOR
END

FM: HEAT TRANSFER MODEL, Particle Temperature
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CHEATM_PT = CONV
  ENDFOR
END

FM: HEAT TRANSFER MODEL, Saturation Temperature
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CHEATM = ALGEBRAIC:TSAT
    COPDIR: ., {Fluid}/HEATM
    ENDDIR
  ENDFOR
END

FM: HEAT TRANSFER MODEL, Small Droplet Temperature
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CHEATM = ALGEBRAIC
    COPDIR: ., {Fluid}/HEATM
    ENDDIR
  ENDFOR
END

FM: HEAT TRANSFER MODEL, Thermal Energy
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CHEATM = THERMAL_H
    COPDIR: ., {Fluid}/HEATM
    ENDDIR
  ENDFOR

  USE: FM: HEAT TRANSFER MODEL, Heat Transfer Model Details

  // Translate viscous dissipation flag; no viscous work
  CASE: {TargetDir}/LVSCDISS
  IS: *NONE*
    LOGL: LVSCDISS = .FALSE.
  ENDCASE

  CASE: {TargetDir}/LVSCWRK
  IS: *NONE*
    LOGL: LVSCWRK = .FALSE.
  ENDCASE

  // Translate homogeneous flag
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: HEATM/MULTIFLUID_MODELS/OPTION = Homogeneous
  IS: .FALSE.
    CHAR: HEATM/MULTIFLUID_MODELS/OPTION = Interfluid Transfer
  ENDCASE
END

FM: HEAT TRANSFER MODEL, Total Energy
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CHEATM = TOTAL_H
    COPDIR: ., {Fluid}/HEATM
    ENDDIR
  ENDFOR

  USE: FM: HEAT TRANSFER MODEL, Heat Transfer Model Details

  // Translate viscous work flag; no viscous dissipation
  CASE: {TargetDir}/LVSCDISS
  IS: *NONE*
    LOGL: LVSCDISS = .FALSE.
  ENDCASE

  CASE: {TargetDir}/LVSCWRK
  IS: *NONE*
    LOGL: LVSCWRK = .FALSE.
  ENDCASE

  // Translate homogeneous flag
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: HEATM/MULTIFLUID_MODELS/OPTION = Homogeneous
  IS: .FALSE.
    CHAR: HEATM/MULTIFLUID_MODELS/OPTION = Interfluid Transfer
  ENDCASE
END

FM: KINETIC THEORY MODEL, Kinetic Theory
  FOR: Fluid = {CurrentFluidList}
     CHAR: {Fluid}/CKINTM = KIN:
     COPDIR: ., {Fluid}/KINTM
     ENDDIR
  ENDFOR
END

FM: KINETIC THEORY MODEL, None
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CKINTM = /SPACE
  ENDFOR
END

FM: NUCLEATION MODEL, Homogeneous
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,{Fluid}/NUCLEATION
    ENDDIR
  ENDFOR
END

FM: NUCLEATION MODEL, None
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,{Fluid}/NUCLEATION
    ENDDIR
  ENDFOR
END

FM: NUCLEATION MODEL, User Defined
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,{Fluid}/NUCLEATION
    ENDDIR
  ENDFOR
END

FM: PARTICLE ADDITIONAL VARIABLE MODEL,User Defined
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,{Fluid}/PARTAVMOD
    ENDDIR
  ENDFOR
END


FM: PARTICLE DIAMETER CHANGE, Mass Equivalent
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,DIAM_CHANGE
      CHAR: CDIAMM = DMASS
    ENDDIR
  ENDFOR
END

FM: PARTICLE DIAMETER CHANGE, Swelling Model
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,DIAM_CHANGE
      CHAR: CDIAMM = SWELLING
    ENDDIR
  ENDFOR
END

FM: PARTICLE DIAMETER DISTRIBUTION, Discrete Diameter Distribution
  FOR: Fluid = {CurrentFluidList}
    CHAR: DIAMETER
    COPDIR: .,DIAMETER
      CHAR: METHOD = DISCRETE_DIAM_LIST
    ENDDIR
  ENDFOR
END

FM: PARTICLE DIAMETER DISTRIBUTION, Normal in Diameter by Mass
  FOR: Fluid = {CurrentFluidList}
    CHAR: DIAMETER
    COPDIR: .,DIAMETER
      CHAR: METHOD = NORMAL_DIAM_MASS
    ENDDIR
  ENDFOR
END

FM: PARTICLE DIAMETER DISTRIBUTION, Normal in Diameter by Number
  FOR: Fluid = {CurrentFluidList}
    CHAR: DIAMETER
    COPDIR: .,DIAMETER
      CHAR: METHOD = NORMAL_DIAM_NR
    ENDDIR
  ENDFOR
END

FM: PARTICLE DIAMETER DISTRIBUTION, Nukiyama Tanasawa
  FOR: Fluid = {CurrentFluidList}
    CHAR: DIAMETER
    COPDIR: .,DIAMETER
      CHAR: METHOD = NUKIYAMA_TANASAWA
    ENDDIR
  ENDFOR
END

FM: PARTICLE DIAMETER DISTRIBUTION, Rosin Rammler
  FOR: Fluid = {CurrentFluidList}
    CHAR: DIAMETER
    COPDIR: .,DIAMETER
      CHAR: METHOD = ROSIN_RAMMLER
    ENDDIR
  ENDFOR
END

FM: PARTICLE DIAMETER DISTRIBUTION, Specified Diameter
  FOR: Fluid = {CurrentFluidList}
    CHAR: DIAMETER
    COPDIR: .,DIAMETER
      CHAR: METHOD = CONST_DIAM
    ENDDIR
  ENDFOR
END

FM: PARTICLE DIAMETER DISTRIBUTION, Uniform in Diameter by Mass
  FOR: Fluid = {CurrentFluidList}
    CHAR: DIAMETER
    COPDIR: .,DIAMETER
      CHAR: METHOD = UNIFORM_DIAM_MASS
    ENDDIR
  ENDFOR
END

FM: PARTICLE DIAMETER DISTRIBUTION, Uniform in Diameter by Number
  FOR: Fluid = {CurrentFluidList}
    CHAR: DIAMETER
    COPDIR: .,DIAMETER
      CHAR: METHOD = UNIFORM_DIAM_NR
    ENDDIR
  ENDFOR
END

FM: PARTICLE ROUGH WALL MODEL, None
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,{Fluid}/ROUGH_WALL
    ENDDIR
  ENDFOR
END

FM: PARTICLE ROUGH WALL MODEL, Sommerfeld Frank
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,{Fluid}/ROUGH_WALL
    ENDDIR
  ENDFOR
END

FM: PARTICLE SHAPE FACTORS
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,PART_SHAPE_FACTORS
    ENDDIR
  ENDFOR
END

FM: SOLID BULK VISCOSITY, Kinetic Theory
  FOR: Fluid = {CurrentFluidList}
     COPDIR: ., {Fluid}/SOL_VISCBLK
     ENDDIR
  ENDFOR
END

FM: SOLID BULK VISCOSITY, None
END

FM: SOLID BULK VISCOSITY, User Defined
  FOR: Fluid = {CurrentFluidList}
     COPDIR: ., {Fluid}/SOL_VISCBLK
     ENDDIR
  ENDFOR
END

FM: SOLID PRESSURE MODEL, Elasticity Modulus
  FOR: Fluid = {CurrentFluidList}
     CHAR: {Fluid}/CSOLPM = ELM:
     COPDIR: ., {Fluid}/SOLPM
     ENDDIR
  ENDFOR
END

FM: SOLID PRESSURE MODEL, Gidaspow
  FOR: Fluid = {CurrentFluidList}
     CHAR: {Fluid}/CSOLPM = ELM:GID
     COPDIR: ., {Fluid}/SOLPM
     ENDDIR
  ENDFOR
END

FM: SOLID PRESSURE MODEL, Kinetic Theory
  FOR: Fluid = {CurrentFluidList}
     CHAR: {Fluid}/CSOLPM = SLP:KIN
     COPDIR: ., {Fluid}/SOLPM
     ENDDIR
  ENDFOR
END

FM: SOLID PRESSURE MODEL, None
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CSOLPM = /SPACE
  ENDFOR
END

FM: SOLID PRESSURE MODEL, User Defined
  FOR: Fluid = {CurrentFluidList}
     CHAR: {Fluid}/CSOLPM = SLP:USR
     COPDIR: ., {Fluid}/SOLPM
     ENDDIR
  ENDFOR
END

FM: SOLID SHEAR VISCOSITY, Kinetic Theory
  FOR: Fluid = {CurrentFluidList}
     COPDIR: ., {Fluid}/SOL_VISCSHR
     ENDDIR
  ENDFOR
END

FM: SOLID SHEAR VISCOSITY, None
END

FM: SOLID SHEAR VISCOSITY, User Defined
  FOR: Fluid = {CurrentFluidList}
     COPDIR: ., {Fluid}/SOL_VISCSHR
     ENDDIR
  ENDFOR
END

FM: SOOT MODEL, Magnussen
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CSOOTM = MAGNUSSEN
    COPDIR: ., {Fluid}/SOOTM
    ENDDIR
  ENDFOR
END

FM: SOOT MODEL, None
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CSOOTM = /SPACE
  ENDFOR
END

FM: THERMAL RADIATION MODEL, Discrete Transfer
  FOR: Fluid = {CurrentFluidList}
    CASE: {SourceDir}/{MmsName}/RADMOD
    IS: Surface to Surface
      CHAR: {Fluid}/CTRADM = RAY:DTM:S2S
    ELSE
      CHAR: {Fluid}/CTRADM = RAY:DTM
    ENDCASE

    COPDIR: ., {Fluid}/TRADM
    ENDDIR
  ENDFOR
END

FM: THERMAL RADIATION MODEL, Fluid Dependent
END

FM: THERMAL RADIATION MODEL, Monte Carlo
  FOR: Fluid = {CurrentFluidList}
    CASE: {SourceDir}/{MmsName}/RADMOD
    IS: Surface to Surface
      CHAR: {Fluid}/CTRADM = RAY:MONTE:S2S
    ELSE
      CHAR: {Fluid}/CTRADM = RAY:MONTE
    ENDCASE

    COPDIR: ., {Fluid}/TRADM
    ENDDIR
  ENDFOR
END

FM: THERMAL RADIATION MODEL, None
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTRADM = /SPACE
  ENDFOR
END

FM: THERMAL RADIATION MODEL, P 1
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTRADM = PDE:SPH:1
    COPDIR: ., {Fluid}/TRADM
    ENDDIR
  ENDFOR
END

FM: THERMAL RADIATION MODEL, Rosseland
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTRADM = ALG:ROSS
    COPDIR: ., {Fluid}/TRADM
    ENDDIR
  ENDFOR
END

FM: THERMAL RADIATION MODEL, Six Flux
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTRADM = PDE:FLUXES:6
    COPDIR: ., {Fluid}/PDE:FLUXES:6
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, BSL
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: TURBM/MULTIFLUID_MODELS/OPTION = Homogeneous
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = EVM:K-O:BSL
    COPDIR: ., {Fluid}/TURBM
      CASE: {SourceDir}/{MmsName}/TRANSITION/OPTION
      IS: *NONE*
      IS: Fully Turbulent
        CHAR: TRANSITION/CTRANSM = /SPACE
      IS: Specified Intermittency
        CHAR: TRANSITION/CTRANSM = USR:INTERMIT
      IS: Gamma Model
        CHAR: TRANSITION/CTRANSM = GAMMA
      IS: Gamma Theta Model
        CHAR: TRANSITION/CTRANSM = GAMMA:THETA
      IS: Intermittency Model
        CHAR: TRANSITION/CTRANSM = GAMMA:MS
      ELSE
        MESAGE: Unknown option for transitional turbulence model.
        EXIT
      ENDCASE
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, BSL EARSM
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: TURBM/MULTIFLUID_MODELS/OPTION = Homogeneous
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = EVM:K-O:BSL:EARSM
    COPDIR: ., {Fluid}/TURBM
      CASE: {SourceDir}/{MmsName}/TRANSITION/OPTION
      IS: *NONE*
      IS: Fully Turbulent
        CHAR: TRANSITION/CTRANSM = /SPACE
      IS: Specified Intermittency
        CHAR: TRANSITION/CTRANSM = USR:INTERMIT
      IS: Gamma Model
        CHAR: TRANSITION/CTRANSM = GAMMA
      IS: Gamma Theta Model
        CHAR: TRANSITION/CTRANSM = GAMMA:THETA
      IS: Intermittency Model
        CHAR: TRANSITION/CTRANSM = GAMMA:MS
      ELSE
        MESAGE: Unknown option for transitional turbulence model.
        EXIT
      ENDCASE
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, BSL Reynolds Stress
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: TURBM/MULTIFLUID_MODELS/OPTION = Homogeneous
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = RSM:TEF:BSL
    COPDIR: ., {Fluid}/TURBM
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, DES SST
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: TURBM/MULTIFLUID_MODELS/OPTION = Homogeneous
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = EVM:K-O:SST:DES
    COPDIR: ., {Fluid}/TURBM
      CASE: {SourceDir}/{MmsName}/TRANSITION/OPTION
      IS: *NONE*
      IS: Fully Turbulent
        CHAR: TRANSITION/CTRANSM = /SPACE
      IS: Specified Intermittency
        CHAR: TRANSITION/CTRANSM = USR:INTERMIT
      IS: Gamma Model
        CHAR: TRANSITION/CTRANSM = GAMMA
      IS: Gamma Theta Model
        CHAR: TRANSITION/CTRANSM = GAMMA:THETA
      IS: Intermittency Model
        CHAR: TRANSITION/CTRANSM = GAMMA:MS
      ELSE
        MESAGE: Unknown option for transitional turbulence model.
        EXIT
      ENDCASE
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, Dispersed Phase Zero Equation
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = EVM:ALG:DIS
    COPDIR: ., {Fluid}/TURBM
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, Eddy Viscosity Transport Equation
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: TURBM/MULTIFLUID_MODELS/OPTION = Homogeneous
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = EVM:EVT
    COPDIR: ., {Fluid}/TURBM
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, Fluid Dependent
END

FM: TURBULENCE MODEL, k epsilon
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: TURBM/MULTIFLUID_MODELS/OPTION = Homogeneous
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = EVM:K-E
    COPDIR: ., {Fluid}/TURBM
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, k epsilon EARSM
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: TURBM/MULTIFLUID_MODELS/OPTION = Homogeneous
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = EVM:K-E:EARSM
    COPDIR: ., {Fluid}/TURBM
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, k omega
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: TURBM/MULTIFLUID_MODELS/OPTION = Homogeneous
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = EVM:K-O
    COPDIR: ., {Fluid}/TURBM
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, Laminar
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = /SPACE
  ENDFOR
END

FM: TURBULENCE MODEL, LES Dynamic Model
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: TURBM/MULTIFLUID_MODELS/OPTION = Homogeneous
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = EVM:ALG:LES:DM
    COPDIR: ., {Fluid}/TURBM
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, LES Smagorinsky
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: TURBM/MULTIFLUID_MODELS/OPTION = Homogeneous
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = EVM:ALG:LES
    COPDIR: ., {Fluid}/TURBM
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, LES WALE
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: TURBM/MULTIFLUID_MODELS/OPTION = Homogeneous
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = EVM:ALG:LES:WALE
    COPDIR: ., {Fluid}/TURBM
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, MIT CFD0 Zero Equation
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = EVM:ALG:CX
    COPDIR: ., {Fluid}/TURBM
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, Omega Reynolds Stress
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: TURBM/MULTIFLUID_MODELS/OPTION = Homogeneous
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = RSM:TEF
    COPDIR: ., {Fluid}/TURBM
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, QI Reynolds Stress
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: TURBM/MULTIFLUID_MODELS/OPTION = Homogeneous
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = RSM:TED:Q-I
    COPDIR: ., {Fluid}/TURBM
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, Reynolds Stress
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: TURBM/MULTIFLUID_MODELS/OPTION = Homogeneous
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = RSM:TED
    COPDIR: ., {Fluid}/TURBM
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, RNG k epsilon
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: TURBM/MULTIFLUID_MODELS/OPTION = Homogeneous
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = EVM:K-E:RNG
    COPDIR: ., {Fluid}/TURBM
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, SAS BSL EARSM
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: TURBM/MULTIFLUID_MODELS/OPTION = Homogeneous
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = EVM:K-O:BSL:EARSM:SA
    COPDIR: ., {Fluid}/TURBM
      CASE: {SourceDir}/{MmsName}/TRANSITION/OPTION
      IS: *NONE*
      IS: Fully Turbulent
        CHAR: TRANSITION/CTRANSM = /SPACE
      IS: Specified Intermittency
        CHAR: TRANSITION/CTRANSM = USR:INTERMIT
      IS: Gamma Model
        CHAR: TRANSITION/CTRANSM = GAMMA
      IS: Gamma Theta Model
        CHAR: TRANSITION/CTRANSM = GAMMA:THETA
      IS: Intermittency Model
        CHAR: TRANSITION/CTRANSM = GAMMA:MS
      ELSE
        MESAGE: Unknown option for transitional turbulence model.
        EXIT
      ENDCASE
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, SAS SST
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: TURBM/MULTIFLUID_MODELS/OPTION = Homogeneous
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = EVM:K-O:SST:SA
    COPDIR: ., {Fluid}/TURBM
      CASE: {SourceDir}/{MmsName}/TRANSITION/OPTION
      IS: *NONE*
      IS: Fully Turbulent
        CHAR: TRANSITION/CTRANSM = /SPACE
      IS: Specified Intermittency
        CHAR: TRANSITION/CTRANSM = USR:INTERMIT
      IS: Gamma Model
        CHAR: TRANSITION/CTRANSM = GAMMA
      IS: Gamma Theta Model
        CHAR: TRANSITION/CTRANSM = GAMMA:THETA
      IS: Intermittency Model
        CHAR: TRANSITION/CTRANSM = GAMMA:MS
      ELSE
        MESAGE: Unknown option for transitional turbulence model.
        EXIT
      ENDCASE
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, SBES SST
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: TURBM/MULTIFLUID_MODELS/OPTION = Homogeneous
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = EVM:K-O:SST:SBES
    COPDIR: ., {Fluid}/TURBM
      CASE: {SourceDir}/{MmsName}/TRANSITION/OPTION
      IS: *NONE*
      IS: Fully Turbulent
        CHAR: TRANSITION/CTRANSM = /SPACE
      IS: Specified Intermittency
        CHAR: TRANSITION/CTRANSM = USR:INTERMIT
      IS: Gamma Model
        CHAR: TRANSITION/CTRANSM = GAMMA
      IS: Gamma Theta Model
        CHAR: TRANSITION/CTRANSM = GAMMA:THETA
      IS: Intermittency Model
        CHAR: TRANSITION/CTRANSM = GAMMA:MS
      ELSE
        MESAGE: Unknown option for transitional turbulence model.
        EXIT
      ENDCASE
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, Spalart Allmaras
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: TURBM/MULTIFLUID_MODELS/OPTION = Homogeneous
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = EVM:EVT:S-A
    COPDIR: ., {Fluid}/TURBM
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, SSG Reynolds Stress
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: TURBM/MULTIFLUID_MODELS/OPTION = Homogeneous
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = RSM:TED:SSG
    COPDIR: ., {Fluid}/TURBM
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, SST
  CASE: {SourceDir}/{MmsName}/LHOMOGENEOUS
  IS: .TRUE.
    CHAR: TURBM/MULTIFLUID_MODELS/OPTION = Homogeneous
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = EVM:K-O:SST
    COPDIR: ., {Fluid}/TURBM
      CASE: {SourceDir}/{MmsName}/TRANSITION/OPTION
      IS: *NONE*
      IS: Fully Turbulent
        CHAR: TRANSITION/CTRANSM = /SPACE
      IS: Specified Intermittency
        CHAR: TRANSITION/CTRANSM = USR:INTERMIT
      IS: Gamma Model
        CHAR: TRANSITION/CTRANSM = GAMMA
      IS: Gamma Theta Model
        CHAR: TRANSITION/CTRANSM = GAMMA:THETA
      IS: Intermittency Model
        CHAR: TRANSITION/CTRANSM = GAMMA:MS
      ELSE
        MESAGE: Unknown option for transitional turbulence model.
        EXIT
      ENDCASE
    ENDDIR
  ENDFOR
END

FM: TURBULENCE MODEL, Zero Equation
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBM = EVM:ALG
    COPDIR: ., {Fluid}/TURBM
    ENDDIR
  ENDFOR
END

FM: TURBULENT HEAT TRANSFER
END

FM: TURBULENT VOLUME FRACTION TRANSFER
  FOR: Fluid = {CurrentFluidList}
    CASE: {SourceDir}/TURBM_VOLFRM/TFC
    IS: *DIR*
      COPDIR: ../TURBM_VOLFRM/TFC, {Fluid}/TURBM_VOLFRM/TFC
      ENDDIR
    ENDCASE

    CASE: {SourceDir}/{Fluid}/TURBM_VOLFRM/TFC
    IS: *DIR*
      COPDIR: ../{Fluid}/TURBM_VOLFRM/TFC, {Fluid}/TURBM_VOLFRM/TFC
      ENDDIR
    ENDCASE
  ENDFOR
END

FM: TURBULENT WALL FUNCTIONS, Automatic
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBWF = AUTOMATIC
    COPDIR: ., {Fluid}/TURBWF
    ENDDIR
  ENDFOR
END

FM: TURBULENT WALL FUNCTIONS, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBWF = DEFAULT
    COPDIR: ., {Fluid}/TURBWF
    ENDDIR
  ENDFOR
END

FM: TURBULENT WALL FUNCTIONS, Scalable
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBWF = MENTER
    COPDIR: ., {Fluid}/TURBWF
    ENDDIR
  ENDFOR
END

FM: TURBULENT WALL FUNCTIONS, Standard
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBWF = DEFAULT
    COPDIR: ., {Fluid}/TURBWF
    ENDDIR
  ENDFOR
END

FM: TURBULENT WALL FUNCTIONS, User Defined
  FOR: Fluid = {CurrentFluidList}
    CHAR: {Fluid}/CTURBWF = DEFAULT
    COPDIR: ., {Fluid}/TURBWF
    ENDDIR
  ENDFOR
END

FM: WALL CONDENSATION MODEL, Concentration Boundary Layer Model
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,{Fluid}/WALL_CONDENSATION
    ENDDIR
  ENDFOR
END

FM: WALL CONDENSATION MODEL, None
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,{Fluid}/WALL_CONDENSATION
    ENDDIR
  ENDFOR
END

///////////////////////////////////////////////////////////////////////////////
//   IM data area (Domain interface models)
///////////////////////////////////////////////////////////////////////////////

IM: ADDITIONAL VARIABLE, Conservative Interface Flux
  CASE: {SourceDir}/{MmsName}/ZIFMODEL/OPTION
  IS: Additional Variable Contact Resistance
    COPDIR: ZIFMODEL, {AddVar}
    ENDDIR
  IS: None
  ELSE:
    MESAGE: Unsupported option in ADDITIONAL VARIABLE INTERFACE MODEL
    EXIT
  ENDCASE
END

IM: ADDITIONAL VARIABLE, Side Dependent
END

IM: AXIS DEFINITION, Coordinate Axis
END

IM: AXIS DEFINITION, Two Points
END

IM: CONDITIONAL CONNECTION CONTROL, Irreversible State Change
  CASE: {SourceDir}/{MmsName}
  IS: *DIR*
    COPDIR: ., ICC
    ENDDIR
  ENDCASE
END

IM: CONDITIONAL CONNECTION CONTROL, None
END

IM: CONDITIONAL CONNECTION CONTROL, Specified Open State
  CASE: {SourceDir}/{MmsName}
  IS: *DIR*
    COPDIR: ., ICC
    ENDDIR
  ENDCASE
END

IM: ELECTRIC FIELD, Conservative Interface Flux
  CASE: {SourceDir}/{MmsName}/ZIFMODEL/OPTION
  IS: Electrical Contact Resistance
    COPDIR: ZIFMODEL, ELECM
    ENDDIR
  IS: Dielectric Contact Resistance
    COPDIR: ZIFMODEL, ELECM
    ENDDIR
  IS: None
  ELSE:
    MESAGE: Unsupported option in ELECTRIC FIELD INTERFACE MODEL
    EXIT
  ENDCASE
END

IM: ELECTRIC FIELD, Side Dependent
END

IM: FRAME CHANGE, Frozen Rotor
  CHAR: CFRCHG = FZNROT
  COPDIR: .,FZNROT
  ENDDIR

  DELDAT: AUTO_TRANSF
  LOGL: AUTO_TRANSF = .FALSE.
END

IM: FRAME CHANGE, None
   CHAR: CFRCHG = /SPACE
END

IM: FRAME CHANGE, Sliding
  CHAR: CFRCHG = SLIDING
END

IM: FRAME CHANGE, Stage
  CHAR: CFRCHG = STAGE

  COPDIR: .,STAGE
  ENDDIR

  CASE: {SourceDir}/{MmsName}/DSVELCNSTR/OPTION
  IS: *NONE*
    CHAR: {TargetDir}/STAGE/DSVELCNSTR/OPTION = Stage Average Velocity
  ENDCASE

  CASE: {SourceDir}/{MmsName}/PRESPROFDECAY
  IS: *NONE*
    MAKDIR: {TargetDir}/STAGE/PRESPROFDECAY
      CHAR: ALIAS = Pressure Profile Decay
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.05
    ENDDIR
  ENDCASE

  DELDAT: AUTO_TRANSF
  LOGL: AUTO_TRANSF = .FALSE.
END

IM: FRAME CHANGE, Transient Rotor Stator
  CHAR: CFRCHG = TRSTAT
  COPDIR: .,TRSTAT
  ENDDIR

  DELDAT: AUTO_TRANSF
  LOGL: AUTO_TRANSF = .FALSE.
END

IM: HEAT TRANSFER, Conservative Interface Flux
  CASE: {SourceDir}/{MmsName}/ZIFMODEL/OPTION
  IS: Thermal Contact Resistance
    COPDIR: ZIFMODEL, HEATM
    ENDDIR
  IS: Thin Material
    COPDIR: ZIFMODEL, HEATM
    ENDDIR
  IS: None
  ELSE:
    MESAGE: Unsupported option in HEAT TRANSFER INTERFACE MODEL
    EXIT
  ENDCASE
END

IM: HEAT TRANSFER, Side Dependent
END

IM: MAGNETIC FIELD, Conservative Interface Flux
  CASE: {SourceDir}/{MmsName}/ZIFMODEL/OPTION
  IS: Magnetic Contact Resistance
    COPDIR: ZIFMODEL, BMAGM
    ENDDIR
  IS: None
//  ELSE:
//    MESAGE: Unsupported option in MAGNETIC FIELD INTERFACE MODEL
//    EXIT
  ENDCASE
END

IM: MAGNETIC FIELD, Side Dependent
END

IM: MASS AND MOMENTUM, Conservative Interface Flux
  CASE: {SourceDir}/{MmsName}/ZIFMODEL/OPTION
  IS: Pressure Change
    CHAR: CMASSMOM = PCHANGE
    COPDIR: ZIFMODEL/DELTAP, DELTAP
    ENDDIR

    DELDAT: AUTO_TRANSF
    LOGL: AUTO_TRANSF = .FALSE.
  IS: Mass Flow Rate
    CHAR: CMASSMOM = MFLO
    COPDIR: ZIFMODEL/MFLO, MFLO
    ENDDIR

    DELDAT: AUTO_TRANSF
    LOGL: AUTO_TRANSF = .FALSE.
  IS: Porous Solid Stress Closure
    CHAR: CMASSMOM = PORSTR

    DELDAT: AUTO_TRANSF 
    LOGL: AUTO_TRANSF = .FALSE.
  IS: None
  ELSE:
    MESAGE: Unsupported option in MOMENTUM INTERFACE MODEL
    EXIT
  ENDCASE

  CASE: {SourceDir}/{MmsName}/ZIFMODEL/PCHANGE_MULT
  IS: *DIR*
    COPDIR: ZIFMODEL/PCHANGE_MULT, PCHANGE_MULT
    ENDDIR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/ZIFMODEL/STRJMP
  IS: *DIR*
    LOGL: LSTRJMP = .TRUE.
    COPDIR: ZIFMODEL/STRJMP, STRJMP
    ENDDIR
  ELSE:
    LOGL: LSTRJMP = .FALSE.
  ENDCASE

END

IM: MASS AND MOMENTUM, Finite Slip Wall
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}

  DELDAT: AUTO_TRANSF
  LOGL: AUTO_TRANSF = .FALSE.
END

IM: MASS AND MOMENTUM, Free Slip Wall
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}

  DELDAT: AUTO_TRANSF
  LOGL: AUTO_TRANSF = .FALSE.
END

IM: MASS AND MOMENTUM, No Slip Wall
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}

  DELDAT: AUTO_TRANSF
  LOGL: AUTO_TRANSF = .FALSE.
END

IM: MASS AND MOMENTUM, Side Dependent
  DELDAT: AUTO_TRANSF
  LOGL: AUTO_TRANSF = .FALSE.
END

IM: MASS AND MOMENTUM, Specified Shear
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}
END

IM: NONOVERLAP CONDITIONS
  CASE: {SourceDir}/NOVERLAP_CONDITIONS/PHYTYPE
  IS: WALL
    MAKDIR: NOVARIABLES
      CHAR: PHYTYPE 
    ENDDIR
  ELSE 
    MESAGE: Unsupported boundary physical type for Nonoverlap Conditions
    EXIT
  ENDCASE
END

IM: OVERLAP CONDITIONS
  CHAR: /FLOW/{Zif}/ZIF_PHYTYPE = INTERFACE
END

IM: PITCH CHANGE, Automatic
  CHAR: PITCHG = AUTO_DEF_PRATIO
  CHAR: TRANSTYPE = Automatic

  CASE: {SourceDir}/{MmsName}/AXIS
    IS: *DIR*
      COPDIR: {SourceDir}/{MmsName}/AXIS, AXIS
      ENDDIR
  ENDCASE
END

IM: PITCH CHANGE, None
  CHAR: PITCHG = /SPACE
  CHAR: TRANSTYPE = None
  CASE: {SourceDir}/{MmsName}/AXIS
    IS: *DIR*
      COPDIR: {SourceDir}/{MmsName}/AXIS, AXIS
      ENDDIR
  ENDCASE
END

IM: PITCH CHANGE, Specified Pitch Angles
  CHAR: PITCHG = SPEC_VAR_ANGLES
  CHAR: TRANSTYPE = Automatic
  COPDIR: PITCHA
  ENDDIR
  COPDIR: PITCHB
  ENDDIR

  CASE: {SourceDir}/{MmsName}/AXIS
    IS: *DIR*
      COPDIR: {SourceDir}/{MmsName}/AXIS, AXIS
      ENDDIR
  ENDCASE
END

IM: PITCH CHANGE, Value
  CHAR: PITCHG = SPEC_VAR_PRATIO
  CHAR: TRANSTYPE = Automatic
  COPDIR: PRATIO
  ENDDIR

  CASE: {SourceDir}/{MmsName}/AXIS
    IS: *DIR*
      COPDIR: {SourceDir}/{MmsName}/AXIS, AXIS
      ENDDIR
  ENDCASE
END

IM: SIDE1
END

IM: SIDE2
END

IM: THERMAL RADIATION, Conservative Interface Flux
END

IM: THERMAL RADIATION, Opaque
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}
END

IM: THERMAL RADIATION, Side Dependent
END

IM: WALL ROUGHNESS, Rough Wall
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}
END

IM: WALL ROUGHNESS, Side Dependent
END

IM: WALL ROUGHNESS, Smooth Wall
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}
END

///////////////////////////////////////////////////////////////////////////////
//   IMC data area (Domain interface boundary conditions)
///////////////////////////////////////////////////////////////////////////////

IMC: ADDITIONAL VARIABLE, Conservative Interface Flux
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}
END

IMC: ADDITIONAL VARIABLE, Contact Resistance
  CHAR: {AddVar}/OPTION = {Option}
  COPDIR: RESIST, {AddVar}/RESIST
  ENDDIR

  MAKDIR: {Side1Dir}/{MmsName}
    CHAR: OPTION = Conservative Interface Flux
    CHAR: OBJECT_TYPE = ADDITIONAL VARIABLE
  ENDDIR
  MAKDIR: {Side2Dir}/{MmsName}
    CHAR: OPTION = Conservative Interface Flux
    CHAR: OBJECT_TYPE = ADDITIONAL VARIABLE
  ENDDIR
END

IMC: ADDITIONAL VARIABLE, Side Dependent
END

IMC: AUTOIGNITION, Conservative Interface Flux
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}
END

IMC: COMPONENT, Conservative Interface Flux
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}
END

IMC: COMPONENT, Side Dependent
END

IMC: ELECTRIC FIELD, Conservative Interface Flux
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}
END

IMC: ELECTRIC FIELD, Side Dependent
END

IMC: FLAME SURFACE DENSITY, Conservative Interface Flux
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}
END

IMC: FLAME SURFACE DENSITY, Side Dependent
END

IMC: HEAT TRANSFER, Conservative Interface Flux
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}
END

IMC: HEAT TRANSFER, Contact Resistance
  CHAR: HEATM/OPTION = {Option}
  COPDIR: RESIST, HEATM/RESIST
  ENDDIR

  DELDIR: {SourceDir}/{MmsName}
  MAKDIR: {Side1Dir}/{MmsName}
    CHAR: OPTION = Conservative Interface Flux
    CHAR: OBJECT_TYPE = HEAT TRANSFER
  ENDDIR
  MAKDIR: {Side2Dir}/{MmsName}
    CHAR: OPTION = Conservative Interface Flux
    CHAR: OBJECT_TYPE = HEAT TRANSFER
  ENDDIR
END

IMC: HEAT TRANSFER, Side Dependent
END

IMC: MAGNETIC FIELD, Conservative Interface Flux
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}
END

IMC: MAGNETIC FIELD, Side Dependent
END

IMC: MASS AND MOMENTUM, Conservative Interface Flux
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}
END

IMC: MASS AND MOMENTUM, Mass Flow Rate
  CHAR: CMASSMOM = MFLO
  COPDIR: MFLO
  ENDDIR
  CASE: {SourceDir}/{MmsName}/PCHANGE_MULT
  IS: *DIR*
    COPDIR: PCHANGE_MULT
    ENDDIR
  ENDCASE

  DELDIR: {SourceDir}/{MmsName}
  MAKDIR: {Side1Dir}/{MmsName}
    CHAR: OPTION = Conservative Interface Flux
    CHAR: OBJECT_TYPE = MASS AND MOMENTUM
  ENDDIR
  MAKDIR: {Side2Dir}/{MmsName}
    CHAR: OPTION = Conservative Interface Flux
    CHAR: OBJECT_TYPE = MASS AND MOMENTUM
  ENDDIR
END

IMC: MASS AND MOMENTUM, Pressure Change
  CHAR: CMASSMOM = PCHANGE
  COPDIR: DELTAP
  ENDDIR

  DELDIR: {SourceDir}/{MmsName}
  MAKDIR: {Side1Dir}/{MmsName}
    CHAR: OPTION = Conservative Interface Flux
    CHAR: OBJECT_TYPE = MASS AND MOMENTUM
  ENDDIR
  MAKDIR: {Side2Dir}/{MmsName}
    CHAR: OPTION = Conservative Interface Flux
    CHAR: OBJECT_TYPE = MASS AND MOMENTUM
  ENDDIR
END

IMC: MASS AND MOMENTUM, Side Dependent
END

IMC: MESH MOTION, Conservative Interface Flux
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}
END

IMC: MESH MOTION, Side Dependent
END

IMC: POST FLAME REACTION PROGRESS, Conservative Interface Flux
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}
END

IMC: POST FLAME REACTION PROGRESS, Side Dependent
END

IMC: REACTION PROGRESS, Conservative Interface Flux
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}
END

IMC: REACTION PROGRESS, Side Dependent
END

IMC: SIZE GROUP, Conservative Interface Flux
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}
END

IMC: SIZE GROUP, Side Dependent
END

IMC: SOOT, Conservative Interface Flux
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}
END

IMC: SOOT, Side Dependent
END

IMC: THERMAL RADIATION, Conservative Interface Flux
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}
END

IMC: THERMAL RADIATION, Side Dependent
END

IMC: TURBULENCE, Conservative Interface Flux
  COPDIR: {SourceDir}/{MmsName}, {Side1Dir}/{MmsName}
  ENDDIR
  COPDIR: {SourceDir}/{MmsName}, {Side2Dir}/{MmsName}
  ENDDIR
  DELDIR: {SourceDir}/{MmsName}
END

IMC: TURBULENCE, Side Dependent
END

///////////////////////////////////////////////////////////////////////////////
//  INJECTION REGION data area (Injection Regions)
//  Sorted alphabetically from left to right
///////////////////////////////////////////////////////////////////////////////

INJECTION REGION: INJECTION CONDITIONS
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: SOURCES/CONT{_Fluid}
      CATLG: EQN
    ENDDIR
  ENDFOR
END

INJECTION REGION: FLUID
END

INJECTION REGION: INJECTION MODEL, Circular Hole
  COPDIR: {SourceDir}/{MmsName}, HOLE_DEFN
  ENDDIR
END

INJECTION REGION: INJECTION MODEL, From Library
  COPDIR: {SourceDir}/{MmsName}, HOLE_DEFN
  ENDDIR
END

INJECTION REGION: INJECTION POSITIONS, From Profile
  COPDIR: ., IPOS
  ENDDIR
END

INJECTION REGION: INJECTION POSITIONS, User Location
  COPDIR: ., IPOS
  ENDDIR
END

///////////////////////////////////////////////////////////////////////////////
//  IR data area (Injection Conditions)
//  Loop over equations, copy variable, catalogue it, and set the mass source
//  type, MSTYPE, for related variables
//  Sorted alphabetically from left to right
///////////////////////////////////////////////////////////////////////////////

IR: ADDITIONAL VARIABLE, Fluid Dependent
END

IR: ADDITIONAL VARIABLE, Value
  FOR: Equation = {CurrentEqnList}
    MAKDIR: {Equation}/{MmsName}
      CATLG: VAR
      CHAR: MSTYPE = SPEC_VAR_{AddVar}
      COPDIR: AV, VALUE
      ENDDIR
    ENDDIR
  ENDFOR
END

IR: COMPONENT, Mass Fraction
  FOR: Equation = {CurrentEqnList}
    MAKDIR: {Equation}/MASFRC{_Component}
      CATLG: VAR
      CHAR: MSTYPE = SPEC_VAR_MASFRC{_Component}
      COPDIR: MASFRC, VALUE
      ENDDIR
    ENDDIR
  ENDFOR
END

IR: FLOW DIRECTION, Cartesian Components
  FOR: Equation = {CurrentEqnList}
    MAKDIR: {Equation}/VELDIR
      CATLG: VAR
      CHAR: MSTYPE = SPEC_VAR_VELDIR
      COPDIR: CARTDIR, VALUE
      ENDDIR
    ENDDIR
  ENDFOR
END

IR: FLOW DIRECTION, Cylindrical Components
  FOR: Equation = {CurrentEqnList}
    MAKDIR: {Equation}/VELDIR
      CATLG: VAR
      CHAR: MSTYPE = SPEC_VAR_VELDIR
      COPDIR: CARTDIR, VALUE
      ENDDIR
    ENDDIR
  ENDFOR
END

IR: HEAT TRANSFER, Fluid Dependent
END

IR: HEAT TRANSFER, Stationary Frame Total Temperature
  FOR: Equation = {CurrentEqnList}
    MAKDIR: {Equation}
      CHAR: TEMP/MSTYPE = SPEC_VAR_TTOTS
      CHAR: ENTHSTAT/MSTYPE = SPEC_VAR_TTOTS
      CHAR: ENTHTOT/MSTYPE  = SPEC_VAR_TTOTS
      CHAR: ENTHTOTR/MSTYPE = SPEC_VAR_TTOTS

      MAKDIR: TTOTS
        CATLG: VAR
        CHAR: MSTYPE = SPEC_VAR_TTOTS
        COPDIR: TEMP, VALUE
        ENDDIR
      ENDDIR
    ENDDIR
  ENDFOR
END

IR: HEAT TRANSFER, Static Temperature
  FOR: Equation = {CurrentEqnList}
    MAKDIR: {Equation}
      CHAR: ENTHSTAT/MSTYPE = SPEC_VAR_TEMP
      CHAR: ENTHTOT/MSTYPE  = SPEC_VAR_TEMP
      CHAR: ENTHTOTR/MSTYPE = SPEC_VAR_TEMP
      CHAR: TTOT/MSTYPE     = SPEC_VAR_TEMP

      MAKDIR: TEMP
        CATLG: VAR
        CHAR: MSTYPE = SPEC_VAR_TEMP
        COPDIR: TEMP, VALUE
        ENDDIR
      ENDDIR
    ENDDIR
  ENDFOR
END

IR: HEAT TRANSFER, Total Temperature
  FOR: Equation = {CurrentEqnList}
    MAKDIR: {Equation}
      CHAR: TEMP/MSTYPE = SPEC_VAR_TTOT
      CHAR: ENTHSTAT/MSTYPE = SPEC_VAR_TTOT
      CHAR: ENTHTOT/MSTYPE  = SPEC_VAR_TTOT
      CHAR: ENTHTOTR/MSTYPE = SPEC_VAR_TTOT

      MAKDIR: TTOT
        CATLG: VAR
        CHAR: MSTYPE = SPEC_VAR_TTOT
        COPDIR: TEMP, VALUE
        ENDDIR
      ENDDIR
    ENDDIR
  ENDFOR
END

IR: MASS AND MOMENTUM, Bulk Mass Flow Rate
  FOR: Equation = {CurrentEqnList}
    MAKDIR: {Equation}
      CASE: {SourceDir}/FLOW_DIRECTION/OPTION
      IS: Cartesian Components
        CHAR: VEL/MSTYPE = SPEC_VAR_MFLDB
      IS: Cylindrical Components
        CHAR: VEL/MSTYPE = SPEC_VAR_MFLDB
      IS: *NONE*
        MESAGE: Missing FLOW DIRECTION for Mass Flow Rate, INJECTION REGION
        MESAGE:
        EXIT
      ENDCASE

      CHAR: RESFLX_A/MSTYPE = SPEC_VAR_MFLO
      CHAR: TOTSRC_A/MSTYPE = SPEC_VAR_MFLO

      COPDIR: MFLO,MFLO
        CATLG: VAR
        CHAR: MSTYPE = SPEC_VAR_MFLO
      ENDDIR

    ENDDIR
  ENDFOR
END

IR: MASS AND MOMENTUM, Cartesian Velocity Components
  FOR: Equation = {CurrentEqnList}
    MAKDIR: {Equation}/VEL
      CATLG: VAR
      CHAR: MSTYPE = SPEC_VAR_VEL
      COPDIR: VEL, VALUE
      ENDDIR
    ENDDIR
  ENDFOR
END

IR: MASS AND MOMENTUM, Cylindrical Velocity Components
  FOR: Equation = {CurrentEqnList}
    MAKDIR: {Equation}/VEL
      CATLG: VAR
      CHAR: MSTYPE = SPEC_VAR_VEL
      COPDIR: VEL, VALUE
      ENDDIR
    ENDDIR
  ENDFOR
END

IR: MASS AND MOMENTUM, Fluid Dependent
END

IR: MASS AND MOMENTUM, Mass Flow Rate
  FOR: Equation = {CurrentEqnList}
    MAKDIR: {Equation}
      CASE: {SourceDir}/FLOW_DIRECTION/OPTION
      IS: Cartesian Components
        CHAR: VEL/MSTYPE = SPEC_VAR_MFLD
      IS: Cylindrical Components
        CHAR: VEL/MSTYPE = SPEC_VAR_MFLD
      IS: *NONE*
        MESAGE: Missing FLOW DIRECTION for Mass Flow Rate, INJECTION REGION
        MESAGE:
        EXIT
      ENDCASE

      CHAR: MFLO/MSTYPE = SPEC_VAR_TOTSRC_A
      CHAR: RESFLX_A/MSTYPE = SPEC_VAR_TOTSRC_A
      CHAR: FRAME_TYPE = Stationary

      COPDIR: MFLO, TOTSRC_A
//        CATLG: VAR
        CHAR: MSTYPE = SPEC_VAR_TOTSRC_A
      ENDDIR

    ENDDIR
  ENDFOR
END

IR: TURBULENCE, High Intensity and Eddy Viscosity Ratio
  FOR: Equation = {CurrentEqnList}
    MAKDIR: {Equation}
      CHAR: TKE/MSTYPE = SPEC_VAR_TKI
      CHAR: TED/MSTYPE = SPEC_VAR_TVR
      CHAR: RS/MSTYPE  = SPEC_VAR_TKI
      CHAR: TEF/MSTYPE = SPEC_VAR_TVR
      CHAR: VISKTRB/MSTYPE = SPEC_VAR_TVR

      MAKDIR: TKI
        CATLG: VAR
        CHAR: MSTYPE = SPEC_VAR_TKI
        CASE: {SourceDir}/{MmsName}/TKI
        IS: *DIR*
          COPDIR: TKI, VALUE
          ENDDIR
        ELSE
          MAKDIR: VALUE
            CHAR: HOW = CONSTANT
            INTR: NVALUES = 1
            REAL: VALUE = 0.1
          ENDDIR
        ENDCASE
      ENDDIR

      MAKDIR: TVR
        CATLG: VAR
        CHAR: MSTYPE = SPEC_VAR_TVR
        CASE: {SourceDir}/{MmsName}/TVR
        IS: *DIR*
          COPDIR: TVR, VALUE
          ENDDIR
        ELSE
          MAKDIR: VALUE
            CHAR: HOW = CONSTANT
            INTR: NVALUES = 1
            REAL: VALUE = 100.
          ENDDIR
        ENDCASE
      ENDDIR
    ENDDIR
  ENDFOR
END

IR: TURBULENCE, k and Epsilon
  FOR: Equation = {CurrentEqnList}
    MAKDIR: {Equation}
      CHAR: RS{_Fluid}/MSTYPE  = SPEC_VAR_TKE
      CHAR: TEF{_Fluid}/MSTYPE = SPEC_VAR_TED
      CHAR: VISKTRB{_Fluid}/MSTYPE = SPEC_VAR_TED

      MAKDIR: TKE
        CHAR: MSTYPE = SPEC_VAR_TKE
        COPDIR: TKE, VALUE
        ENDDIR
      ENDDIR

      MAKDIR: TED
        CHAR: MSTYPE = SPEC_VAR_TED
        COPDIR: TED, VALUE
        ENDDIR
      ENDDIR
    ENDDIR
  ENDFOR
END

IR: TURBULENCE, Low Intensity and Eddy Viscosity Ratio
  FOR: Equation = {CurrentEqnList}
    MAKDIR: {Equation}
      CHAR: TKE/MSTYPE = SPEC_VAR_TKI
      CHAR: TED/MSTYPE = SPEC_VAR_TVR
      CHAR: RS/MSTYPE  = SPEC_VAR_TKI
      CHAR: TEF/MSTYPE = SPEC_VAR_TVR
      CHAR: VISKTRB/MSTYPE = SPEC_VAR_TVR
 
      MAKDIR: TKI
        CATLG: VAR
        CHAR: MSTYPE = SPEC_VAR_TKI
        CASE: {SourceDir}/{MmsName}/TKI
        IS: *DIR*
          COPDIR: TKI, VALUE
          ENDDIR
        ELSE
          MAKDIR: VALUE
            CHAR: MSTYPE = SPEC_VAR_TKI
            CHAR: HOW = CONSTANT
            INTR: NVALUES = 1
            REAL: VALUE = 0.01
          ENDDIR
        ENDCASE
      ENDDIR

      MAKDIR: TVR
        CATLG: VAR
        CHAR: MSTYPE = SPEC_VAR_TVR
        CASE: {SourceDir}/{MmsName}/TVR
        IS: *DIR*
          COPDIR: TVR, VALUE
          ENDDIR
        ELSE
          MAKDIR: VALUE
            CHAR: HOW = CONSTANT
            INTR: NVALUES = 1
            REAL: VALUE = 1.
          ENDDIR
        ENDCASE
      ENDDIR
    ENDDIR
  ENDFOR
END

IR: TURBULENCE, Medium Intensity and Eddy Viscosity Ratio
  FOR: Equation = {CurrentEqnList}
    MAKDIR: {Equation}
      CHAR: TKE/MSTYPE = SPEC_VAR_TKI
      CHAR: TED/MSTYPE = SPEC_VAR_TVR
      CHAR: RS/MSTYPE  = SPEC_VAR_TKI
      CHAR: TEF/MSTYPE = SPEC_VAR_TVR
      CHAR: VISKTRB/MSTYPE = SPEC_VAR_TVR
 
      MAKDIR: TKI
        CATLG: VAR
        CHAR: MSTYPE = SPEC_VAR_TKI
        CASE: {SourceDir}/{MmsName}/TKI
        IS: *DIR*
          COPDIR: TKI, VALUE
          ENDDIR
        ELSE
          MAKDIR: VALUE
            CHAR: HOW = CONSTANT
            INTR: NVALUES = 1
            REAL: VALUE = 0.05
          ENDDIR
        ENDCASE
      ENDDIR

      MAKDIR: TVR
        CATLG: VAR
        CHAR: MSTYPE = SPEC_VAR_TVR
        CASE: {SourceDir}/{MmsName}/TVR
        IS: *DIR*
          COPDIR: TVR, VALUE
          ENDDIR
        ELSE
          MAKDIR: VALUE
            CHAR: HOW = CONSTANT
            INTR: NVALUES = 1
            REAL: VALUE = 10.
          ENDDIR
        ENDCASE
      ENDDIR
    ENDDIR
  ENDFOR
END

IR: VELOCITY, Cartesian Velocity Components
  FOR: Equation = {CurrentEqnList}
    MAKDIR: {Equation}
      CATLG: VAR
      CHAR: VELS/MSTYPE = SPEC_VAR_VEL
      MAKDIR: VEL
        CHAR: MSTYPE = SPEC_VAR_VEL
        COPDIR: VEL, VALUE
        ENDDIR
      ENDDIR
    ENDDIR
  ENDFOR
END

IR: VELOCITY, Cylindrical Velocity Components
  FOR: Equation = {CurrentEqnList}
    MAKDIR: {Equation}
      CATLG: VAR
      CHAR: VELS/MSTYPE = SPEC_VAR_VEL
      MAKDIR: VEL
        CHAR: MSTYPE = SPEC_VAR_VEL
        COPDIR: VEL, VALUE
        ENDDIR
      ENDDIR
    ENDDIR
  ENDFOR
END

IR: VELOCITY, Mass Flow Rate
  FOR: Equation = {CurrentEqnList}
    MAKDIR: {Equation}
      MESAGE: {SourceDir}/FLOW_DIRECTION/OPTION
      MESAGE: {SourceDir}/../{Fluid}/BOUNDARY_CONDITIONS/FLOW_DIRECTION/OPTION
      CASE: {SourceDir}/FLOW_DIRECTION/OPTION
      IS: Cartesian Components
        CHAR: VEL/MSTYPE = SPEC_VAR_MFLD
      IS: Cylindrical Components
        CHAR: VEL/MSTYPE = SPEC_VAR_MFLD
      IS: *NONE*
        MESAGE: Missing FLOW DIRECTION for Mass Flow Rate, INJECTION REGION
        MESAGE:
        EXIT
      ENDCASE

      CHAR: RESFLX_A/MSTYPE = SPEC_VAR_MFLO
      CHAR: TOTSRC_A/MSTYPE = SPEC_VAR_MFLO

      COPDIR: MFLO, MFLO
        CATLG: VAR
        CHAR: MSTYPE = SPEC_VAR_MFLO
      ENDDIR
    ENDDIR
  ENDFOR
END

IR: VOLUME FRACTION, Value
  FOR: Equation = {CurrentEqnList}
    MAKDIR: {Equation}/VOLFRC
      CATLG: VAR
      CHAR: MSTYPE = SPEC_VAR_VOLFRC
      COPDIR: VOLFRC, VALUE
      ENDDIR
    ENDDIR
    MAKDIR: {Equation}/VOLFRN
      CHAR: MSTYPE = SPEC_VAR_VOLFRC
      COPDIR: VOLFRC, VALUE
      ENDDIR
    ENDDIR
  ENDFOR
END

///////////////////////////////////////////////////////////////////////////////
//   PIR data area (Particle Injection Regions)
///////////////////////////////////////////////////////////////////////////////

PIR: ADDITIONAL VARIABLE, Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR: AV, {AddVar}{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_{AddVar}
    ENDDIR
  ENDFOR
END

PIR: COMPONENT, Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR: MASFRC, MF{_Component}{_Region}{_Fluid}
      CHAR: ICTYPE = SPEC_VAR_MASFRC
    ENDDIR
  ENDFOR
END

PIR: INJECTION METHOD, Cone
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = CONE
    ENDDIR
  ENDFOR
END

PIR: INJECTION METHOD, Cone with Primary Breakup
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = CONE_PRIM_BREAKUP
    ENDDIR
    MAKDIR: ../DIAMETER
      CHAR: METHOD = CONST_DIAM
      MAKDIR: CONST_DIAM
      ENDDIR
    ENDDIR
  ENDFOR
END

PIR: INJECTION METHOD, Sphere
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = SPHERE
    ENDDIR
  ENDFOR
END

PIR: INJECTION METHOD, User Defined
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = USER
    ENDDIR
  ENDFOR
END

PIR: INJECTION VELOCITY, Cartesian Components
  CASE: /FLOW/{Zone}/DOMAIN_MODELS/DOMAIN_MOTION/OPTION
  IS: Stationary
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL,../VARIABLES/VEL{_Region}{_Fluid}
        CHAR: INJTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR
  ELSE
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL,../VARIABLES/VEL{_Region}{_Fluid}
        CHAR: INJTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR
  ENDCASE
END

PIR: INJECTION VELOCITY, Cylindrical Components
  CASE: /FLOW/{Zone}/DOMAIN_MODELS/DOMAIN_MOTION/OPTION
  IS: Stationary
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL,../VARIABLES/VEL{_Region}{_Fluid}
        CHAR: INJTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR
  ELSE
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL,../VARIABLES/VEL{_Region}{_Fluid}
        CHAR: INJTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/AXIS/AROT, \
        {SourceDir}/{MmsName}/AXIS/BROT
    IS: *DIR*,*DIR*
      FOR: Fluid = {CurrentFluidList}
        COPDIR: AXIS/AROT, AXIS/AROT{_Fluid}
        ENDDIR
        COPDIR: AXIS/BROT, AXIS/BROT{_Fluid}
        ENDDIR
      ENDFOR
    IS: *DIR*,*NONE*
       MESAGE: Invalid PIR rotation axis specification
       EXIT
    IS: *NONE*,*DIR*
       MESAGE: Invalid PIR rotation axis specification
       EXIT
  ENDCASE
END

PIR: INJECTION VELOCITY, Zero Slip Velocity
  FOR: Fluid = {CurrentFluidList}
    COPDIR: VEL, VEL{_Region}{_Fluid}
      CHAR: INJTYPE = SPEC_ZERO_SLIP
    ENDDIR
  ENDFOR
END

PIR: PARTICLE DIAMETER DISTRIBUTION, Discrete Diameter Distribution
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = DISCRETE_DIAM_LIST
    ENDDIR
  ENDFOR
END

PIR: PARTICLE DIAMETER DISTRIBUTION, Normal in Diameter by Mass
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = NORMAL_DIAM_MASS
    ENDDIR
  ENDFOR
END

PIR: PARTICLE DIAMETER DISTRIBUTION, Normal in Diameter by Number
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = NORMAL_DIAM_NR
    ENDDIR
  ENDFOR
END

PIR: PARTICLE DIAMETER DISTRIBUTION, Nukiyama Tanasawa
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = NUKIYAMA_TANASAWA
    ENDDIR
  ENDFOR
END

PIR: PARTICLE DIAMETER DISTRIBUTION, Rosin Rammler
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = ROSIN_RAMMLER
    ENDDIR
  ENDFOR
END

PIR: PARTICLE DIAMETER DISTRIBUTION, Specified Diameter
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = CONST_DIAM
    ENDDIR
  ENDFOR
END

PIR: PARTICLE DIAMETER DISTRIBUTION, Uniform in Diameter by Mass
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = UNIFORM_DIAM_MASS
    ENDDIR
  ENDFOR
END

PIR: PARTICLE DIAMETER DISTRIBUTION, Uniform in Diameter by Number
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = UNIFORM_DIAM_NR
    ENDDIR
  ENDFOR
END

PIR: PARTICLE MASS FLOW RATE
  FOR: Fluid = {CurrentFluidList}
    RENAM: MFLO,MFLO{_Fluid}
  ENDFOR
END

PIR: TEMPERATURE, Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR: TEMP, TEMP{_Region}{_Fluid}
      CHAR: INJTYPE = SPEC_VAR_TEMP
    ENDDIR
  ENDFOR
END

///////////////////////////////////////////////////////////////////////////////
//   SM data area (Solid models)
///////////////////////////////////////////////////////////////////////////////

SM: ADDITIONAL VARIABLE, Algebraic Equation
  FOR: Solid = {CurrentSolidList}
    MAKDIR: {Solid}
      MAKDIR: {AddVar}
        CATLG: ADV
        CHAR: OPTION = {Option}
        COPDIR: AV
        ENDDIR
      ENDDIR
    ENDDIR
  ENDFOR
END

SM: ADDITIONAL VARIABLE, Diffusive Transport Equation
  FOR: Solid = {CurrentSolidList}
    MAKDIR: {Solid}
      MAKDIR: {AddVar}
        CATLG: ADV
        CHAR: OPTION = {Option}

        USE: FM: ADDITIONAL VARIABLE, Diffusion Details

      ENDDIR
    ENDDIR
  ENDFOR
END

SM: ADDITIONAL VARIABLE, Not Used
END

SM: ADDITIONAL VARIABLE, Poisson Equation
  FOR: Solid = {CurrentSolidList}
    MAKDIR: {Solid}
      MAKDIR: {AddVar}
        CATLG: ADV
        CHAR: OPTION = {Option}

        USE: FM: ADDITIONAL VARIABLE, Diffusion Details

      ENDDIR
    ENDDIR
  ENDFOR
END

SM: ADDITIONAL VARIABLE, Vector Algebraic Equation
  FOR: Solid = {CurrentSolidList}
    MAKDIR: {Solid}
      MAKDIR: {AddVar}
        CATLG: ADV
        // edit solver option
        CHAR: dummy, OPTION = Algebraic Equation
        // edit solver name of CEL directory
        COPDIR: VALUE, AV
        ENDDIR
      ENDDIR
    ENDDIR
  ENDFOR
END

SM: COMPONENT, Algebraic Equation
  FOR: Solid = {CurrentSolidList}
    MAKDIR: {Solid}
      MAKDIR: {Component}
        CATLG: COMLS
        CHAR: OPTION = {Option}
        COPDIR: MASFRC
        ENDDIR
        COPDIR: DIFFKIN
        ENDDIR
      ENDDIR
    ENDDIR
  ENDFOR
END

SM: COMPONENT, Constraint
  FOR: Solid = {CurrentSolidList}
    MAKDIR: {Solid}
      MAKDIR: {Component}
        CATLG: COMLS
        CHAR: OPTION = {Option}
        COPDIR: DIFFKIN
        ENDDIR
      ENDDIR
    ENDDIR
  ENDFOR
END

SM: ELECTROMAGNETIC MODEL
  FOR: Solid = {CurrentSolidList}
    COPDIR: ., {Solid}/EMAGM
    ENDDIR
    RENAM: /FLOW/PHYSICS/{Zone}/{Solid}/EMAGM/BMAGM, \
           /FLOW/PHYSICS/{Zone}/{Solid}/BMAGM
    CASE: ./{Solid}/BMAGM/OPTION
    IS: User Defined
      CHAR: {Solid}/CBMAGM = ALG:
    IS: Magnetic Scalar Potential
      CHAR: {Solid}/CBMAGM = PDE:POT:SCALAR
    IS: Magnetic Vector Potential
      CHAR: {Solid}/CBMAGM = PDE:POT:VECTOR
    ELSE:
      CHAR: {Solid}/CBMAGM = /SPACE
    ENDCASE
    RENAM: /FLOW/PHYSICS/{Zone}/{Solid}/EMAGM/ELECM, \
           /FLOW/PHYSICS/{Zone}/{Solid}/ELECM
    CASE: ./{Solid}/ELECM/OPTION
    IS: Electric Potential
      CHAR: {Solid}/CELECM = PDE:POT:CONELEC
    IS: Electrostatic Potential
      CHAR: {Solid}/CELECM = PDE:POT:PERMELEC
    ELSE:
      CHAR: {Solid}/CELECM = /SPACE
    ENDCASE
    DELDIR: {Solid}/EMAGM
  ENDFOR
END

SM: HEAT TRANSFER MODEL, Isothermal
  FOR: Solid = {CurrentSolidList}
     MAKDIR: {Solid}

       // Prepare ../CHEATM(NSOLID)
       CHAR: CHEATM = ISOTHERMAL

       // Prepare ../TSOLID(NFLUID) 
       CASE: {SourceDir}/{MmsName}/TSOLID/HOW
       IS: *NONE*
       IS: CONSTANT
          REAL: TSOLID/VALUE, TSOLID
       ELSE:
          MESAGE: Non constant solid temperature for \
                  in isothermal model for {Zone} {Fluid}
          EXIT
       ENDCASE

       // Support deprecated Domain Temperature until 5.4.1,
       // but should fail if mixed with new MPF parameters!
       // Prepare ../TSOLID(NSOLID) 
       CASE: {SourceDir}/{MmsName}/TDOMAIN/HOW
       IS: *NONE*
       IS: CONSTANT
          REAL: TDOMAIN/VALUE, TSOLID
       ELSE:
          MESAGE: Non constant solid temperature for \
                  in isothermal model for {Zone} {Fluid}
          EXIT
       ENDCASE

     ENDDIR
  ENDFOR

END

SM: HEAT TRANSFER MODEL, None
  FOR: Solid = {CurrentSolidList}
    CHAR: {Solid}/CHEATM = /SPACE
  ENDFOR
END

SM: HEAT TRANSFER MODEL, Thermal Energy
  FOR: Solid = {CurrentSolidList}
    CHAR: {Solid}/CHEATM = THERMAL_H
  ENDFOR
END

SM: SOLID MOTION, Cartesian Velocity Components
  FOR: Solid = {CurrentSolidList}
    COPDIR: ., {Solid}/MOTIONM
    ENDDIR
  ENDFOR
END

SM: SOLID MOTION, Cylindrical Velocity Components
  FOR: Solid = {CurrentSolidList}
    COPDIR: ., {Solid}/MOTIONM
    ENDDIR
  ENDFOR
END

SM: SOLID MOTION, Rotating
  FOR: Solid = {CurrentSolidList}
    COPDIR: ., {Solid}/MOTIONM
    ENDDIR
  ENDFOR
END

SM: STRESS MODEL, Hookean
  FOR: Solid = {CurrentSolidList}
    CHAR: {Solid}/CSTRSM = HOOKE
    COPDIR: ., {Solid}/STRESSM
    ENDDIR
  ENDFOR
END

SM: STRESS MODEL, None
  FOR: Solid = {CurrentSolidList}
    CHAR: {Solid}/CSTRSM = /SPACE
  ENDFOR
END

SM: THERMAL RADIATION MODEL, Discrete Transfer
  FOR: Solid = {CurrentSolidList}
    CASE: {SourceDir}/{MmsName}/RADMOD
    IS: Surface to Surface
      CHAR: {Solid}/CTRADM = RAY:DTM:S2S
    ELSE
      CHAR: {Solid}/CTRADM = RAY:DTM
    ENDCASE

    COPDIR: ., {Solid}/TRADM
    ENDDIR
  ENDFOR
END

SM: THERMAL RADIATION MODEL, Monte Carlo
  FOR: Solid = {CurrentSolidList}
    CASE: {SourceDir}/{MmsName}/RADMOD
    IS: Surface to Surface
      CHAR: {Solid}/CTRADM = RAY:MONTE:S2S
    ELSE
      CHAR: {Solid}/CTRADM = RAY:MONTE
    ENDCASE

    COPDIR: ., {Solid}/TRADM
    ENDDIR
  ENDFOR
END

SM: THERMAL RADIATION MODEL, None
  FOR: Solid = {CurrentSolidList}
    CHAR: {Solid}/CTRADM = /SPACE
  ENDFOR
END

SM: THERMAL RADIATION MODEL, P 1
  FOR: Solid = {CurrentSolidList}
    CHAR: {Solid}/CTRADM = PDE:SPH:1
    COPDIR: ., {Solid}/TRADM
    ENDDIR
  ENDFOR
END

SM: THERMAL RADIATION MODEL, Rosseland
  FOR: Solid = {CurrentSolidList}
    CHAR: {Solid}/CTRADM = ALG:ROSS
    COPDIR: ., {Solid}/ALG:ROSS
    ENDDIR
  ENDFOR
END

SM: THERMAL RADIATION MODEL, Six Flux
  FOR: Solid = {CurrentSolidList}
    CHAR: {Solid}/CTRADM = PDE:FLUXES:6
    COPDIR: ., {Solid}/PDE:FLUXES:6
    ENDDIR
  ENDFOR
END

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
//  BOUNDARY objects
//  Sorted alphabetically from left to right
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

BOUNDARY: BOUNDARY CONDITIONS
  // Nothing done here yet
END

BOUNDARY: BOUNDARY SOURCE
  // Nothing done here yet
  CASE: {SourceDir}/{MmsName}/LNONOVERLAP
  ISNOT: *NONE*
    LOGL: LNONOVERLAP, /FLOW/PHYSICS/{Zone}/{Bcp}/SOURCES/LNONOVERLAP
    LOGL: LNONOVERLAP, /FLOW/PHYSICS/{Zone}/{Bcp}/BULK_SOURCES/LNONOVERLAP
  ENDCASE 
END

BOUNDARY: BULK SOURCES, Use Volume Fraction
  // Nothing done here yet
END

BOUNDARY: COUPLING DATA TRANSFER, ANSYS MultiField
  // Nothing done here yet
END

BOUNDARY: FLUID
  // Nothing done here yet
END

BOUNDARY: FLUID PAIR
  // Nothing done here yet
END

BOUNDARY: MUSIG FLUID
  // Nothing done here yet
END

BOUNDARY: NON OVERLAP CONDITIONS
  // Create non-overlap conditions physical type
  CASE: {SourceDir}/NOVERLAP_CONDITIONS/PHYTYPE
  IS: WALL
    MAKDIR: NOVARIABLES
      CHAR: PHYTYPE 
    ENDDIR
  ELSE 
    MESAGE: Unsupported boundary physical type for Nonoverlap Conditions
    EXIT
  ENDCASE
END

BOUNDARY: SOLID
  // Nothing done here yet
END

BOUNDARY: SOURCES
  // Nothing done here yet
END

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
//  BC data area
//  Sorted alphabetically from left to right
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

BC: ADDITIONAL VARIABLE, Cartesian Components
  FOR: Fluid = {CurrentFluidList}
    COPDIR: VALUE, {AddVar}{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_{AddVar}
    ENDDIR
    CASE: {SourceDir}/{MmsName}/TURBWF/TWFTFC
    IS: *DIR*
      COPDIR: TURBWF/TWFTFC, TWFTFC{_AddVar}{_Fluid}
      ENDDIR
      CHAR: TURBWF/OPTION, TWFTFC{_AddVar}{_Fluid}/OPTION
    ENDCASE
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      COPDIR: VALUE, {AddVar}{_Solid}
        CHAR: BCTYPE = SPEC_VAR_{AddVar}
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: ADDITIONAL VARIABLE, Cartesian Components, INLET
  USE: BC: ADDITIONAL VARIABLE, Cartesian Components
END

BC: ADDITIONAL VARIABLE, Cartesian Components, INTERFACE
  USE: BC: ADDITIONAL VARIABLE, Cartesian Components
END

BC: ADDITIONAL VARIABLE, Cartesian Components, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: VALUE, {AddVar}{_Fluid}
      CHAR: BCTYPE = OPENING_AV
    ENDDIR
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      COPDIR: VALUE, {AddVar}{_Solid}
        CHAR: BCTYPE = SPEC_VAR_{AddVar}
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: ADDITIONAL VARIABLE, Cartesian Components, OUTLET
  USE: BC: ADDITIONAL VARIABLE, Cartesian Components
END

BC: ADDITIONAL VARIABLE, Cartesian Components, WALL
  USE: BC: ADDITIONAL VARIABLE, Cartesian Components
END

BC: ADDITIONAL VARIABLE, Conservative Interface Flux, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: {AddVar}{_Fluid}/BCTYPE = ZIF
    CASE: {SourceDir}/{MmsName}/TURBWF/TWFTFC
    IS: *DIR*
      COPDIR: TURBWF/TWFTFC, TWFTFC{_AddVar}{_Fluid}
      ENDDIR
      CHAR: TURBWF/OPTION, TWFTFC{_AddVar}{_Fluid}/OPTION
    ENDCASE
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: {AddVar}{_Solid}/BCTYPE = ZIF
    ENDFOR
  ENDCASE
END

BC: ADDITIONAL VARIABLE, Conservative Interface Flux, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: {AddVar}{_Fluid}/BCTYPE = ZIF
    CASE: {SourceDir}/{MmsName}/TURBWF/TWFTFC
    IS: *DIR*
      COPDIR: TURBWF/TWFTFC, TWFTFC{_AddVar}{_Fluid}
      ENDDIR
      CHAR: TURBWF/OPTION, TWFTFC{_AddVar}{_Fluid}/OPTION
    ENDCASE
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: {AddVar}{_Solid}/BCTYPE = ZIF
    ENDFOR
  ENDCASE

  COPDIR: AV, {AddVar}_WALL
    CHAR: BCTYPE = SPEC_VAR_{AddVar}
  ENDDIR
END

BC: ADDITIONAL VARIABLE, Fluid Dependent, INLET
END

BC: ADDITIONAL VARIABLE, Fluid Dependent, INTERFACE
END

BC: ADDITIONAL VARIABLE, Fluid Dependent, OPENING
END

BC: ADDITIONAL VARIABLE, Fluid Dependent, OUTLET
END

BC: ADDITIONAL VARIABLE, Fluid Dependent, WALL
END

BC: ADDITIONAL VARIABLE, Flux in
  FOR: Fluid = {CurrentFluidList}
    CHAR: {AddVar}{_Fluid}/BCTYPE = SPEC_FLUX
    COPDIR: FLX, {AddVar}{_Fluid}_FLX
      CHAR: BCTYPE = SPEC_FLUX
    ENDDIR
    CASE: {SourceDir}/{MmsName}/TURBWF/TWFTFC
    IS: *DIR*
      COPDIR: TURBWF/TWFTFC, TWFTFC{_AddVar}{_Fluid}
      ENDDIR
      CHAR: TURBWF/OPTION, TWFTFC{_AddVar}{_Fluid}/OPTION
    ENDCASE
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: {AddVar}{_Solid}/BCTYPE = SPEC_FLUX
      COPDIR: FLX, {AddVar}{_Solid}_FLX
        CHAR: BCTYPE = SPEC_FLUX
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: ADDITIONAL VARIABLE, Flux in, INLET
  USE: BC: ADDITIONAL VARIABLE, Flux in
END

BC: ADDITIONAL VARIABLE, Flux in, INTERFACE
  USE: BC: ADDITIONAL VARIABLE, Flux in
END

BC: ADDITIONAL VARIABLE, Flux in, OPENING
  USE: BC: ADDITIONAL VARIABLE, Flux in
END

BC: ADDITIONAL VARIABLE, Flux in, OUTLET
  USE: BC: ADDITIONAL VARIABLE, Flux in
END

BC: ADDITIONAL VARIABLE, Flux in, WALL
  USE: BC: ADDITIONAL VARIABLE, Flux in
END

BC: ADDITIONAL VARIABLE, Transfer Coefficient
  FOR: Fluid = {CurrentFluidList}
    CHAR: {AddVar}{_Fluid}/BCTYPE = SPEC_FTC
    COPDIR: AV, {AddVar}{_Fluid}_EXT
      CHAR: BCTYPE = SPEC_VAR_{AddVar}
    ENDDIR
    COPDIR: FTC, {AddVar}{_Fluid}_FTC
      CHAR: BCTYPE = SPEC_VAR_FTC
    ENDDIR
    CASE: {SourceDir}/{MmsName}/TURBWF/TWFTFC
    IS: *DIR*
      COPDIR: TURBWF/TWFTFC, TWFTFC{_AddVar}{_Fluid}
      ENDDIR
      CHAR: TURBWF/OPTION, TWFTFC{_AddVar}{_Fluid}/OPTION
    ENDCASE
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: {AddVar}{_Solid}/BCTYPE = SPEC_FTC
      COPDIR: AV, {AddVar}{_Solid}_EXT
        CHAR: BCTYPE = SPEC_VAR_{AddVar}
      ENDDIR
      COPDIR: FTC, {AddVar}{_Solid}_FTC
        CHAR: BCTYPE = SPEC_VAR_FTC
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: ADDITIONAL VARIABLE, Transfer Coefficient, INLET
  USE: BC: ADDITIONAL VARIABLE, Transfer Coefficient
END

BC: ADDITIONAL VARIABLE, Transfer Coefficient, INTERFACE
  USE: BC: ADDITIONAL VARIABLE, Transfer Coefficient
END

BC: ADDITIONAL VARIABLE, Transfer Coefficient, OPENING
  USE: BC: ADDITIONAL VARIABLE, Transfer Coefficient
END

BC: ADDITIONAL VARIABLE, Transfer Coefficient, OUTLET
  USE: BC: ADDITIONAL VARIABLE, Transfer Coefficient
END

BC: ADDITIONAL VARIABLE, Transfer Coefficient, WALL
  USE: BC: ADDITIONAL VARIABLE, Transfer Coefficient
END

BC: ADDITIONAL VARIABLE, Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR: AV, {AddVar}{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_{AddVar}
    ENDDIR
    CASE: {SourceDir}/{MmsName}/TURBWF/TWFTFC
    IS: *DIR*
      COPDIR: TURBWF/TWFTFC, TWFTFC{_AddVar}{_Fluid}
      ENDDIR
      CHAR: TURBWF/OPTION, TWFTFC{_AddVar}{_Fluid}/OPTION
    ENDCASE
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      COPDIR: AV, {AddVar}{_Solid}
        CHAR: BCTYPE = SPEC_VAR_{AddVar}
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: ADDITIONAL VARIABLE, Value, INLET
  USE: BC: ADDITIONAL VARIABLE, Value
END

BC: ADDITIONAL VARIABLE, Value, INTERFACE
  USE: BC: ADDITIONAL VARIABLE, Value
END

BC: ADDITIONAL VARIABLE, Value, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: AV, {AddVar}{_Fluid}
      CHAR: BCTYPE = OPENING_AV
    ENDDIR
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      COPDIR: AV, {AddVar}{_Solid}
        CHAR: BCTYPE = SPEC_VAR__{AddVar}
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: ADDITIONAL VARIABLE, Value, OUTLET
  USE: BC: ADDITIONAL VARIABLE, Value
END

BC: ADDITIONAL VARIABLE, Value, WALL
  USE: BC: ADDITIONAL VARIABLE, Value
END

BC: ADDITIONAL VARIABLE, Wall Flux in
  FOR: Fluid = {CurrentFluidList}
    CHAR: {AddVar}{_Fluid}/BCTYPE = SPEC_FLUX_WALL
    COPDIR: FLX, {AddVar}{_Fluid}_FLX
      CHAR: BCTYPE = SPEC_FLUX_WALL
    ENDDIR
    CASE: {SourceDir}/{MmsName}/TURBWF/TWFTFC
    IS: *DIR*
      COPDIR: TURBWF/TWFTFC, TWFTFC{_AddVar}{_Fluid}
      ENDDIR
      CHAR: TURBWF/OPTION, TWFTFC{_AddVar}{_Fluid}/OPTION
    ENDCASE
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: {AddVar}{_Solid}/BCTYPE = SPEC_FLUX_WALL
      COPDIR: FLX, {AddVar}{_Solid}_FLX
        CHAR: BCTYPE = SPEC_FLUX_WALL
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: ADDITIONAL VARIABLE, Wall Flux in, INLET
  USE: BC: ADDITIONAL VARIABLE, Wall Flux in
END

BC: ADDITIONAL VARIABLE, Wall Flux in, INTERFACE
  USE: BC: ADDITIONAL VARIABLE, Wall Flux in
END

BC: ADDITIONAL VARIABLE, Wall Flux in, OPENING
  USE: BC: ADDITIONAL VARIABLE, Wall Flux in
END

BC: ADDITIONAL VARIABLE, Wall Flux in, OUTLET
  USE: BC: ADDITIONAL VARIABLE, Wall Flux in
END

BC: ADDITIONAL VARIABLE, Wall Flux in, WALL
  USE: BC: ADDITIONAL VARIABLE, Wall Flux in
END

BC: ADDITIONAL VARIABLE, Wall Transfer Coefficient
  FOR: Fluid = {CurrentFluidList}
    CHAR: {AddVar}{_Fluid}/BCTYPE = SPEC_FTC_WALL
    COPDIR: AV, {AddVar}{_Fluid}_EXT
      CHAR: BCTYPE = SPEC_VAR_{AddVar}
    ENDDIR
    COPDIR: FTC, {AddVar}{_Fluid}_FTC
      CHAR: BCTYPE = SPEC_VAR_FTC
    ENDDIR
    CASE: {SourceDir}/{MmsName}/TURBWF/TWFTFC
    IS: *DIR*
      COPDIR: TURBWF/TWFTFC, TWFTFC{_AddVar}{_Fluid}
      ENDDIR
      CHAR: TURBWF/OPTION, TWFTFC{_AddVar}{_Fluid}/OPTION
    ENDCASE
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: {AddVar}{_Solid}/BCTYPE = SPEC_FTC_WALL
      COPDIR: AV, {AddVar}{_Solid}_EXT
        CHAR: BCTYPE = SPEC_VAR_{AddVar}
      ENDDIR
      COPDIR: FTC, {AddVar}{_Solid}_FTC
        CHAR: BCTYPE = SPEC_VAR_FTC
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: ADDITIONAL VARIABLE, Wall Transfer Coefficient, INLET
  USE: BC: ADDITIONAL VARIABLE, Wall Transfer Coefficient
END

BC: ADDITIONAL VARIABLE, Wall Transfer Coefficient, INTERFACE
  USE: BC: ADDITIONAL VARIABLE, Wall Transfer Coefficient
END

BC: ADDITIONAL VARIABLE, Wall Transfer Coefficient, OPENING
  USE: BC: ADDITIONAL VARIABLE, Wall Transfer Coefficient
END

BC: ADDITIONAL VARIABLE, Wall Transfer Coefficient, OUTLET
  USE: BC: ADDITIONAL VARIABLE, Wall Transfer Coefficient
END

BC: ADDITIONAL VARIABLE, Wall Transfer Coefficient, WALL
  USE: BC: ADDITIONAL VARIABLE, Wall Transfer Coefficient
END

BC: ADDITIONAL VARIABLE, Zero Flux
  FOR: Fluid = {CurrentFluidList}
    CHAR: {AddVar}{_Fluid}/BCTYPE = SPEC_FLUX
    MAKDIR: {AddVar}{_Fluid}_FLX
      CHAR: BCTYPE = SPEC_FLUX
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
    CASE: {SourceDir}/{MmsName}/TURBWF/TWFTFC
    IS: *DIR*
      COPDIR: TURBWF/TWFTFC, TWFTFC{_AddVar}{_Fluid}
      ENDDIR
      CHAR: TURBWF/OPTION, TWFTFC{_AddVar}{_Fluid}/OPTION
    ENDCASE
  ENDFOR
  
  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: {AddVar}{_Solid}/BCTYPE = SPEC_FLUX
      MAKDIR: {AddVar}{_Solid}_FLX
        CHAR: BCTYPE = SPEC_FLUX
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 1
        REAL: VALUE = 0.0
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: ADDITIONAL VARIABLE, Zero Flux, INLET
  USE: BC: ADDITIONAL VARIABLE, Zero Flux
END

BC: ADDITIONAL VARIABLE, Zero Flux, INTERFACE
  USE: BC: ADDITIONAL VARIABLE, Zero Flux
END

BC: ADDITIONAL VARIABLE, Zero Flux, OPENING
  USE: BC: ADDITIONAL VARIABLE, Zero Flux
END

BC: ADDITIONAL VARIABLE, Zero Flux, OUTLET
  USE: BC: ADDITIONAL VARIABLE, Zero Flux
END

BC: ADDITIONAL VARIABLE, Zero Flux, WALL
  USE: BC: ADDITIONAL VARIABLE, Zero Flux
END

BC: ADDITIONAL VARIABLE, Zero Gradient
  FOR: Fluid = {CurrentFluidList}
    CHAR: {AddVar}{_Fluid}/BCTYPE = ZERO_GRAD
    CASE: {SourceDir}/{MmsName}/ELIMFAC
    IS: *DIR*
      COPDIR: ELIMFAC,  {AddVar}{_Fluid}/ELIMFAC
      ENDDIR
    ENDCASE
    CASE: {SourceDir}/{MmsName}/BETA
    IS: *DIR*
      COPDIR: BETA,  {AddVar}{_Fluid}/BETA
      ENDDIR
    ENDCASE
  ENDFOR
  
  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: {AddVar}{_Solid}/BCTYPE = ZERO_GRAD
      CASE: {SourceDir}/{MmsName}/ELIMFAC
      IS: *DIR*
        COPDIR: ELIMFAC,  {AddVar}{_Solid}/ELIMFAC
        ENDDIR
      ENDCASE
      CASE: {SourceDir}/{MmsName}/BETA
      IS: *DIR*
        COPDIR: BETA,  {AddVar}{_Solid}/BETA
        ENDDIR
      ENDCASE
    ENDFOR
  ENDCASE
END

BC: ADDITIONAL VARIABLE, Zero Gradient, INLET
  USE: BC: ADDITIONAL VARIABLE, Zero Gradient
END

BC: ADDITIONAL VARIABLE, Zero Gradient, INTERFACE
  USE: BC: ADDITIONAL VARIABLE, Zero Gradient
END

BC: ADDITIONAL VARIABLE, Zero Gradient, OPENING
  USE: BC: ADDITIONAL VARIABLE, Zero Gradient
END

BC: ADDITIONAL VARIABLE, Zero Gradient, OUTLET
  USE: BC: ADDITIONAL VARIABLE, Zero Gradient
END

BC: ADDITIONAL VARIABLE, Zero Gradient, WALL
  USE: BC: ADDITIONAL VARIABLE, Zero Gradient
END

BC: AUTOIGNITION, Conservative Interface Flux, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: IGNFRC{_Fluid}/BCTYPE = ZIF
  ENDFOR
END

BC: AUTOIGNITION, Ignition Delay Elapsed Fraction, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: IGNFRC, IGNFRC{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_IGNFRC
    ENDDIR
  ENDFOR
END

BC: AUTOIGNITION, Ignition Delay Elapsed Fraction, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: IGNFRC, IGNFRC{_Fluid}
      CHAR: BCTYPE = OPENING_IGNFRC
    ENDDIR
  ENDFOR
END

BC: COMPONENT, Conservative Interface Flux, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: MASFRC{_Component}{_Fluid}/BCTYPE = ZIF
  ENDFOR
END

BC: COMPONENT, Deposition, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: MASFRC{_Component}{_Fluid}
     CHAR: BCTYPE = OPENING_ASM
     CHAR: HOW = CONSTANT
     INTR: NVALUES = 1
     REAL: VALUE = 0.0
    ENDDIR
  ENDFOR
END

BC: COMPONENT, Deposition, WALL
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: MASFRC{_Component}{_Fluid}
     CHAR: BCTYPE = OPENING_ASM
     CHAR: HOW = CONSTANT
     INTR: NVALUES = 1
     REAL: VALUE = 0.0
    ENDDIR
  ENDFOR
END

BC: COMPONENT, Flux in, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: MASFRC{_Component}{_Fluid}/BCTYPE = SPEC_FLUX
  ENDFOR

  COPDIR: FLX, MASFLX{_Component}_WALL
    CHAR: BCTYPE = SPEC_VAR_MASFLX
  ENDDIR
END

BC: COMPONENT, Flux in, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: MASFRC{_Component}{_Fluid}/BCTYPE = SPEC_FLUX
  ENDFOR

  COPDIR: FLX, MASFRC{_Component}_FLX
    CHAR: BCTYPE = SPEC_FLUX
  ENDDIR
END

BC: COMPONENT, Mass Fraction, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: MASFRC, MASFRC{_Component}{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MASFRC
    ENDDIR
  ENDFOR
END

BC: COMPONENT, Mass Fraction, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: MASFRC{_Component}{_Fluid}/BCTYPE = SPEC_VAR_MASFRC
    COPDIR: MASFRC, MASFRC{_Component}{_Fluid}_WALL
      CHAR: BCTYPE = SPEC_VAR_MASFRC
    ENDDIR
  ENDFOR
END

BC: COMPONENT, Mass Fraction, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: MASFRC, MASFRC{_Component}{_Fluid}
      CHAR: BCTYPE = OPENING_MASFRC
    ENDDIR
  ENDFOR
END

BC: COMPONENT, Mass Fraction, OUTLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: MASFRC, MASFRC{_Component}{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MASFRC
    ENDDIR
  ENDFOR
END

BC: COMPONENT, Mass Fraction, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: MASFRC{_Component}{_Fluid}/BCTYPE = SPEC_VAR_MASFRC
    COPDIR: MASFRC, MASFRC{_Component}{_Fluid}_WALL
      CHAR: BCTYPE = SPEC_VAR_MASFRC
    ENDDIR
  ENDFOR
END

BC: COMPONENT, Mass Transfer Coefficient, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: MASFRC{_Component}{_Fluid}/BCTYPE = SPEC_FTC
  ENDFOR

  COPDIR: MASCON, MASFRC{_Component}_EXT
    CHAR: BCTYPE = SPEC_FTC
  ENDDIR
  COPDIR: FTC, MASFRC{_Component}_FTC
    CHAR: BCTYPE = SPEC_FTC
  ENDDIR
END

BC: COMPONENT, Mass Transfer Coefficient, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: MASFRC{_Component}{_Fluid}/BCTYPE = SPEC_FTC
  ENDFOR

  COPDIR: MASCON, MASFRC{_Component}_EXT
    CHAR: BCTYPE = SPEC_FTC
  ENDDIR
  COPDIR: FTC, MASFRC{_Component}_FTC
    CHAR: BCTYPE = SPEC_FTC
  ENDDIR
END

BC: COMPONENT, Molar Fraction, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: MOLFRC, MOLFRC{_Component}{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MOLFRC
    ENDDIR
  ENDFOR
END

BC: COMPONENT, Molar Fraction, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: MOLFRC, MOLFRC{_Component}{_Fluid}
      CHAR: BCTYPE = OPENING_MOLFRC
    ENDDIR
  ENDFOR
END

BC: COMPONENT, No Deposition, INTERFACE
END

BC: COMPONENT, No Deposition, WALL
END

////////////////////////////////////////////////////////////////////////////
//  Wall Condensation Model: Implemented using boundary sources.
//  Hence set zero flux BC, an encode model in new variable BSTYPE.
////////////////////////////////////////////////////////////////////////////

BC: COMPONENT, Wall Condensation Model, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: MASFRC{_Component}{_Fluid}/BSTYPE = WALL_COND
    CHAR: MASFRC{_Component}{_Fluid}/BCTYPE = SPEC_FLUX
  ENDFOR

  MAKDIR: MASFRC{_Component}_FLX
    CHAR: BCTYPE = SPEC_FLUX
    CHAR: HOW = CONSTANT
    INTR: NVALUES = 1
    REAL: VALUE = 0.0
  ENDDIR
END

BC: COMPONENT, Wall Condensation Model, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: MASFRC{_Component}{_Fluid}/BSTYPE = WALL_COND
    CHAR: MASFRC{_Component}{_Fluid}/BCTYPE = SPEC_FLUX
  ENDFOR

  MAKDIR: MASFRC{_Component}_FLX
    CHAR: BCTYPE = SPEC_FLUX
    CHAR: HOW = CONSTANT
    INTR: NVALUES = 1
    REAL: VALUE = 0.0
  ENDDIR
END

BC: COMPONENT, Zero Flux, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: MASFRC{_Component}{_Fluid}/BCTYPE = SPEC_FLUX
  ENDFOR

  MAKDIR: MASFRC{_Component}_FLX
    CHAR: BCTYPE = SPEC_FLUX
    CHAR: HOW = CONSTANT
    INTR: NVALUES = 1
    REAL: VALUE = 0.0
  ENDDIR
END

BC: COMPONENT, Zero Flux, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: MASFRC{_Component}{_Fluid}/BCTYPE = SPEC_FLUX
  ENDFOR

  MAKDIR: MASFRC{_Component}_FLX
    CHAR: BCTYPE = SPEC_FLUX
    CHAR: HOW = CONSTANT
    INTR: NVALUES = 1
    REAL: VALUE = 0.0
  ENDDIR
END

BC: DROPLET NUMBER, Specified Diameter, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: SPDROPD, SPDROPN{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_DIAM
    ENDDIR
  ENDFOR
END

BC: DROPLET NUMBER, Specified Diameter, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: SPDROPD, SPDROPN{_Fluid}
      CHAR: BCTYPE = OPENING_DIAM
    ENDDIR
  ENDFOR
END

BC: DROPLET NUMBER, Specified Number, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: SPDROPN, SPDROPN{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_SPDROPN
    ENDDIR
  ENDFOR
END

BC: DROPLET NUMBER, Specified Number, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: SPDROPN, SPDROPN{_Fluid}
      CHAR: BCTYPE = OPENING_SPDROPN
    ENDDIR
  ENDFOR
END

BC: ELECTRIC FIELD, Charge Transfer Coefficient, INLET
  USE: BC: ELECTRIC FIELD, Transfer Coefficient
END

BC: ELECTRIC FIELD, Charge Transfer Coefficient, INTERFACE
  USE: BC: ELECTRIC FIELD, Transfer Coefficient
END

BC: ELECTRIC FIELD, Charge Transfer Coefficient, OPENING
  USE: BC: ELECTRIC FIELD, Transfer Coefficient
END

BC: ELECTRIC FIELD, Charge Transfer Coefficient, OUTLET
  USE: BC: ELECTRIC FIELD, Transfer Coefficient
END

BC: ELECTRIC FIELD, Charge Transfer Coefficient, WALL
  USE: BC: ELECTRIC FIELD, Transfer Coefficient
END

BC: ELECTRIC FIELD, Conservative Interface Flux, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: EPOT{_Fluid}/BCTYPE = ZIF
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: EPOT{_Solid}/BCTYPE = ZIF
    ENDFOR
  ENDCASE
END

BC: ELECTRIC FIELD, Electrical Current Transfer Coefficient, INLET
  USE: BC: ELECTRIC FIELD, Transfer Coefficient
END

BC: ELECTRIC FIELD, Electrical Current Transfer Coefficient, INTERFACE
  USE: BC: ELECTRIC FIELD, Transfer Coefficient
END

BC: ELECTRIC FIELD, Electrical Current Transfer Coefficient, OPENING
  USE: BC: ELECTRIC FIELD, Transfer Coefficient
END

BC: ELECTRIC FIELD, Electrical Current Transfer Coefficient, OUTLET
  USE: BC: ELECTRIC FIELD, Transfer Coefficient
END

BC: ELECTRIC FIELD, Electrical Current Transfer Coefficient, WALL
  USE: BC: ELECTRIC FIELD, Transfer Coefficient
END

BC: ELECTRIC FIELD, Flux in
  FOR: Fluid = {CurrentFluidList}
    CHAR: EPOT{_Fluid}/BCTYPE = SPEC_FLUX
    COPDIR: JCURE, EPOT{_Fluid}_FLX
      CHAR: BCTYPE = SPEC_FLUX
    ENDDIR
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: EPOT{_Solid}/BCTYPE = SPEC_FLUX
      COPDIR: JCURE, EPOT{_Solid}_FLX
        CHAR: BCTYPE = SPEC_FLUX
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: ELECTRIC FIELD, Flux in, INLET
  USE: BC: ELECTRIC FIELD, Flux in
END

BC: ELECTRIC FIELD, Flux in, INTERFACE
  USE: BC: ELECTRIC FIELD, Flux in
END

BC: ELECTRIC FIELD, Flux in, OPENING
  USE: BC: ELECTRIC FIELD, Flux in
END

BC: ELECTRIC FIELD, Flux in, OUTLET
  USE: BC: ELECTRIC FIELD, Flux in
END

BC: ELECTRIC FIELD, Flux in, WALL
  USE: BC: ELECTRIC FIELD, Flux in
END

BC: ELECTRIC FIELD, Ground
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: EPOT{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_EPOT
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      MAKDIR: EPOT{_Solid}
        CHAR: BCTYPE = SPEC_VAR_EPOT
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 1
        REAL: VALUE = 0.0
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: ELECTRIC FIELD, Ground, INLET
  USE: BC: ELECTRIC FIELD, Ground
END

BC: ELECTRIC FIELD, Ground, INTERFACE
  USE: BC: ELECTRIC FIELD, Ground
END

BC: ELECTRIC FIELD, Ground, OPENING
  USE: BC: ELECTRIC FIELD, Ground
END

BC: ELECTRIC FIELD, Ground, OUTLET
  USE: BC: ELECTRIC FIELD, Ground
END

BC: ELECTRIC FIELD, Ground, WALL
  USE: BC: ELECTRIC FIELD, Ground
END

BC: ELECTRIC FIELD, Surface Charge Density
  FOR: Fluid = {CurrentFluidList}
    CHAR: EPOT{_Fluid}/BCTYPE = SPEC_FLUX
    COPDIR: CHARGEDEN, EPOT{_Fluid}_FLX
      CHAR: BCTYPE = SPEC_FLUX
    ENDDIR
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: EPOT{_Solid}/BCTYPE = SPEC_FLUX
      COPDIR: CHARGEDEN, EPOT{_Solid}_FLX
        CHAR: BCTYPE = SPEC_FLUX
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: ELECTRIC FIELD, Surface Charge Density, INLET
  USE: BC: ELECTRIC FIELD, Surface Charge Density
END

BC: ELECTRIC FIELD, Surface Charge Density, INTERFACE
  USE: BC: ELECTRIC FIELD, Surface Charge Density
END

BC: ELECTRIC FIELD, Surface Charge Density, OPENING
  USE: BC: ELECTRIC FIELD, Surface Charge Density
END

BC: ELECTRIC FIELD, Surface Charge Density, OUTLET
  USE: BC: ELECTRIC FIELD, Surface Charge Density
END

BC: ELECTRIC FIELD, Surface Charge Density, WALL
  USE: BC: ELECTRIC FIELD, Surface Charge Density
END

BC: ELECTRIC FIELD, Transfer Coefficient
  FOR: Fluid = {CurrentFluidList}
    CHAR: EPOT{_Fluid}/BCTYPE = SPEC_FTC
    COPDIR: EPOT, EPOT{_Fluid}_EXT
      CHAR: BCTYPE = SPEC_FTC
    ENDDIR
    COPDIR: FTC, EPOT{_Fluid}_FTC
      CHAR: BCTYPE = SPEC_FTC
    ENDDIR
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: EPOT{_Solid}/BCTYPE = SPEC_FTC
      COPDIR: EPOT, EPOT{_Solid}_EXT
        CHAR: BCTYPE = SPEC_FTC
      ENDDIR
      COPDIR: FTC, EPOT{_Solid}_FTC
        CHAR: BCTYPE = SPEC_FTC
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: ELECTRIC FIELD, Voltage
  FOR: Fluid = {CurrentFluidList}
    COPDIR: EPOT, EPOT{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_EPOT
    ENDDIR
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      COPDIR: EPOT, EPOT{_Solid}
        CHAR: BCTYPE = SPEC_VAR_EPOT
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: ELECTRIC FIELD, Voltage, INLET
  USE: BC: ELECTRIC FIELD, Voltage
END

BC: ELECTRIC FIELD, Voltage, INTERFACE
  USE: BC: ELECTRIC FIELD, Voltage
END

BC: ELECTRIC FIELD, Voltage, OPENING
  USE: BC: ELECTRIC FIELD, Voltage
END

BC: ELECTRIC FIELD, Voltage, OUTLET
  USE: BC: ELECTRIC FIELD, Voltage
END

BC: ELECTRIC FIELD, Voltage, WALL
  USE: BC: ELECTRIC FIELD, Voltage
END

BC: ELECTRIC FIELD, Wall Flux in, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: EPOT{_Fluid}/BCTYPE = SPEC_FLUX_WALL
    COPDIR: JCURE, EPOT{_Fluid}_FLX
      CHAR: BCTYPE = SPEC_FLUX_WALL
    ENDDIR
  ENDFOR
END

BC: ELECTRIC FIELD, Wall Flux in, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: EPOT{_Fluid}/BCTYPE = SPEC_FLUX_WALL
    COPDIR: JCURE, EPOT{_Fluid}_FLX
      CHAR: BCTYPE = SPEC_FLUX_WALL
    ENDDIR
  ENDFOR
END

BC: ELECTRIC FIELD, Wall Transfer Coefficient, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: EPOT{_Fluid}/BCTYPE = SPEC_FTC_WALL
    COPDIR: EPOT, EPOT{_Fluid}_EXT
      CHAR: BCTYPE = SPEC_FTC_WALL
    ENDDIR
    COPDIR: FTC, EPOT{_Fluid}_FTC
      CHAR: BCTYPE = SPEC_FTC_WALL
    ENDDIR
  ENDFOR
END

BC: ELECTRIC FIELD, Wall Transfer Coefficient, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: EPOT{_Fluid}/BCTYPE = SPEC_FTC_WALL
    COPDIR: EPOT, EPOT{_Fluid}_EXT
      CHAR: BCTYPE = SPEC_FTC_WALL
    ENDDIR
    COPDIR: FTC, EPOT{_Fluid}_FTC
      CHAR: BCTYPE = SPEC_FTC_WALL
    ENDDIR
  ENDFOR
END

BC: ELECTRIC FIELD, Zero Flux
  FOR: Fluid = {CurrentFluidList}
    CHAR: EPOT{_Fluid}/BCTYPE = NEUMANN
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: EPOT{_Solid}/BCTYPE = NEUMANN
    ENDFOR
  ENDCASE
END

BC: ELECTRIC FIELD, Zero Flux, INLET
  USE: BC: ELECTRIC FIELD, Zero Flux
END

BC: ELECTRIC FIELD, Zero Flux, INTERFACE
  USE: BC: ELECTRIC FIELD, Zero Flux
END

BC: ELECTRIC FIELD, Zero Flux, OPENING
  USE: BC: ELECTRIC FIELD, Zero Flux
END

BC: ELECTRIC FIELD, Zero Flux, OUTLET
  USE: BC: ELECTRIC FIELD, Zero Flux
END

BC: ELECTRIC FIELD, Zero Flux, WALL
  USE: BC: ELECTRIC FIELD, Zero Flux
END

BC: EROSION MODEL, Finnie, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../EROSION
    COPDIR: .,../EROSION
    ENDDIR
  ENDFOR
END

BC: EROSION MODEL, Finnie, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../EROSION
    COPDIR: .,../EROSION
    ENDDIR
  ENDFOR
END

BC: EROSION MODEL, McLaury, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../EROSION
    COPDIR: .,../EROSION
    ENDDIR
  ENDFOR
END

BC: EROSION MODEL, McLaury, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../EROSION
    COPDIR: .,../EROSION
    ENDDIR
  ENDFOR
END

BC: EROSION MODEL, None, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../EROSION
    COPDIR: .,../EROSION
    ENDDIR
  ENDFOR
END

BC: EROSION MODEL, None, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../EROSION
    COPDIR: .,../EROSION
    ENDDIR
  ENDFOR
END

BC: EROSION MODEL, Oka, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../EROSION
    COPDIR: .,../EROSION
    ENDDIR
  ENDFOR
END

BC: EROSION MODEL, Oka, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../EROSION
    COPDIR: .,../EROSION
    ENDDIR
  ENDFOR
END

BC: EROSION MODEL, Tabakoff, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../EROSION
    COPDIR: .,../EROSION
    ENDDIR
  ENDFOR
END

BC: EROSION MODEL, Tabakoff, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../EROSION
    COPDIR: .,../EROSION
    ENDDIR
  ENDFOR
END

BC: EROSION MODEL, User Defined, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../EROSION
    COPDIR: .,../EROSION
    ENDDIR
  ENDFOR
END

BC: EROSION MODEL, User Defined, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../EROSION
    COPDIR: .,../EROSION
    ENDDIR
  ENDFOR
END

BC: FLAME SURFACE DENSITY, Conservative Interface Flux, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: FSD{_Fluid}/BCTYPE   = ZIF
    CHAR: SPFSD{_Fluid}/BCTYPE = ZIF
  ENDFOR
END

BC: FLAME SURFACE DENSITY, Flame Surface Density, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: FSD, FSD{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_FSD
    ENDDIR
    CHAR: SPFSD{_Fluid}/BCTYPE = SPEC_VAR_FSD
  ENDFOR
END

BC: FLAME SURFACE DENSITY, Flame Surface Density, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: FSD, FSD{_Fluid}
      CHAR: BCTYPE = OPENING_FSD
    ENDDIR
    CHAR: SPFSD{_Fluid}/BCTYPE = SPEC_VAR_FSD
  ENDFOR
END

BC: FLAME SURFACE DENSITY, Wall Flux in, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: FSD{_Fluid}/BCTYPE   = SPEC_FLUX_FSD
    CHAR: SPFSD{_Fluid}/BCTYPE = SPEC_FLUX_FSD
    COPDIR: FLX, FSD{_Fluid}_FLX
      CHAR: BCTYPE = SPEC_FLUX_WALL
    ENDDIR
  ENDFOR
END

BC: FLAME SURFACE DENSITY, Wall Flux in, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: FSD{_Fluid}/BCTYPE   = SPEC_FLUX_FSD
    CHAR: SPFSD{_Fluid}/BCTYPE = SPEC_FLUX_FSD
    COPDIR: FLX, FSD{_Fluid}_FLX
      CHAR: BCTYPE = SPEC_FLUX_WALL
    ENDDIR
  ENDFOR
END

BC: FLAME SURFACE DENSITY, Wall Quenching, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: FSD{_Fluid}/BCTYPE = SPEC_VAR_FSD
    MAKDIR: FSD{_Fluid}_WALL
      CHAR: BCTYPE = SPEC_VAR_FSD
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
    CHAR: SPFSD{_Fluid}/BCTYPE = SPEC_VAR_FSD
    CHAR: TWFTFC_FSD{_Fluid}/OPTION   = WALL_QUENCH
    CHAR: TWFTFC_SPFSD{_Fluid}/OPTION = WALL_QUENCH
  ENDFOR
END

BC: FLAME SURFACE DENSITY, Wall Quenching, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: FSD{_Fluid}/BCTYPE = SPEC_VAR_FSD
    MAKDIR: FSD{_Fluid}_WALL
      CHAR: BCTYPE = SPEC_VAR_FSD
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
    CHAR: SPFSD{_Fluid}/BCTYPE = SPEC_VAR_FSD
    CHAR: TWFTFC_FSD{_Fluid}/OPTION   = WALL_QUENCH
    CHAR: TWFTFC_SPFSD{_Fluid}/OPTION = WALL_QUENCH
  ENDFOR
END

BC: FLAME SURFACE DENSITY, Zero Flux, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: FSD{_Fluid}/BCTYPE   = NEUMANN
    CHAR: SPFSD{_Fluid}/BCTYPE = NEUMANN
  ENDFOR
END

BC: FLAME SURFACE DENSITY, Zero Flux, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: FSD{_Fluid}/BCTYPE   = NEUMANN
    CHAR: SPFSD{_Fluid}/BCTYPE = NEUMANN
  ENDFOR
END

BC: FLOW DIRECTION, Cartesian Components, INLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS: Stationary
    FOR: Fluid = {CurrentFluidList}
      COPDIR: CARTDIR, VELDIR{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_CARTS
      ENDDIR
    ENDFOR
  ELSE
    FOR: Fluid = {CurrentFluidList}
      COPDIR: CARTDIR, VELDIR{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_CART
      ENDDIR
    ENDFOR
  ENDCASE

  // Pass through the flow direction linearisation option
  CASE: {SourceDir}/{MmsName}/FDLOPT
  IS: Normal Component
    FOR: Fluid = {CurrentFluidList}
      CHAR: FDLOPT{_Fluid} = Normal Component
    ENDFOR
  IS: Velocity Magnitude
    FOR: Fluid = {CurrentFluidList}
      CHAR: FDLOPT{_Fluid} = Velocity Magnitude
    ENDFOR
  ELSE:
    FOR: Fluid = {CurrentFluidList}
      CHAR: FDLOPT{_Fluid} = Normal Component
    ENDFOR
  ENDCASE
END

BC: FLOW DIRECTION, Cartesian Components, OPENING
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS: Stationary
    FOR: Fluid = {CurrentFluidList}
      COPDIR: CARTDIR, VELDIR{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_CARTS
      ENDDIR
    ENDFOR
  ELSE
    FOR: Fluid = {CurrentFluidList}
      COPDIR: CARTDIR, VELDIR{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_CART
      ENDDIR
    ENDFOR
  ENDCASE

  // Pass through the flow direction linearisation option
  CASE: {SourceDir}/{MmsName}/FDLOPT
  IS: Normal Component
    FOR: Fluid = {CurrentFluidList}
      CHAR: FDLOPT{_Fluid} = Normal Component
    ENDFOR
  IS: Velocity Magnitude
    FOR: Fluid = {CurrentFluidList}
      CHAR: FDLOPT{_Fluid} = Velocity Magnitude
    ENDFOR
  ELSE:
    FOR: Fluid = {CurrentFluidList}
      CHAR: FDLOPT{_Fluid} = Normal Component
    ENDFOR
  ENDCASE
END

BC: FLOW DIRECTION, Cylindrical Components, INLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS: Stationary
    FOR: Fluid = {CurrentFluidList}
      COPDIR: CYLDIR, VELDIR{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_CARTS
      ENDDIR
    ENDFOR
  ELSE
    FOR: Fluid = {CurrentFluidList}
      COPDIR: CYLDIR, VELDIR{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_CART
      ENDDIR
    ENDFOR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/AXIS/AROT, {SourceDir}/{MmsName}/AXIS/BROT
  IS: *DIR*,*DIR*
    FOR: Fluid = {CurrentFluidList}
      COPDIR: AXIS/AROT, AXIS/AROT{_Fluid}
      ENDDIR
      COPDIR: AXIS/BROT, AXIS/BROT{_Fluid}
      ENDDIR
    ENDFOR
  IS: *DIR*,*NONE*
    MESAGE: Invalid INLET rotation axis specification 
    EXIT
  IS: *NONE*,*DIR*
    MESAGE: Invalid INLET rotation axis specification 
    EXIT
  ENDCASE

  // Pass through the flow direction linearisation option
  CASE: {SourceDir}/{MmsName}/FDLOPT
  IS: Normal Component
    FOR: Fluid = {CurrentFluidList}
      CHAR: FDLOPT{_Fluid} = Normal Component
    ENDFOR
  IS: Velocity Magnitude
    FOR: Fluid = {CurrentFluidList}
      CHAR: FDLOPT{_Fluid} = Velocity Magnitude
    ENDFOR
  ELSE:
    FOR: Fluid = {CurrentFluidList}
      CHAR: FDLOPT{_Fluid} = Normal Component
    ENDFOR
  ENDCASE
END

BC: FLOW DIRECTION, Cylindrical Components, OPENING
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS: Stationary
    FOR: Fluid = {CurrentFluidList}
      COPDIR: CYLDIR, VELDIR{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_CARTS
      ENDDIR
    ENDFOR
  ELSE
    FOR: Fluid = {CurrentFluidList}
      COPDIR: CYLDIR, VELDIR{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_CART
      ENDDIR
    ENDFOR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/AXIS/AROT, {SourceDir}/{MmsName}/AXIS/BROT
  IS: *DIR*,*DIR*
    FOR: Fluid = {CurrentFluidList}
      COPDIR: AXIS/AROT, AXIS/AROT{_Fluid}
      ENDDIR
      COPDIR: AXIS/BROT, AXIS/BROT{_Fluid}
      ENDDIR
    ENDFOR
  IS: *DIR*,*NONE*
     MESAGE: Invalid OPENING rotation axis specification 
     EXIT
  IS: *NONE*,*DIR*
     MESAGE: Invalid OPENING rotation axis specification 
     EXIT
  ENDCASE
END

BC: FLOW DIRECTION, Local Flow Direction, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: VELDIR{_Fluid}/BCTYPE = SPEC_VAR_VEL
  ENDFOR
END

BC: FLOW DIRECTION, Normal to Boundary Condition, INLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS: Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: VELDIR{_Fluid}/BCTYPE = SPEC_VAR_NORMS
    ENDFOR
  ELSE
    FOR: Fluid = {CurrentFluidList}
      CHAR: VELDIR{_Fluid}/BCTYPE = SPEC_VAR_NORM
    ENDFOR
  ENDCASE

  // Pass through the flow direction linearisation option
  CASE: {SourceDir}/{MmsName}/FDLOPT
  IS: Normal Component
    FOR: Fluid = {CurrentFluidList}
      CHAR: FDLOPT{_Fluid} = Normal Component
    ENDFOR
  IS: Velocity Magnitude
    FOR: Fluid = {CurrentFluidList}
      CHAR: FDLOPT{_Fluid} = Velocity Magnitude
    ENDFOR
  ELSE:
    FOR: Fluid = {CurrentFluidList}
      CHAR: FDLOPT{_Fluid} = Normal Component
    ENDFOR
  ENDCASE
END

BC: FLOW DIRECTION, Normal to Boundary Condition, OPENING
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS: Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: VELDIR{_Fluid}/BCTYPE = SPEC_VAR_NORMS
    ENDFOR
  ELSE
    FOR: Fluid = {CurrentFluidList}
      CHAR: VELDIR{_Fluid}/BCTYPE = SPEC_VAR_NORM
    ENDFOR
  ENDCASE

  // Pass through the flow direction linearisation option
  CASE: {SourceDir}/{MmsName}/FDLOPT
  IS: Normal Component
    FOR: Fluid = {CurrentFluidList}
      CHAR: FDLOPT{_Fluid} = Normal Component
    ENDFOR
  IS: Velocity Magnitude
    FOR: Fluid = {CurrentFluidList}
      CHAR: FDLOPT{_Fluid} = Velocity Magnitude
    ENDFOR
  ELSE:
    FOR: Fluid = {CurrentFluidList}
      CHAR: FDLOPT{_Fluid} = Normal Component
    ENDFOR
  ENDCASE
END

BC: FLOW DIRECTION, Zero Gradient, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: VELDIR{_Fluid}/BCTYPE = ZERO_GRAD

    CASE: {SourceDir}/{MmsName}/ELIMFAC
    IS: *DIR*
      COPDIR: ELIMFAC, VEL{_Fluid}/ELIMFAC
      ENDDIR
    ENDCASE

    CASE: {SourceDir}/{MmsName}/BETA
    IS: *DIR*
      COPDIR: BETA, VEL{_Fluid}/BETA
      ENDDIR
    ENDCASE
  ENDFOR
END

BC: FLOW DIRECTION, Zero Gradient, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: VELDIR{_Fluid}/BCTYPE = ZERO_GRAD

    CASE: {SourceDir}/{MmsName}/ELIMFAC
    IS: *DIR*
      COPDIR: ELIMFAC, VEL{_Fluid}/ELIMFAC
      ENDDIR
    ENDCASE

    CASE: {SourceDir}/{MmsName}/BETA
    IS: *DIR*
      COPDIR: BETA, VEL{_Fluid}/BETA
      ENDDIR
    ENDCASE
  ENDFOR
END

BC: FLOW REGIME, Mixed, INLET
  CHAR:   ../REGIME = MIXED

  CASE: {SourceDir}/FLOW_REGIME/MACH_TYPE
  IS: Normal Speed
    CHAR: ../MACH_TYPE = NORMAL_SPEED
  IS: Local Speed
    CHAR: ../MACH_TYPE = LOCAL_SPEED

// default to 'Normal Speed'

  ELSE:
    CHAR: ../MACH_TYPE = NORMAL_SPEED
  ENDCASE

END

BC: FLOW REGIME, Subsonic, INLET
END

BC: FLOW REGIME, Subsonic, OPENING
END

BC: FLOW REGIME, Subsonic, OUTLET

  // Provisionally profit from the assumption that
  // Flow Regime is always defined, to set most outlet bc.
  // Can redesign this later to be driven by higher
  // higher level objects.

  // Active variables that are not mentioned here
  // and are not covered elsewhere (such as degassing bc)
  // should have a BCTYPE=OUTLET automatically set by the solver.

  // Do not attempt to set any bcs here
  // if a degassing condition is also set.

  CASE: {SourceDir}/../BOUNDARY_CONDITIONS/MASS_AND_MOMENTUM/OPTION
  IS: Degassing Condition
      SKIP
  IS: Continuous Phase Wall
      SKIP
  IS: Dispersed Phase Wall
      SKIP
  ENDCASE

  // zone fluid component list is not easy to identify here
  // so BCTYPE=OUTLET is set inside solver instead.

  // AVs done in the solver as well (if not set up explicitly)

  FOR: Fluid = {CurrentFluidList}
    CHAR: TEMP{_Fluid}/BCTYPE     = OUTLET
    CHAR: ENTHSTAT{_Fluid}/BCTYPE = OUTLET
    CHAR: ENTHTOT{_Fluid}/BCTYPE  = OUTLET
    CHAR: ENTHTOTR{_Fluid}/BCTYPE = OUTLET
  ENDFOR
END

BC: FLOW REGIME, Supersonic, INLET
  CHAR:   ../REGIME = SUPERSONIC
END

BC: FLOW REGIME, Supersonic, OUTLET
  // Provisionally profit from the assumption that
  // Flow Regime is always defined, to set most outlet bc.
  // Can redesign this later to be driven by higher
  // higher level objects.

  // zone fluid component list is not easy to identify here
  // so BCTYPE=OUTLET is set inside solver instead.

  // AVs done in the solver as well (if not set up explicitly)

  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE      = OUTLET
    CHAR: TED{_Fluid}/BCTYPE      = OUTLET
    CHAR: TEF{_Fluid}/BCTYPE      = OUTLET
    CHAR: VISKTRB{_Fluid}/BCTYPE  = OUTLET
    CHAR: TEMP{_Fluid}/BCTYPE     = OUTLET
    CHAR: RS{_Fluid}/BCTYPE       = OUTLET
    CHAR: VEL{_Fluid}/BCTYPE      = OUTLET_SS
    CHAR: ENTHSTAT{_Fluid}/BCTYPE = OUTLET
    CHAR: ENTHTOT{_Fluid}/BCTYPE  = OUTLET
    CHAR: ENTHTOTR{_Fluid}/BCTYPE = OUTLET
  ENDFOR

  CHAR: PRES/BCTYPE = OUTLET_SS
  CHAR: PTOT/BCTYPE = OUTLET_SS
END

BC: G SCALAR, Conservative Interface Flux, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: GSCAL{_Fluid}/BCTYPE = ZIF
    CHAR: GSVAR{_Fluid}/BCTYPE = ZIF
  ENDFOR
END

BC: G SCALAR, G Scalar, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: GSCAL, GSCAL{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_GSCAL
    ENDDIR
    COPDIR: GSVAR, GSVAR{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_GSVAR
    ENDDIR
  ENDFOR
END

BC: G SCALAR, G Scalar, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: GSCAL, GSCAL{_Fluid}
      CHAR: BCTYPE = OPENING_GSCAL
      CHAR: BCTYPE = OPENING_GSVAR
    ENDDIR
  ENDFOR
END

BC: G SCALAR, Turbulent Fluctuation
  FOR: Fluid = {CurrentFluidList}
    COPDIR: GSVAR, GSVAR{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_GSVAR
    ENDDIR
  ENDFOR
END

BC: G SCALAR, Turbulent Fluctuation, INTERFACE
  USE: BC: G SCALAR, Turbulent Fluctuation
END

BC: G SCALAR, Turbulent Fluctuation, WALL
  USE: BC: G SCALAR, Turbulent Fluctuation
END

BC: G SCALAR, Zero Flux
  FOR: Fluid = {CurrentFluidList}
    COPDIR: GSCAL, GSCAL{_Fluid}
      CHAR: BCTYPE = SPEC_FLUX
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
    MAKDIR: GSVAR, GSVAR{_Fluid}
      CHAR: BCTYPE = SPEC_FLUX
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
  ENDFOR
END

BC: G SCALAR, Zero Flux, INTERFACE
  USE: BC: G SCALAR, Zero Flux
END

BC: G SCALAR, Zero Flux, WALL
  USE: BC: G SCALAR, Zero Flux
END

BC: G SCALAR, Zero Gradient, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: GSCAL, GSCAL{_Fluid}
      CHAR: BCTYPE = ZERO_GRAD
    ENDDIR
    MAKDIR: GSVAR{_Fluid}
      CHAR: BCTYPE = ZERO_GRAD
    ENDDIR
  ENDFOR
END

BC: G SCALAR, Zero Gradient, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: GSCAL, GSCAL{_Fluid}
      CHAR: BCTYPE = ZERO_GRAD
    ENDDIR
    MAKDIR: GSVAR{_Fluid}
      CHAR: BCTYPE = ZERO_GRAD
    ENDDIR
  ENDFOR
END

BC: HEAT TRANSFER, Adiabatic
  FOR: Fluid = {CurrentFluidList}
    CHAR: TEMP{_Fluid}/BCTYPE = SPEC_FLUX
    CHAR: ENTHSTAT{_Fluid}/BCTYPE = SPEC_FLUX
    CHAR: ENTHTOT{_Fluid}/BCTYPE = SPEC_FLUX
    MAKDIR: TEMP{_Fluid}_FLX
      CHAR: BCTYPE = SPEC_FLUX
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
    CASE: {SourceDir}/{MmsName}/TURBWF/OPTION
    IS: User Defined
      COPDIR: TURBWF/TWFTFC, TWFTFC{_Fluid}
      ENDDIR
      CHAR: TURBWF/OPTION, TWFTFC{_Fluid}/OPTION
    ENDCASE
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: ENTHSTAT{_Solid}/BCTYPE = SPEC_FLUX
      CHAR: TEMP{_Solid}/BCTYPE = SPEC_FLUX
      MAKDIR: TEMP{_Solid}_FLX
        CHAR: BCTYPE = SPEC_FLUX
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 1
        REAL: VALUE = 0.0
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: HEAT TRANSFER, Adiabatic, INLET
  USE: BC: HEAT TRANSFER, Adiabatic
END

BC: HEAT TRANSFER, Adiabatic, INTERFACE
  USE: BC: HEAT TRANSFER, Adiabatic
END

BC: HEAT TRANSFER, Adiabatic, OPENING
  USE: BC: HEAT TRANSFER, Adiabatic
END

BC: HEAT TRANSFER, Adiabatic, OUTLET
  USE: BC: HEAT TRANSFER, Adiabatic
END

BC: HEAT TRANSFER, Adiabatic, WALL
  USE: BC: HEAT TRANSFER, Adiabatic
END

BC: HEAT TRANSFER, ANSYS MultiField, WALL
  CASE: {SourceDir}/{MmsName}/DATAFROMANSYS
  
  IS: Wall Heat Flow
    FOR: Fluid = {CurrentFluidList}
      CHAR: TEMP{_Fluid}/BCTYPE = SPEC_FLUX_WALL 
      CHAR: ENTHSTAT{_Fluid}/BCTYPE = SPEC_FLUX_WALL
      CHAR: ENTHTOT{_Fluid}/BCTYPE = SPEC_FLUX_WALL
      CHAR: TEMP{_Fluid}_FLX/BCTYPE = SPEC_FLUX
      CHAR: TEMP{_Fluid}_FLX/HOW = DT
    ENDFOR

    FOR: Solid = {CurrentSolidList}
      CHAR: ENTHSTAT{_Solid}/BCTYPE = SPEC_FLUX_WALL
      CHAR: TEMP{_Solid}/BCTYPE = SPEC_FLUX_WALL
      CHAR: TEMP{_Solid}_FLX/BCTYPE = SPEC_FLUX
      CHAR: TEMP{_Solid}_FLX/HOW = DT
    ENDFOR
  
  IS: Wall Heat Flux
    FOR: Fluid = {CurrentFluidList}
      CHAR: TEMP{_Fluid}/BCTYPE = SPEC_FLUX_WALL
      CHAR: ENTHSTAT{_Fluid}/BCTYPE = SPEC_FLUX_WALL
      CHAR: ENTHTOT{_Fluid}/BCTYPE = SPEC_FLUX_WALL
      CHAR: TEMP{_Fluid}_FLX/BCTYPE = SPEC_FLUX
      CHAR: TEMP{_Fluid}_FLX/HOW = DT
    ENDFOR

    FOR: Solid = {CurrentSolidList}
      CHAR: ENTHSTAT{_Solid}/BCTYPE = SPEC_FLUX_WALL
      CHAR: TEMP{_Solid}/BCTYPE = SPEC_FLUX_WALL
      CHAR: TEMP{_Solid}_FLX/BCTYPE = SPEC_FLUX
      CHAR: TEMP{_Solid}_FLX/HOW = DT
    ENDFOR
  
  IS: Temperature
    FOR: Fluid = {CurrentFluidList}
      CHAR: ENTHSTAT{_Fluid}/BCTYPE = SPEC_VAR_TEMP
      CHAR: ENTHTOT{_Fluid}/BCTYPE = SPEC_VAR_TEMP
      CHAR: TEMP{_Fluid}/BCTYPE = SPEC_VAR_TEMP
      CHAR: TEMP{_Fluid}_WALL/BCTYPE = SPEC_VAR_TEMP
      CHAR: TEMP{_Fluid}_WALL/HOW = DT

      CHAR: TVAR{_Fluid}/BCTYPE = SPEC_VAR_TVAR
      MAKDIR: TVAR{_Fluid}_WALL
        CHAR: BCTYPE = SPEC_VAR_TVAR
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 1
        REAL: VALUE = 0.0
      ENDDIR
    ENDFOR

    FOR: Solid = {CurrentSolidList}
      CHAR: ENTHSTAT{_Solid}/BCTYPE = SPEC_VAR_TEMP
      CHAR: TEMP{_Solid}/BCTYPE = SPEC_VAR_TEMP
      CHAR: TEMP{_Solid}_WALL/BCTYPE = SPEC_VAR_TEMP
      CHAR: TEMP{_Solid}_WALL/HOW = DT
    ENDFOR
  
  ELSE
    MESAGE: Invalid HEAT TRANSFER Receive from ANSYS, WALL
    MESAGE:
    EXIT
  ENDCASE
END

BC: HEAT TRANSFER, Bulk Adiabatic
  FOR: Fluid = {CurrentFluidList}
    CHAR: TEMP{_Fluid}/BCTYPE = SPEC_FLUX_BLK
    CHAR: ENTHSTAT{_Fluid}/BCTYPE = SPEC_FLUX_BLK
    CHAR: ENTHTOT{_Fluid}/BCTYPE = SPEC_FLUX_BLK
    CASE: {SourceDir}/{MmsName}/TURBWF/OPTION
    IS: User Defined
      COPDIR: TURBWF/TWFTFC, TWFTFC{_Fluid}      
      ENDDIR      
      CHAR: TURBWF/OPTION, TWFTFC{_Fluid}/OPTION
    ENDCASE
    CASE: /FLOW/{Zone}/{Fluid}/MORPHOLOGY/OPTION 
    IS: Dispersed Fluid
      COPDIR: DHTC, HTC{_Fluid}
      ENDDIR
    IS: Dispersed Solid
      COPDIR: DHTC, HTC{_Fluid}
      ENDDIR      
    ENDCASE  
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: ENTHSTAT{_Solid}/BCTYPE = SPEC_FLUX
      CHAR: TEMP{_Solid}/BCTYPE = SPEC_FLUX
      MAKDIR: TEMP{_Solid}_FLX
        CHAR: BCTYPE = SPEC_FLUX
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 1
        REAL: VALUE = 0.0
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: HEAT TRANSFER, Bulk Adiabatic, WALL
  USE: BC: HEAT TRANSFER, Bulk Adiabatic
END

BC: HEAT TRANSFER, Conservative Interface Flux, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ENTHSTAT{_Fluid}/BCTYPE = ZIF
    CHAR: ENTHTOT{_Fluid}/BCTYPE  = ZIF
    CHAR: ENTHTOTS{_Fluid}/BCTYPE = ZIF
    CHAR: ENTHTOTR{_Fluid}/BCTYPE = ZIF
    CHAR: TEMP{_Fluid}/BCTYPE     = ZIF

    CASE: {SourceDir}/{MmsName}/TURBWF/OPTION
    IS: User Defined
      COPDIR: TURBWF/TWFTFC, TWFTFC{_Fluid}
      ENDDIR
      CHAR: TURBWF/OPTION, TWFTFC{_Fluid}/OPTION
    ENDCASE
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: ENTHSTAT{_Solid}/BCTYPE = ZIF
      CHAR: TEMP{_Solid}/BCTYPE = ZIF
    ENDFOR
  ENDCASE
END

BC: HEAT TRANSFER, Fixed Temperature
  FOR: Fluid = {CurrentFluidList}
    CHAR: ENTHSTAT{_Fluid}/BCTYPE = SPEC_VAR_TEMP
    CHAR: ENTHTOT{_Fluid}/BCTYPE = SPEC_VAR_TEMP
    CHAR: TEMP{_Fluid}/BCTYPE = SPEC_VAR_TEMP
    COPDIR: TEMP, TEMP{_Fluid}_WALL
      CHAR: BCTYPE = SPEC_VAR_TEMP
    ENDDIR
    CASE: {SourceDir}/{MmsName}/TURBWF/OPTION 
    IS: User Defined 
      COPDIR: TURBWF/TWFTFC, TWFTFC{_Fluid} 
      ENDDIR
      CHAR: TURBWF/OPTION, TWFTFC{_Fluid}/OPTION 
    ENDCASE

    CHAR: TVAR{_Fluid}/BCTYPE = SPEC_VAR_TVAR
    MAKDIR: TVAR{_Fluid}_WALL
      CHAR: BCTYPE = SPEC_VAR_TVAR
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: ENTHSTAT{_Solid}/BCTYPE = SPEC_VAR_TEMP
      CHAR: TEMP{_Solid}/BCTYPE = SPEC_VAR_TEMP
      COPDIR: TEMP, TEMP{_Solid}_WALL
        CHAR: BCTYPE = SPEC_VAR_TEMP
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: HEAT TRANSFER, Fixed Temperature, INLET
  USE: BC: HEAT TRANSFER, Fixed Temperature
END

BC: HEAT TRANSFER, Fixed Temperature, INTERFACE
  USE: BC: HEAT TRANSFER, Fixed Temperature
END

BC: HEAT TRANSFER, Fixed Temperature, OPENING
  USE: BC: HEAT TRANSFER, Fixed Temperature
END

BC: HEAT TRANSFER, Fixed Temperature, OUTLET
  USE: BC: HEAT TRANSFER, Fixed Temperature
END

BC: HEAT TRANSFER, Fixed Temperature, WALL
  USE: BC: HEAT TRANSFER, Fixed Temperature
END

BC: HEAT TRANSFER, Fluid Dependent, INLET
END

BC: HEAT TRANSFER, Fluid Dependent, INTERFACE
END

BC: HEAT TRANSFER, Fluid Dependent, OPENING
END

BC: HEAT TRANSFER, Fluid Dependent, WALL
END

BC: HEAT TRANSFER, Heat Flux
  FOR: Fluid = {CurrentFluidList}
    CHAR: TEMP{_Fluid}/BCTYPE = SPEC_FLUX
    CHAR: ENTHSTAT{_Fluid}/BCTYPE = SPEC_FLUX
    CHAR: ENTHTOT{_Fluid}/BCTYPE = SPEC_FLUX
    COPDIR: HFLX, TEMP{_Fluid}_FLX
      CHAR: BCTYPE = SPEC_FLUX
    ENDDIR
    CASE: {SourceDir}/{MmsName}/TURBWF/OPTION
    IS: User Defined
      COPDIR: TURBWF/TWFTFC, TWFTFC{_Fluid}
      ENDDIR
      CHAR: TURBWF/OPTION, TWFTFC{_Fluid}/OPTION
    ENDCASE
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: ENTHSTAT{_Solid}/BCTYPE = SPEC_FLUX
      CHAR: TEMP{_Solid}/BCTYPE = SPEC_FLUX
      COPDIR: HFLX, TEMP{_Solid}_FLX
        CHAR: BCTYPE = SPEC_FLUX
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: HEAT TRANSFER, Heat Flux, INLET
  USE: BC: HEAT TRANSFER, Heat Flux
END

BC: HEAT TRANSFER, Heat Flux, INTERFACE
  USE: BC: HEAT TRANSFER, Heat Flux
END

BC: HEAT TRANSFER, Heat Flux, OPENING
  USE: BC: HEAT TRANSFER, Heat Flux
END

BC: HEAT TRANSFER, Heat Flux, OUTLET
  USE: BC: HEAT TRANSFER, Heat Flux
END

BC: HEAT TRANSFER, Heat Flux, WALL
  USE: BC: HEAT TRANSFER, Heat Flux
END

BC: HEAT TRANSFER, Heat Transfer Coefficient
  FOR: Fluid = {CurrentFluidList}
    CHAR: ENTHSTAT{_Fluid}/BCTYPE = SPEC_FTC
    CHAR: ENTHTOT{_Fluid}/BCTYPE = SPEC_FTC
    CHAR: TEMP{_Fluid}/BCTYPE = SPEC_FTC
    COPDIR: HTC, TEMP{_Fluid}_FTC
      CHAR: BCTYPE = SPEC_FTC
    ENDDIR
    COPDIR: TEMP, TEMP{_Fluid}_EXT
      CHAR: BCTYPE = SPEC_VAR_TEMP
    ENDDIR
    CASE: {SourceDir}/{MmsName}/TURBWF/OPTION
    IS: User Defined
      COPDIR: TURBWF/TWFTFC, TWFTFC{_Fluid}
      ENDDIR
      CHAR: TURBWF/OPTION, TWFTFC{_Fluid}/OPTION
    ENDCASE
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: ENTHSTAT{_Solid}/BCTYPE = SPEC_FTC
      CHAR: TEMP{_Solid}/BCTYPE = SPEC_FTC
      COPDIR: HTC, TEMP{_Solid}_FTC
        CHAR: BCTYPE = SPEC_FTC
      ENDDIR
      COPDIR: TEMP, TEMP{_Solid}_EXT
        CHAR: BCTYPE = SPEC_VAR_TEMP
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: HEAT TRANSFER, Heat Transfer Coefficient, INLET
  USE: BC: HEAT TRANSFER, Heat Transfer Coefficient
END

BC: HEAT TRANSFER, Heat Transfer Coefficient, INTERFACE
  USE: BC: HEAT TRANSFER, Heat Transfer Coefficient
END

BC: HEAT TRANSFER, Heat Transfer Coefficient, OPENING
  USE: BC: HEAT TRANSFER, Heat Transfer Coefficient
END

BC: HEAT TRANSFER, Heat Transfer Coefficient, OUTLET
  USE: BC: HEAT TRANSFER, Heat Transfer Coefficient
END

BC: HEAT TRANSFER, Heat Transfer Coefficient, WALL
  USE: BC: HEAT TRANSFER, Heat Transfer Coefficient
END

BC: HEAT TRANSFER, Opening Temperature, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: ENTHSTAT{_Fluid}/BCTYPE = OPENING_TTOT
    CHAR: ENTHTOT{_Fluid}/BCTYPE  = OPENING_TTOT
    CHAR: ENTHTOTR{_Fluid}/BCTYPE = OPENING_TTOT
    CHAR: TEMP{_Fluid}/BCTYPE     = OPENING_TTOT

    COPDIR: TTOT, TTOT{_Fluid}
      CHAR: BCTYPE = OPENING_TTOT
    ENDDIR
  ENDFOR
END

BC: HEAT TRANSFER, Static Temperature
  FOR: Fluid = {CurrentFluidList}
    CHAR: ENTHSTAT{_Fluid}/BCTYPE = SPEC_VAR_TEMP
    CHAR: ENTHTOT{_Fluid}/BCTYPE  = SPEC_VAR_TEMP
    CHAR: ENTHTOTR{_Fluid}/BCTYPE = SPEC_VAR_TEMP
    CHAR: TTOT{_Fluid}/BCTYPE     = SPEC_VAR_TEMP
    COPDIR: TEMP, TEMP{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TEMP
    ENDDIR
    CASE: {SourceDir}/{MmsName}/TURBWF/OPTION
    IS: User Defined
      COPDIR: TURBWF/TWFTFC, TWFTFC{_Fluid}
      ENDDIR
      CHAR: TURBWF/OPTION, TWFTFC{_Fluid}/OPTION
    ENDCASE
  ENDFOR
  
  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: ENTHSTAT{_Solid}/BCTYPE = SPEC_VAR_TEMP
      CHAR: ENTHTOT{_Solid}/BCTYPE  = SPEC_VAR_TEMP
      CHAR: ENTHTOTR{_Solid}/BCTYPE = SPEC_VAR_TEMP
      CHAR: TTOT{_Solid}/BCTYPE     = SPEC_VAR_TEMP
      COPDIR: TEMP, TEMP{_Solid}
        CHAR: BCTYPE = SPEC_VAR_TEMP
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: HEAT TRANSFER, Static Temperature, INLET
  USE: BC: HEAT TRANSFER, Static Temperature
END

BC: HEAT TRANSFER, Static Temperature, INTERFACE
  USE: BC: HEAT TRANSFER, Static Temperature
END

BC: HEAT TRANSFER, Static Temperature, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: ENTHSTAT{_Fluid}/BCTYPE = OPENING_TEMP
    CHAR: ENTHTOT{_Fluid}/BCTYPE  = OPENING_TEMP
    CHAR: ENTHTOTR{_Fluid}/BCTYPE = OPENING_TEMP
    COPDIR: TEMP, TEMP{_Fluid}
      CHAR: BCTYPE = OPENING_TEMP
    ENDDIR
  ENDFOR
  
  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: ENTHSTAT{_Solid}/BCTYPE = OPENING_TEMP
      CHAR: ENTHTOT{_Solid}/BCTYPE  = OPENING_TEMP
      CHAR: ENTHTOTR{_Solid}/BCTYPE = OPENING_TEMP
      COPDIR: TEMP, TEMP{_Solid}
        CHAR: BCTYPE = OPENING_TEMP
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: HEAT TRANSFER, Static Temperature, OUTLET
  USE: BC: HEAT TRANSFER, Static Temperature
END

BC: HEAT TRANSFER, Static Temperature, WALL
  USE: BC: HEAT TRANSFER, Static Temperature
END

BC: HEAT TRANSFER, Stationary Frame Total Enthalpy, INLET
  CASE: /FLOW/{Zone}/DOMAIN_MODELS/DOMAIN_MOTION/OPTION
  IS: Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: TEMP{_Fluid}/BCTYPE     = SPEC_VAR_HTOT
      CHAR: TTOT{_Fluid}/BCTYPE     = SPEC_VAR_HTOT
      CHAR: ENTHSTAT{_Fluid}/BCTYPE = SPEC_VAR_HTOT
      CHAR: ENTHTOT{_Fluid}/BCTYPE  = SPEC_VAR_HTOT 
      CHAR: ENTHTOTR{_Fluid}/BCTYPE = SPEC_VAR_HTOT
      // Transfer enthalpy value to HTOT_FLn directory.
      COPDIR: HTOT, ENTHTOT{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_HTOT
      ENDDIR
    ENDFOR
  ELSE
    FOR: Fluid = {CurrentFluidList}
      CHAR: TEMP{_Fluid}/BCTYPE     = SPEC_VAR_HTOTS
      CHAR: TTOT{_Fluid}/BCTYPE     = SPEC_VAR_HTOTS
      CHAR: ENTHSTAT{_Fluid}/BCTYPE = SPEC_VAR_HTOTS
      CHAR: ENTHTOT{_Fluid}/BCTYPE  = SPEC_VAR_HTOTS
      CHAR: ENTHTOTR{_Fluid}/BCTYPE = SPEC_VAR_HTOTS
      // Transfer enthalpy value to HTOTS_FLn directory.
      COPDIR: HTOT, ENTHTOTS{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_HTOTS
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: HEAT TRANSFER, Stationary Frame Total Temperature, INLET
  CASE: /FLOW/{Zone}/DOMAIN_MODELS/DOMAIN_MOTION/OPTION
  IS: Rotating
    FOR: Fluid = {CurrentFluidList}
      // Insert a BCTYPE reference in TEMP_FLn directory.
      CHAR: TEMP{_Fluid}/BCTYPE     = SPEC_VAR_TTOTS
      CHAR: ENTHSTAT{_Fluid}/BCTYPE = SPEC_VAR_TTOTS
      CHAR: ENTHTOT{_Fluid}/BCTYPE  = SPEC_VAR_TTOTS
      CHAR: ENTHTOTR{_Fluid}/BCTYPE = SPEC_VAR_TTOTS
      // Transfer temperature value to TTOTS_FLn directory.
      COPDIR: TEMP, TTOTS{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_TTOTS
      ENDDIR
    ENDFOR
  ELSE
    FOR: Fluid = {CurrentFluidList}
       // Insert a BCTYPE reference in TEMP_FLn directory.
      CHAR: TEMP{_Fluid}/BCTYPE     = SPEC_VAR_TTOT
      CHAR: ENTHSTAT{_Fluid}/BCTYPE = SPEC_VAR_TTOT
      CHAR: ENTHTOT{_Fluid}/BCTYPE  = SPEC_VAR_TTOT
      CHAR: ENTHTOTR{_Fluid}/BCTYPE = SPEC_VAR_TTOT
      // Transfer temperature value to TTOT_FLn directory.
      COPDIR: TEMP, TTOT{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_TTOT
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: HEAT TRANSFER, System Coupling, WALL
    FOR: Fluid = {CurrentFluidList}
      CHAR: ENTHSTAT{_Fluid}/BCTYPE = SPEC_VAR_TEMP
      CHAR: ENTHTOT{_Fluid}/BCTYPE = SPEC_VAR_TEMP
      CHAR: TEMP{_Fluid}/BCTYPE = SPEC_VAR_TEMP
      CHAR: TEMP{_Fluid}_WALL/BCTYPE = SPEC_VAR_TEMP
      CHAR: TEMP{_Fluid}_WALL/HOW = SC

      CHAR: TVAR{_Fluid}/BCTYPE = SPEC_VAR_TVAR
      MAKDIR: TVAR{_Fluid}_WALL
        CHAR: BCTYPE = SPEC_VAR_TVAR
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 1
        REAL: VALUE = 0.0
      ENDDIR
    ENDFOR

    FOR: Solid = {CurrentSolidList}
      CHAR: ENTHSTAT{_Solid}/BCTYPE = SPEC_VAR_TEMP
      CHAR: TEMP{_Solid}/BCTYPE = SPEC_VAR_TEMP
      CHAR: TEMP{_Solid}_WALL/BCTYPE = SPEC_VAR_TEMP
      CHAR: TEMP{_Solid}_WALL/HOW = DT
    ENDFOR
END

BC: HEAT TRANSFER, Total Enthalpy, INLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS: Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: TEMP{_Fluid}/BCTYPE     = SPEC_VAR_HTOTS
      CHAR: TTOT{_Fluid}/BCTYPE     = SPEC_VAR_HTOTS
      CHAR: ENTHSTAT{_Fluid}/BCTYPE = SPEC_VAR_HTOTS
      CHAR: ENTHTOTR{_Fluid}/BCTYPE = SPEC_VAR_HTOTS
      // Transfer enthalpy value to HTOTS_FLn directory.
      COPDIR: HTOT, ENTHTOT{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_HTOTS
      ENDDIR
    ENDFOR
  ELSE
    FOR: Fluid = {CurrentFluidList}
      CHAR: TEMP{_Fluid}/BCTYPE     = SPEC_VAR_HTOT
      CHAR: TTOT{_Fluid}/BCTYPE     = SPEC_VAR_HTOT
      CHAR: ENTHSTAT{_Fluid}/BCTYPE = SPEC_VAR_HTOT
      CHAR: ENTHTOTR{_Fluid}/BCTYPE = SPEC_VAR_HTOT
      // Transfer enthalpy value to HTOT_FLn directory.
      COPDIR: HTOT, ENTHTOT{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_HTOT
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: HEAT TRANSFER, Total Temperature, INLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS: Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: TEMP{_Fluid}/BCTYPE     = SPEC_VAR_TTOTS
      CHAR: ENTHSTAT{_Fluid}/BCTYPE = SPEC_VAR_TTOTS
      CHAR: ENTHTOT{_Fluid}/BCTYPE  = SPEC_VAR_TTOTS
      CHAR: ENTHTOTR{_Fluid}/BCTYPE = SPEC_VAR_TTOTS
      // Transfer temperature value to TTOTS_FLn directory.
      COPDIR: TEMP, TTOTS{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_TTOTS
      ENDDIR
    ENDFOR
  ELSE
    FOR: Fluid = {CurrentFluidList}
      CHAR: TEMP{_Fluid}/BCTYPE     = SPEC_VAR_TTOT
      CHAR: ENTHSTAT{_Fluid}/BCTYPE = SPEC_VAR_TTOT
      CHAR: ENTHTOT{_Fluid}/BCTYPE  = SPEC_VAR_TTOT
      CHAR: ENTHTOTR{_Fluid}/BCTYPE = SPEC_VAR_TTOT
      // Transfer temperature value to TTOT_FLn directory.
      COPDIR: TEMP, TTOT{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_TTOT
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: HEAT TRANSFER, Wall Heat Flux
  FOR: Fluid = {CurrentFluidList}
    CHAR: TEMP{_Fluid}/BCTYPE = SPEC_FLUX_WALL
    CHAR: ENTHSTAT{_Fluid}/BCTYPE = SPEC_FLUX_WALL
    CHAR: ENTHTOT{_Fluid}/BCTYPE = SPEC_FLUX_WALL
    COPDIR: HFLX, TEMP{_Fluid}_FLX
      CHAR: BCTYPE = SPEC_FLUX
    ENDDIR
    CASE: {SourceDir}/{MmsName}/TURBWF/OPTION
    IS: User Defined
      COPDIR: TURBWF/TWFTFC, TWFTFC{_Fluid}
      ENDDIR
      CHAR: TURBWF/OPTION, TWFTFC{_Fluid}/OPTION
    ENDCASE
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: ENTHSTAT{_Solid}/BCTYPE = SPEC_FLUX_WALL
      CHAR: TEMP{_Solid}/BCTYPE = SPEC_FLUX_WALL
      COPDIR: HFLX, TEMP{_Solid}_FLX
        CHAR: BCTYPE = SPEC_FLUX
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: HEAT TRANSFER, Wall Heat Flux, INTERFACE
  USE: BC: HEAT TRANSFER, Wall Heat Flux
END

BC: HEAT TRANSFER, Wall Heat Flux, WALL
  USE: BC: HEAT TRANSFER, Wall Heat Flux
END

BC: HEAT TRANSFER, Wall Heat Transfer Coefficient
  FOR: Fluid = {CurrentFluidList}
    CHAR: ENTHSTAT{_Fluid}/BCTYPE = SPEC_FTC_WALL
    CHAR: ENTHTOT{_Fluid}/BCTYPE = SPEC_FTC_WALL
    CHAR: TEMP{_Fluid}/BCTYPE = SPEC_FTC_WALL
    COPDIR: HTC, TEMP{_Fluid}_FTC
      CHAR: BCTYPE = SPEC_FTC
    ENDDIR
    COPDIR: TEMP, TEMP{_Fluid}_EXT
      CHAR: BCTYPE = SPEC_VAR_TEMP
    ENDDIR
    CASE: {SourceDir}/{MmsName}/TURBWF/OPTION
    IS: User Defined
      COPDIR: TURBWF/TWFTFC, TWFTFC{_Fluid}
      ENDDIR
      CHAR: TURBWF/OPTION, TWFTFC{_Fluid}/OPTION
    ENDCASE
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: ENTHSTAT{_Solid}/BCTYPE = SPEC_FTC_WALL
      CHAR: TEMP{_Solid}/BCTYPE = SPEC_FTC_WALL
      COPDIR: HTC, TEMP{_Solid}_FTC
        CHAR: BCTYPE = SPEC_FTC
      ENDDIR
      COPDIR: TEMP, TEMP{_Solid}_EXT
        CHAR: BCTYPE = SPEC_VAR_TEMP
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: HEAT TRANSFER, Wall Heat Transfer Coefficient, INTERFACE
  USE: BC: HEAT TRANSFER, Wall Heat Transfer Coefficient
END

BC: HEAT TRANSFER, Wall Heat Transfer Coefficient, WALL
  USE: BC: HEAT TRANSFER, Wall Heat Transfer Coefficient
END

BC: HEAT TRANSFER, Zero Gradient
  FOR: Fluid = {CurrentFluidList}
    CHAR: ENTHSTAT{_Fluid}/BCTYPE = ZERO_GRAD
    CHAR: ENTHTOT{_Fluid}/BCTYPE  = ZERO_GRAD
    CHAR: TEMP{_Fluid}/BCTYPE = ZERO_GRAD
    CHAR: TTOT{_Fluid}/BCTYPE = ZERO_GRAD

    CASE: {SourceDir}/{MmsName}/ELIMFAC
    IS: *DIR*
      COPDIR: ELIMFAC, ENTHSTAT{_Fluid}/ELIMFAC
      ENDDIR
      COPDIR: ELIMFAC, ENTHTOT{_Fluid}/ELIMFAC
      ENDDIR
    ENDCASE

    CASE: {SourceDir}/{MmsName}/BETA
    IS: *DIR*
      COPDIR: BETA, ENTHSTAT{_Fluid}/BETA
      ENDDIR
      COPDIR: BETA, ENTHTOT{_Fluid}/BETA
      ENDDIR
    ENDCASE
  ENDFOR
  
  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: ENTHSTAT{_Solid}/BCTYPE = ZERO_GRAD
      CHAR: ENTHTOT{_Solid}/BCTYPE  = ZERO_GRAD
      CHAR: TEMP{_Solid}/BCTYPE = ZERO_GRAD
      CHAR: TTOT{_Solid}/BCTYPE = ZERO_GRAD

      CASE: {SourceDir}/{MmsName}/ELIMFAC
      IS: *DIR*
        COPDIR: ELIMFAC, ENTHSTAT{_Solid}/ELIMFAC
        ENDDIR
        COPDIR: ELIMFAC, ENTHTOT{_Solid}/ELIMFAC
        ENDDIR
      ENDCASE

      CASE: {SourceDir}/{MmsName}/BETA
      IS: *DIR*
        COPDIR: BETA, ENTHSTAT{_Solid}/BETA
        ENDDIR
        COPDIR: BETA, ENTHTOT{_Solid}/BETA
        ENDDIR
      ENDCASE
    ENDFOR
  ENDCASE
END

BC: HEAT TRANSFER, Zero Gradient, INLET
  USE: BC: HEAT TRANSFER, Zero Gradient
END

BC: HEAT TRANSFER, Zero Gradient, OPENING
  USE: BC: HEAT TRANSFER, Zero Gradient
END

BC: LOSS COEFFICIENT, OPENING
  COPDIR: LOSS
    CHAR: BCTYPE = SPEC_VAR_LOSS
  ENDDIR
END

BC: MAGNETIC FIELD, Cartesian Magnetic Potential Components
  FOR: Fluid = {CurrentFluidList}
    COPDIR: BPOT, BPOT{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_BPOT
    ENDDIR
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      COPDIR: BPOT, BPOT{_Solid}
        CHAR: BCTYPE = SPEC_VAR_BPOT
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: MAGNETIC FIELD, Cartesian Magnetic Potential Components, INLET
  USE: BC: MAGNETIC FIELD, Cartesian Magnetic Potential Components
END

BC: MAGNETIC FIELD, Cartesian Magnetic Potential Components, INTERFACE
  USE: BC: MAGNETIC FIELD, Cartesian Magnetic Potential Components
END

BC: MAGNETIC FIELD, Cartesian Magnetic Potential Components, OPENING
  USE: BC: MAGNETIC FIELD, Cartesian Magnetic Potential Components
END

BC: MAGNETIC FIELD, Cartesian Magnetic Potential Components, OUTLET
  USE: BC: MAGNETIC FIELD, Cartesian Magnetic Potential Components
END

BC: MAGNETIC FIELD, Cartesian Magnetic Potential Components, WALL
  USE: BC: MAGNETIC FIELD, Cartesian Magnetic Potential Components
END

BC: MAGNETIC FIELD, Conservative Interface Flux, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: BPOT{_Fluid}/BCTYPE = ZIF
    CHAR: HPOT{_Fluid}/BCTYPE = ZIF
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: BPOT{_Solid}/BCTYPE = ZIF
      CHAR: HPOT{_Solid}/BCTYPE = ZIF
    ENDFOR
  ENDCASE
END

BC: MAGNETIC FIELD, Flux in
  FOR: Fluid = {CurrentFluidList}
    CHAR: HPOT{_Fluid}/BCTYPE = SPEC_FLUX
    COPDIR: FLUX, HPOT{_Fluid}_FLX
      CHAR: BCTYPE = SPEC_FLUX
    ENDDIR
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: HPOT{_Solid}/BCTYPE = SPEC_FLUX
      COPDIR: FLUX, HPOT{_Solid}_FLX
        CHAR: BCTYPE = SPEC_FLUX
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: MAGNETIC FIELD, Flux in, INLET
  USE: BC: MAGNETIC FIELD, Flux in
END

BC: MAGNETIC FIELD, Flux in, INTERFACE
  USE: BC: MAGNETIC FIELD, Flux in

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: HPOT{_Solid}/BCTYPE = SPEC_FLUX
      COPDIR: FLUX, HPOT{_Solid}_FLX
        CHAR: BCTYPE = SPEC_FLUX
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: MAGNETIC FIELD, Flux in, OPENING
  USE: BC: MAGNETIC FIELD, Flux in
END

BC: MAGNETIC FIELD, Flux in, OUTLET
  USE: BC: MAGNETIC FIELD, Flux in
END

BC: MAGNETIC FIELD, Flux in, WALL
  USE: BC: MAGNETIC FIELD, Flux in
END

BC: MAGNETIC FIELD, Magnetic Scalar Potential
  FOR: Fluid = {CurrentFluidList}
    COPDIR: HPOT, HPOT{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_HPOT
    ENDDIR
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      COPDIR: HPOT, HPOT{_Solid}
        CHAR: BCTYPE = SPEC_VAR_HPOT
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: MAGNETIC FIELD, Magnetic Scalar Potential, INLET
  USE: BC: MAGNETIC FIELD, Magnetic Scalar Potential
END

BC: MAGNETIC FIELD, Magnetic Scalar Potential, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: HPOT{_Fluid}/BCTYPE = SPEC_VAR_HPOT
    COPDIR: HPOT, HPOT{_Fluid}_WALL
      CHAR: BCTYPE = SPEC_VAR_HPOT
    ENDDIR
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: HPOT{_Solid}/BCTYPE = SPEC_VAR_HPOT
      COPDIR: HPOT, HPOT{_Solid}_WALL
        CHAR: BCTYPE = SPEC_VAR_HPOT
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: MAGNETIC FIELD, Magnetic Scalar Potential, OPENING
  USE: BC: MAGNETIC FIELD, Magnetic Scalar Potential
END

BC: MAGNETIC FIELD, Magnetic Scalar Potential, OUTLET
  USE: BC: MAGNETIC FIELD, Magnetic Scalar Potential
END

BC: MAGNETIC FIELD, Magnetic Scalar Potential, WALL
  USE: BC: MAGNETIC FIELD, Magnetic Scalar Potential
END

BC: MAGNETIC FIELD, Normal to Boundary Condition
  FOR: Fluid = {CurrentFluidList}
    CHAR: BPOT{_Fluid}/BCTYPE = SPEC_FLUX_ZERO_SHEAR
    CHAR: HPOT{_Fluid}/BCTYPE = NEUMANN
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: BPOT{_Solid}/BCTYPE = SPEC_FLUX_ZERO_SHEAR
      CHAR: HPOT{_Solid}/BCTYPE = NEUMANN
    ENDFOR
  ENDCASE
END

BC: MAGNETIC FIELD, Normal to Boundary Condition, INLET
  USE: BC: MAGNETIC FIELD, Normal to Boundary Condition
END

BC: MAGNETIC FIELD, Normal to Boundary Condition, INTERFACE
  USE: BC: MAGNETIC FIELD, Normal to Boundary Condition
END

BC: MAGNETIC FIELD, Normal to Boundary Condition, OPENING
  USE: BC: MAGNETIC FIELD, Normal to Boundary Condition
END

BC: MAGNETIC FIELD, Normal to Boundary Condition, OUTLET
  USE: BC: MAGNETIC FIELD, Normal to Boundary Condition
END

BC: MAGNETIC FIELD, Normal to Boundary Condition, WALL
  USE: BC: MAGNETIC FIELD, Normal to Boundary Condition
END

BC: MAGNETIC FIELD, Parallel to Boundary Condition
  FOR: Fluid = {CurrentFluidList}
    CHAR: BPOT{_Fluid}/BCTYPE = SPEC_FLUX_ZERO_NORM
    CHAR: HPOT{_Fluid}/BCTYPE = NEUMANN
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {BcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: BPOT{_Solid}/BCTYPE = SPEC_FLUX_ZERO_NORM
      CHAR: HPOT{_Solid}/BCTYPE = NEUMANN
    ENDFOR
  ENDCASE
END

BC: MAGNETIC FIELD, Parallel to Boundary Condition, INLET
  USE: BC: MAGNETIC FIELD, Parallel to Boundary Condition
END

BC: MAGNETIC FIELD, Parallel to Boundary Condition, INTERFACE
  USE: BC: MAGNETIC FIELD, Parallel to Boundary Condition
END

BC: MAGNETIC FIELD, Parallel to Boundary Condition, OPENING
  USE: BC: MAGNETIC FIELD, Parallel to Boundary Condition
END

BC: MAGNETIC FIELD, Parallel to Boundary Condition, OUTLET
  USE: BC: MAGNETIC FIELD, Parallel to Boundary Condition
END

BC: MAGNETIC FIELD, Parallel to Boundary Condition, WALL
  USE: BC: MAGNETIC FIELD, Parallel to Boundary Condition
END

BC: MASS AND MOMENTUM, Average Static Pressure, OUTLET
  // Note PRAV directory is shared with PRESSURE AVERAGING data.

  FOR: Fluid = {CurrentFluidList}
    CHAR: VEL{_Fluid}/BCTYPE = OUTLET
  ENDFOR

  CHAR: PRES/BCTYPE = SPEC_VAR_PRAV
  CHAR: PTOT/BCTYPE = SPEC_VAR_PRAV
  COPDIR: PRES, PRAV
    CHAR: BCTYPE = SPEC_VAR_PRAV
  ENDDIR

  CASE: {SourceDir}/{MmsName}/PROF_BLEND
  IS: *DIR*
    COPDIR: PROF_BLEND
    ENDDIR
  ELSE:
    MAKDIR: PROF_BLEND
      CHAR: HOW = CONSTANT
      REAL: VALUE = 0.05
    ENDDIR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/LIMPLICIT
  ISNOT: *NONE*
    RENAM: LIMPLICIT,PRAV/LIMPLICIT
  ENDCASE

  CASE: {SourceDir}/{MmsName}/WTOPT
  ISNOT: *NONE*
    RENAM: WTOPT,PRES/WTOPT
  ENDCASE

  CASE: {SourceDir}/{MmsName}/NRBC
    IS: *DIR*
      COPDIR: NRBC
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Bulk Mass Flow Rate, INLET
  FOR: Fluid = {CurrentFluidList}
    CASE: {SourceDir}/FLOW_DIRECTION/OPTION
    IS: Cartesian Components
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_MFLDB
    IS: Cylindrical Components
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_MFLDB
    IS: Normal to Boundary Condition
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_MFLOB
    IS: *NONE*
      MESAGE: Missing FLOW DIRECTION for Bulk Mass Flow Rate, INLET
      MESAGE:
      EXIT
    ENDCASE

    COPDIR: MFLO, MFLO{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MFLOB
      CHAR: MFLO_AREA = As Specified
    ENDDIR

    CASE: {SourceDir}/{MmsName}/SECTOR_ANGLE
      ISNOT: *NONE*
        COPDIR: SECTOR_ANGLE,MFLO{_Fluid}/SECTOR_ANGLE
      ENDDIR
    ENDCASE

  ENDFOR

  CHAR: PRES/BCTYPE = SPEC_VEL_MFLOB
  CHAR: PTOT/BCTYPE = SPEC_VEL_MFLOB
END

BC: MASS AND MOMENTUM, Bulk Mass Flow Rate, OUTLET
  // note normal flow direction is assumed.
  FOR: Fluid = {CurrentFluidList}
    CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_MFLOB
    COPDIR: MFLO, MFLO{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MFLOB
      CHAR: MFLO_AREA = As Specified
    ENDDIR

    CASE: {SourceDir}/{MmsName}/SECTOR_ANGLE
      ISNOT: *NONE*
        COPDIR: SECTOR_ANGLE,MFLO{_Fluid}/SECTOR_ANGLE
      ENDDIR
    ENDCASE

  ENDFOR

  CASE: {SourceDir}/{MmsName}/MASUPD/OPTION
  IS: Shift Pressure
    CHAR: PRES/BCTYPE = SPEC_VAR_PPROF
    CHAR: PTOT/BCTYPE = SPEC_VAR_PPROF
    CHAR: MSFOPT = Shift Pressure
  IS: Scale Mass Flows
    CHAR: PRES/BCTYPE = SPEC_VEL_MFLOB
    CHAR: PTOT/BCTYPE = SPEC_VEL_MFLOB
    CHAR: MSFOPT = Scale Mass Flows
  IS: Constant Flux
    CHAR: PRES/BCTYPE = SPEC_VEL_MFLOB
    CHAR: PTOT/BCTYPE = SPEC_VEL_MFLOB
    CHAR: MSFOPT = Constant Flux
  ELSE
    CHAR: PRES/BCTYPE = SPEC_VEL_MFLOB
    CHAR: PTOT/BCTYPE = SPEC_VEL_MFLOB
    CHAR: MSFOPT = Scale Mass Flows
  ENDCASE

  CASE: {SourceDir}/{MmsName}/PPROF
  IS: *DIR*
    COPDIR: PPROF
      CHAR: BCTYPE = SPEC_VAR_PPROF
    ENDDIR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/PROF_BLEND
  IS: *DIR*
    COPDIR: PROF_BLEND
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Cartesian Velocity Components and Pressure, INLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: VELS{_Fluid}/BCTYPE = SPEC_VAR_VELS
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR
  ELSE
  // Local Frame (Rotating for RFR cases)
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR
  ENDCASE

  COPDIR: PRES
    CHAR: BCTYPE = SPEC_VAR_PRES
  ENDDIR
  CHAR: PTOT/BCTYPE = SPEC_VAR_PRES
END

BC: MASS AND MOMENTUM, Cartesian Velocity Components and Total Pressure, INLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: VELDIR{_Fluid}/BCTYPE = SPEC_DIR_VELS
//    CHAR: VELS{_Fluid}/BCTYPE = SPEC_VAR_VELS
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR

    CHAR: PRES/BCTYPE = SPEC_VAR_PTOTS
    COPDIR: PTOT, PTOTS
      CHAR: BCTYPE = SPEC_VAR_PTOTS
    ENDDIR
  ELSE
  // Local Frame (Rotating for RFR cases)
    FOR: Fluid = {CurrentFluidList}
      CHAR: VELDIR{_Fluid}/BCTYPE = SPEC_DIR_VEL
//    CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_VEL
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR

    CHAR: PRES/BCTYPE = SPEC_VAR_PTOT
    COPDIR: PTOT, PTOT
      CHAR: BCTYPE = SPEC_VAR_PTOT
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Cartesian Velocity Components, INLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: VELS{_Fluid}/BCTYPE = SPEC_VAR_VELS
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR
  ELSE
  // Local Frame (Rotating for RFR cases)
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR
  ENDCASE
  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL

  CASE: {SourceDir}/{MmsName}/NRBC
    IS: *DIR*
      COPDIR: NRBC
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Cartesian Velocity Components, INTERFACE
   // only used for particles
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR
  ELSE
  // Local Frame (Rotating for RFR cases)
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR
  ENDCASE

  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL
END

BC: MASS AND MOMENTUM, Cartesian Velocity Components, OPENING
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: VELS{_Fluid}/BCTYPE = SPEC_VAR_VELS
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR
  ELSE
  // Local Frame (Rotating for RFR cases)
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR
  ENDCASE

  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL

  CASE: {SourceDir}/{MmsName}/NRBC
    IS: *DIR*
      COPDIR: NRBC
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Cartesian Velocity Components, OUTLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: VELS{_Fluid}/BCTYPE = SPEC_VAR_VELS
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR
  ELSE
  // Local Frame (Rotating for RFR cases)
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR
  ENDCASE
  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL
  
  CASE: {SourceDir}/{MmsName}/NRBC
    IS: *DIR*
      COPDIR: NRBC
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Cartesian Velocity Components, WALL
   // only used for particles
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: VELS{_Fluid}/BCTYPE = SPEC_VAR_VELS
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR
  ELSE
  // Local Frame (Rotating for RFR cases)
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR
  ENDCASE

  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL
END

BC: MASS AND MOMENTUM, Conservative Interface Flux, INTERFACE
  // Used for zone interfaces, all fluid variables are 
  // transported conservative across the interface
  FOR: Fluid = {CurrentFluidList}
    CHAR: VEL{_Fluid}/BCTYPE = ZIF
    CHAR: DENSITY{_Fluid}/BCTYPE = ZIF
    CHAR: VOLFRC{_Fluid}/BCTYPE = ZIF
    CHAR: VOLFRN{_Fluid}/BCTYPE = ZIF
  ENDFOR
  CHAR: PRES/BCTYPE = ZIF
END

BC: MASS AND MOMENTUM, Continuous Phase Outlet, OUTLET
  // static pressure outlet for continuous phases
  // closed artificial wall for dispersed phases

  FOR: Fluid = {CurrentFluidList}
    CHAR: VEL{_Fluid}/BCTYPE = OUTLET
  ENDFOR

  COPDIR: PRES
    CHAR: BCTYPE = SPEC_VAR_PRES
  ENDDIR

  CHAR: PTOT/BCTYPE = SPEC_VAR_PRES

  FOR: Fluid = {CurrentFluidList}
    CASE: /FLOW/{Zone}/{Fluid}/MORPHOLOGY/OPTION
    ISNOT: Continuous Fluid
      CHAR: VOLFRC{_Fluid}/BCTYPE = OUTLET_CLOSED
      CHAR: VOLFRN{_Fluid}/BCTYPE = OUTLET_CLOSED
    ENDCASE
  ENDFOR
END

BC: MASS AND MOMENTUM, Continuous Phase Wall, OUTLET
  // just an alternative name for the degassing condition
  // neumann condition on pressure
  // continuous phase sees a no-slip wall

  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL
  FOR: Fluid = {CurrentFluidList}
    CASE: /FLOW/{Zone}/{Fluid}/MORPHOLOGY/OPTION
    IS: Continuous Fluid
      LIST: FLU_PHYTYPE = WALL
      DELDAT: IFLU_PHYTYPE

      CHAR: VEL{_Fluid}/BCTYPE = SPEC_FLUX_ZERO_SHEAR
      CHAR: TKE{_Fluid}/BCTYPE = NEUMANN
      CHAR: TED{_Fluid}/BCTYPE = NEUMANN
      CHAR: TEF{_Fluid}/BCTYPE = NEUMANN
      CHAR: RS{_Fluid}/BCTYPE  = NEUMANN
      CHAR: VISKTRB{_Fluid}/BCTYPE = NEUMANN
      CHAR: TEMP{_Fluid}/BCTYPE = NEUMANN
      CHAR: ENTHSTAT{_Fluid}/BCTYPE = NEUMANN
      CHAR: ENTHTOT{_Fluid}/BCTYPE  = NEUMANN
      CHAR: ENTHTOTR{_Fluid}/BCTYPE = NEUMANN

      // zone fluid component list is not easy to identify here
      // so BCTYPE=NEWUMANN should be set inside solver instead.

      // AVs done in the solver as well (if not set up explicitly)

    ELSE
      LIST: FLU_PHYTYPE = OUTLET
      DELDAT: IFLU_PHYTYPE

      CHAR: VEL{_Fluid}/BCTYPE = OUTLET
      CHAR: TKE{_Fluid}/BCTYPE = OUTLET
      CHAR: TED{_Fluid}/BCTYPE = OUTLET
      CHAR: TEF{_Fluid}/BCTYPE = OUTLET
      CHAR: RS{_Fluid}/BCTYPE  = OUTLET
      CHAR: VISKTRB{_Fluid}/BCTYPE  = OUTLET
      CHAR: TEMP{_Fluid}/BCTYPE     = OUTLET
      CHAR: ENTHSTAT{_Fluid}/BCTYPE = OUTLET
      CHAR: ENTHTOT{_Fluid}/BCTYPE  = OUTLET
      CHAR: ENTHTOTR{_Fluid}/BCTYPE = OUTLET

      // zone fluid component list is not easy to identify here
      // so BCTYPE=OUTLET is set inside solver instead.

      // AVs done in the solver as well (if not set up explicitly)

    ENDCASE
  ENDFOR
END

BC: MASS AND MOMENTUM, Corrected Mass Flow Rate, OUTLET
  // note normal flow direction is assumed.
  FOR: Fluid = {CurrentFluidList}
    CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_MFLO_COR
    COPDIR: MFLO, MFLO{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MFLO_COR
    ENDDIR
    CASE: {SourceDir}/{MmsName}/MFLO_AREA
    IS: Total for All Sectors
      CHAR: MFLO{_Fluid}/MFLO_AREA = Total for All Sectors
    IS: As Specified
      CHAR: MFLO{_Fluid}/MFLO_AREA = As Specified
    ENDCASE

    CASE: {SourceDir}/{MmsName}/SECTOR_ANGLE
      ISNOT: *NONE*
        COPDIR: SECTOR_ANGLE,MFLO{_Fluid}/SECTOR_ANGLE
      ENDDIR
    ENDCASE
  ENDFOR

  CASE: {SourceDir}/{MmsName}/PREF
  IS: *DIR*
    COPDIR: PREF
    ENDDIR
  ENDCASE   
  CASE: {SourceDir}/{MmsName}/TREF
  IS: *DIR*
    COPDIR: TREF
    ENDDIR
  ENDCASE
  CASE: {SourceDir}/{MmsName}/GAMREF
  IS: *DIR*
    COPDIR: GAMREF
    ENDDIR
  ENDCASE
  CASE: {SourceDir}/{MmsName}/DENREF
  IS: *DIR*
    COPDIR: DENREF
    ENDDIR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/MASUPD/OPTION
  IS: Shift Pressure
    CHAR: PRES/BCTYPE = SPEC_VAR_PPROF
    CHAR: PTOT/BCTYPE = SPEC_VAR_PPROF
    CHAR: MSFOPT = Shift Pressure
  IS: Scale Mass Flows
    CHAR: PRES/BCTYPE = SPEC_VEL_MFLO
    CHAR: PTOT/BCTYPE = SPEC_VEL_MFLO
    CHAR: MSFOPT = Scale Mass Flows
  IS: Constant Flux
    CHAR: PRES/BCTYPE = SPEC_VEL_MFLO
    CHAR: PTOT/BCTYPE = SPEC_VEL_MFLO
    CHAR: MSFOPT = Constant Flux
  ELSE
    CHAR: PRES/BCTYPE = SPEC_VEL_MFLO
    CHAR: MSFOPT = Scale Mass Flows
  ENDCASE

  CASE: {SourceDir}/{MmsName}/MASUPD/PPROF
  IS: *DIR*
    COPDIR: {SourceDir}/{MmsName}/MASUPD/PPROF, PPROF
      CHAR: BCTYPE = SPEC_VAR_PPROF
    ENDDIR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/MASUPD/PROF_BLEND
  IS: *DIR*
    COPDIR: {SourceDir}/{MmsName}/MASUPD/PROF_BLEND, PROF_BLEND
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Cylindrical Velocity Components and Pressure, INLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR
  ELSE
  // Local Frame (Rotating for RFR cases)
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR
  ENDCASE

  COPDIR: PRES
    CHAR: BCTYPE = SPEC_VAR_PRES
  ENDDIR
  CHAR: PTOT/BCTYPE = SPEC_VAR_PRES

  CASE: {SourceDir}/{MmsName}/AXIS/AROT, {SourceDir}/{MmsName}/AXIS/BROT
  IS: *DIR*,*DIR*
    FOR: Fluid = {CurrentFluidList}
      COPDIR: AXIS/AROT, AXIS/AROT{_Fluid}
      ENDDIR
      COPDIR: AXIS/BROT, AXIS/BROT{_Fluid}
      ENDDIR
    ENDFOR
  IS: *DIR*,*NONE*
     MESAGE: Invalid INLET rotation axis specification 
     EXIT
  IS: *NONE*,*DIR*
     MESAGE: Invalid INLET rotation axis specification 
     EXIT
  ENDCASE
END

BC: MASS AND MOMENTUM, Cylindrical Velocity Components and Total Pressure, INLE\
T
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: VELDIR{_Fluid}/BCTYPE = SPEC_DIR_VELS
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR

    CHAR: PRES/BCTYPE = SPEC_VAR_PTOTS
    COPDIR: PTOT, PTOTS
      CHAR: BCTYPE = SPEC_VAR_PTOTS
    ENDDIR
  ELSE
  // Local Frame (Rotating for RFR cases)
    FOR: Fluid = {CurrentFluidList}
      CHAR: VELDIR{_Fluid}/BCTYPE = SPEC_DIR_VEL
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR

    CHAR: PRES/BCTYPE = SPEC_VAR_PTOT
    COPDIR: PTOT, PTOT
      CHAR: BCTYPE = SPEC_VAR_PTOT
    ENDDIR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/AXIS/AROT, {SourceDir}/{MmsName}/AXIS/BROT
  IS: *DIR*,*DIR*
    FOR: Fluid = {CurrentFluidList}
      COPDIR: AXIS/AROT, AXIS/AROT{_Fluid}
      ENDDIR
      COPDIR: AXIS/BROT, AXIS/BROT{_Fluid}
      ENDDIR
    ENDFOR
  IS: *DIR*,*NONE*
     MESAGE: Invalid INLET rotation axis specification 
     EXIT
  IS: *NONE*,*DIR*
     MESAGE: Invalid INLET rotation axis specification 
     EXIT
  ENDCASE
END

BC: MASS AND MOMENTUM, Cylindrical Velocity Components, INLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR
  ELSE
  // Local Frame (Rotating for RFR cases)
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR
  ENDCASE

  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL

  CASE: {SourceDir}/{MmsName}/AXIS/AROT, {SourceDir}/{MmsName}/AXIS/BROT
  IS: *DIR*,*DIR*
    FOR: Fluid = {CurrentFluidList}
      COPDIR: AXIS/AROT, AXIS/AROT{_Fluid}
      ENDDIR
      COPDIR: AXIS/BROT, AXIS/BROT{_Fluid}
      ENDDIR
    ENDFOR
  IS: *DIR*,*NONE*
     MESAGE: Invalid INLET rotation axis specification 
     EXIT
  IS: *NONE*,*DIR*
     MESAGE: Invalid INLET rotation axis specification 
     EXIT
  ENDCASE

  CASE: {SourceDir}/{MmsName}/NRBC
    IS: *DIR*
      COPDIR: NRBC
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Cylindrical Velocity Components, INTERFACE
   // only used for particles
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR
  ELSE
  // Local Frame (Rotating for RFR cases)
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR
  ENDCASE

  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL

  CASE: {SourceDir}/{MmsName}/AXIS/AROT, {SourceDir}/{MmsName}/AXIS/BROT
  IS: *DIR*,*DIR*
    FOR: Fluid = {CurrentFluidList}
      COPDIR: AXIS/AROT, AXIS/AROT{_Fluid}
      ENDDIR
      COPDIR: AXIS/BROT, AXIS/BROT{_Fluid}
      ENDDIR
    ENDFOR
  IS: *DIR*,*NONE*
     MESAGE: Invalid INLET rotation axis specification
     EXIT
  IS: *NONE*,*DIR*
     MESAGE: Invalid INLET rotation axis specification
     EXIT
  ENDCASE
END

BC: MASS AND MOMENTUM, Cylindrical Velocity Components, OPENING
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR
  ELSE
  // Local Frame (Rotating for RFR cases)
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR
  ENDCASE

  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL

  CASE: {SourceDir}/{MmsName}/AXIS/AROT, {SourceDir}/{MmsName}/AXIS/BROT
  IS: *DIR*,*DIR*
    FOR: Fluid = {CurrentFluidList}
      COPDIR: AXIS/AROT, AXIS/AROT{_Fluid}
      ENDDIR
      COPDIR: AXIS/BROT, AXIS/BROT{_Fluid}
      ENDDIR
    ENDFOR
  IS: *DIR*,*NONE*
     MESAGE: Invalid OPENING rotation axis specification 
     EXIT
  IS: *NONE*,*DIR*
     MESAGE: Invalid OPENING rotation axis specification 
     EXIT
  ENDCASE

  CASE: {SourceDir}/{MmsName}/NRBC
    IS: *DIR*
      COPDIR: NRBC
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Cylindrical Velocity Components, OUTLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: VELS{_Fluid}/BCTYPE = SPEC_VAR_VELS
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR
  ELSE
  // Local Frame (Rotating for RFR cases)
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR
  ENDCASE

  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL

  CASE: {SourceDir}/{MmsName}/AXIS/AROT, {SourceDir}/{MmsName}/AXIS/BROT
  IS: *DIR*,*DIR*
    FOR: Fluid = {CurrentFluidList}
      COPDIR: AXIS/AROT, AXIS/AROT{_Fluid}
      ENDDIR
      COPDIR: AXIS/BROT, AXIS/BROT{_Fluid}
      ENDDIR
    ENDFOR
  IS: *DIR*,*NONE*
     MESAGE: Invalid INLET rotation axis specification 
     EXIT
  IS: *NONE*,*DIR*
     MESAGE: Invalid INLET rotation axis specification 
     EXIT
  ENDCASE

  CASE: {SourceDir}/{MmsName}/NRBC
    IS: *DIR*
      COPDIR: NRBC
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Cylindrical Velocity Components, WALL
   // only used for particles
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR
  ELSE
  // Local Frame (Rotating for RFR cases)
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR
  ENDCASE

  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL

  CASE: {SourceDir}/{MmsName}/AXIS/AROT, {SourceDir}/{MmsName}/AXIS/BROT
  IS: *DIR*,*DIR*
    FOR: Fluid = {CurrentFluidList}
      COPDIR: AXIS/AROT, AXIS/AROT{_Fluid}
      ENDDIR
      COPDIR: AXIS/BROT, AXIS/BROT{_Fluid}
      ENDDIR
    ENDFOR
  IS: *DIR*,*NONE*
     MESAGE: Invalid INLET rotation axis specification
     EXIT
  IS: *NONE*,*DIR*
     MESAGE: Invalid INLET rotation axis specification
     EXIT
  ENDCASE
END

BC: MASS AND MOMENTUM, Degassing Condition, OPENING

  // ------ Wall-style degassing bc -------------------------------
  //
  // This is not a supported 5.4.1 bc and for now is identical to
  // 5.4.1 degas outlet: wall+opening with hidden defaults,
  // on inflow direction, volfrc and turbulence.
  //
  // For continuous phase,
  //    FLU_PHYTYPE is WALL,
  //    general BCTYPE is SPEC_FLUX_ZERO_SHEAR/NEUMANN/SPEC_FLUX.
  //
  // For disperse phase,
  //    FLU_PHYTYPE is OPENING,
  //    general BCTYPE is OPENING_var.
  //
  // Pressure BCTYPE is SPEC_VEL, for wall-style pressure closure.
  // So boundary pressure is not set to external pressure; instead
  // computed boundary pressure represents head of raised surface.
  //
  /////////////////////////////////////////////////////////////////

  // ../FLU_PHYTYPE(NFLUID) is created in zone-fluid-list order
  // by the tt command LIST:FLU_PHYTYPE below.
  //
  // Delete the IFLU_PHYTYPE created automatically at the same time;
  // it's wrong and irrelevant because each LIST command is placed
  // in the SAME target directory.

  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL
  FOR: Fluid = {CurrentFluidList}

    CASE: /FLOW/{Zone}/{Fluid}/MORPHOLOGY/OPTION
    IS: Continuous Fluid
      LIST: FLU_PHYTYPE = WALL
      DELDAT: IFLU_PHYTYPE

      CHAR: VEL{_Fluid}/BCTYPE = SPEC_FLUX_ZERO_SHEAR

      MAKDIR: VOLFRC{_Fluid}
         CHAR: BCTYPE = SPEC_FLUX
         CHAR: HOW = CONSTANT
         REAL: VALUE = 0
      ENDDIR
      MAKDIR: VOLFRN{_Fluid}
         CHAR: BCTYPE = SPEC_FLUX
         CHAR: HOW = CONSTANT
         REAL: VALUE = 0
      ENDDIR

      CHAR: TKE{_Fluid}/BCTYPE = NEUMANN
      CHAR: TED{_Fluid}/BCTYPE = NEUMANN
      CHAR: TEF{_Fluid}/BCTYPE = NEUMANN
      CHAR: VISKTRB{_Fluid}/BCTYPE = NEUMANN
      CHAR: RS{_Fluid}/BCTYPE  = NEUMANN

    IS: Dispersed Solid
      LIST: FLU_PHYTYPE = WALL
      DELDAT: IFLU_PHYTYPE

      CHAR: VEL{_Fluid}/BCTYPE = SPEC_FLUX_ZERO_SHEAR

      MAKDIR: VOLFRC{_Fluid}
         CHAR: BCTYPE = SPEC_FLUX
         CHAR: HOW = CONSTANT
         REAL: VALUE = 0
      ENDDIR
      MAKDIR: VOLFRN{_Fluid}
         CHAR: BCTYPE = SPEC_FLUX
         CHAR: HOW = CONSTANT
         REAL: VALUE = 0
      ENDDIR

      CHAR: TKE{_Fluid}/BCTYPE = NEUMANN
      CHAR: TED{_Fluid}/BCTYPE = NEUMANN
      CHAR: TEF{_Fluid}/BCTYPE = NEUMANN
      CHAR: VISKTRB{_Fluid}/BCTYPE = NEUMANN
      CHAR: RS{_Fluid}/BCTYPE  = NEUMANN

    ELSE
      LIST: FLU_PHYTYPE = OPENING
      DELDAT: IFLU_PHYTYPE

      // Set normal direction on inflow
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORM
      CHAR: VELDIR{_Fluid}/BCTYPE = SPEC_VAR_NORM

      // Set no air on inflow
      MAKDIR: VOLFRC{_Fluid}
        CHAR: BCTYPE = OPENING_VOLFRC
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 1
        REAL: VALUE = 0
      ENDDIR
      MAKDIR: VOLFRN{_Fluid}
        CHAR: BCTYPE = OPENING_VOLFRC
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 1
        REAL: VALUE = 0
      ENDDIR
 
      // Set default turb on inflow
      CHAR: TKE{_Fluid}/BCTYPE = OPENING_TKI
      CHAR: TED{_Fluid}/BCTYPE = OPENING_TKI
      CHAR: TEF{_Fluid}/BCTYPE = OPENING_TKI
      CHAR: VISKTRB{_Fluid}/BCTYPE = OPENING_TKI
      CHAR: RS{_Fluid}/BCTYPE  = OPENING_TKI
      MAKDIR: TKI{_Fluid}
        CHAR: BCTYPE = OPENING_TKI
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 1
        REAL: VALUE = 0.037
      ENDDIR
    ENDCASE
  ENDFOR
END

BC: MASS AND MOMENTUM, Degassing Condition, OUTLET

  // ------ Wall-style degassing bc -------------------------------
  //
  // 5.5 degas bc allowing artificial walls
  //
  // For continuous phase and dispersed solid phases
  //    FLU_PHYTYPE is WALL,
  //    general BCTYPE is SPEC_FLUX_ZERO_SHEAR/NEUMANN.
  //
  // For disperse phase,
  //    FLU_PHYTYPE is OUTLET,
  //    general BCTYPE is OUTLET.
  //
  // Pressure BCTYPE is SPEC_VEL, for wall-style pressure closure.
  // So boundary pressure is not set to external pressure; instead
  // computed boundary pressure represents head of raised surface.
  //
  /////////////////////////////////////////////////////////////////

  // ../FLU_PHYTYPE(NFLUID) is created in zone-fluid-list order
  // by the tt command LIST:FLU_PHYTYPE below.
  //
  // Delete the IFLU_PHYTYPE created automatically at the same time;
  // it's wrong and irrelevant because each LIST command is placed
  // in the SAME target directory.

  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL

  FOR: Fluid = {CurrentFluidList}

    CASE: /FLOW/{Zone}/{Fluid}/MORPHOLOGY/OPTION
    IS: Continuous Fluid
      LIST: FLU_PHYTYPE = WALL
      DELDAT: IFLU_PHYTYPE

      CHAR: VEL{_Fluid}/BCTYPE = SPEC_FLUX_ZERO_SHEAR
      CHAR: TKE{_Fluid}/BCTYPE = NEUMANN
      CHAR: TED{_Fluid}/BCTYPE = NEUMANN
      CHAR: TEF{_Fluid}/BCTYPE = NEUMANN
      CHAR: VISKTRB{_Fluid}/BCTYPE  = NEUMANN
      CHAR: RS{_Fluid}/BCTYPE       = NEUMANN
      CHAR: TEMP{_Fluid}/BCTYPE     = NEUMANN
      CHAR: ENTHSTAT{_Fluid}/BCTYPE = NEUMANN
      CHAR: ENTHTOT{_Fluid}/BCTYPE  = NEUMANN
      CHAR: ENTHTOTR{_Fluid}/BCTYPE = NEUMANN

      // zone fluid component list is not easy to identify here
      // so BCTYPE=NEUMANN should be set inside solver instead.

      // AVs done in the solver as well (if not set up explicitly)

    IS: Dispersed Solid
      LIST: FLU_PHYTYPE = WALL
      DELDAT: IFLU_PHYTYPE

      CHAR: VEL{_Fluid}/BCTYPE = SPEC_FLUX_ZERO_SHEAR
      CHAR: TKE{_Fluid}/BCTYPE = NEUMANN
      CHAR: TED{_Fluid}/BCTYPE = NEUMANN
      CHAR: TEF{_Fluid}/BCTYPE = NEUMANN
      CHAR: VISKTRB{_Fluid}/BCTYPE  = NEUMANN
      CHAR: RS{_Fluid}/BCTYPE       = NEUMANN
      CHAR: TEMP{_Fluid}/BCTYPE     = NEUMANN
      CHAR: ENTHSTAT{_Fluid}/BCTYPE = NEUMANN
      CHAR: ENTHTOT{_Fluid}/BCTYPE  = NEUMANN
      CHAR: ENTHTOTR{_Fluid}/BCTYPE = NEUMANN

      // zone fluid component list is not easy to identify here
      // so BCTYPE=NEUMANN should be set inside solver instead.

      // AVs done in the solver as well (if not set up explicitly)

    ELSE
      LIST: FLU_PHYTYPE = OUTLET
      DELDAT: IFLU_PHYTYPE

      CHAR: VEL{_Fluid}/BCTYPE = OUTLET
      CHAR: TKE{_Fluid}/BCTYPE = OUTLET
      CHAR: TED{_Fluid}/BCTYPE = OUTLET
      CHAR: TEF{_Fluid}/BCTYPE = OUTLET
      CHAR: VISKTRB{_Fluid}/BCTYPE  = OUTLET
      CHAR: RS{_Fluid}/BCTYPE       = OUTLET
      CHAR: TEMP{_Fluid}/BCTYPE     = OUTLET
      CHAR: ENTHSTAT{_Fluid}/BCTYPE = OUTLET
      CHAR: ENTHTOT{_Fluid}/BCTYPE  = OUTLET
      CHAR: ENTHTOTR{_Fluid}/BCTYPE = OUTLET

      // zone fluid component list is not easy to identify here
      // so BCTYPE=OUTLET is set inside solver instead.

      // AVs done in the solver as well (if not set up explicitly)

    ENDCASE
  ENDFOR
END

BC: MASS AND MOMENTUM, Dispersed Phase Outlet, OUTLET
  // static pressure outlet for disperse phases
  // closed artificial wall for continuous phases
  FOR: Fluid = {CurrentFluidList}
    CHAR: VEL{_Fluid}/BCTYPE = OUTLET
  ENDFOR

  COPDIR: PRES
    CHAR: BCTYPE = SPEC_VAR_PRES
  ENDDIR

  CHAR: PTOT/BCTYPE = SPEC_VAR_PRES

  FOR: Fluid = {CurrentFluidList}
    CASE: /FLOW/{Zone}/{Fluid}/MORPHOLOGY/OPTION
    IS: Continuous Fluid
      CHAR: VOLFRC{_Fluid}/BCTYPE = OUTLET_CLOSED
      CHAR: VOLFRN{_Fluid}/BCTYPE = OUTLET_CLOSED
    ENDCASE
  ENDFOR
END

BC: MASS AND MOMENTUM, Dispersed Phase Wall, OUTLET
  // inverse of the degassing condition
  // neumann condition on pressure
  // dispersed phase sees a no-slip wall
  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL

  FOR: Fluid = {CurrentFluidList}

    CASE: /FLOW/{Zone}/{Fluid}/MORPHOLOGY/OPTION
    ISNOT: Continuous Fluid
      LIST: FLU_PHYTYPE = WALL
      DELDAT: IFLU_PHYTYPE

      CHAR: VEL{_Fluid}/BCTYPE = SPEC_FLUX_ZERO_SHEAR
      CHAR: TKE{_Fluid}/BCTYPE = NEUMANN
      CHAR: TED{_Fluid}/BCTYPE = NEUMANN
      CHAR: TEF{_Fluid}/BCTYPE = NEUMANN
      CHAR: RS{_Fluid}/BCTYPE  = NEUMANN
      CHAR: VISKTRB{_Fluid}/BCTYPE  = NEUMANN
      CHAR: TEMP{_Fluid}/BCTYPE     = NEUMANN
      CHAR: ENTHSTAT{_Fluid}/BCTYPE = NEUMANN
      CHAR: ENTHTOT{_Fluid}/BCTYPE  = NEUMANN
      CHAR: ENTHTOTR{_Fluid}/BCTYPE = NEUMANN

      // zone fluid component list is not easy to identify here
      // so BCTYPE=NEWUMANN should be set inside solver instead.

      // AVs done in the solver as well (if not set up explicitly)

    ELSE
      LIST: FLU_PHYTYPE = OUTLET
      DELDAT: IFLU_PHYTYPE

      CHAR: VEL{_Fluid}/BCTYPE = OUTLET
      CHAR: TKE{_Fluid}/BCTYPE = OUTLET
      CHAR: TED{_Fluid}/BCTYPE = OUTLET
      CHAR: TEF{_Fluid}/BCTYPE = OUTLET
      CHAR: RS{_Fluid}/BCTYPE  = OUTLET
      CHAR: VISKTRB{_Fluid}/BCTYPE  = OUTLET
      CHAR: TEMP{_Fluid}/BCTYPE     = OUTLET
      CHAR: ENTHSTAT{_Fluid}/BCTYPE = OUTLET
      CHAR: ENTHTOT{_Fluid}/BCTYPE  = OUTLET
      CHAR: ENTHTOTR{_Fluid}/BCTYPE = OUTLET

      // zone fluid component list is not easy to identify here
      // so BCTYPE=OUTLET is set inside solver instead.

      // AVs done in the solver as well (if not set up explicitly)

    ENDCASE
  ENDFOR
END

BC: MASS AND MOMENTUM, Entrainment, OPENING
  CASE: {SourceDir}/{MmsName}/PRESOPT/OPTION
  IS: Opening Pressure
    FOR: Fluid = {CurrentFluidList}
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_VEL
      CHAR: VELDIR{_Fluid}/BCTYPE = SPEC_VAR_VEL
    ENDFOR

    COPDIR: PRES
    ENDDIR

    CHAR: PRES/BCTYPE = OPENING_PTOT_LOSS
    COPDIR: PRES, PTOT
      CHAR: BCTYPE = OPENING_PTOT_LOSS
    ENDDIR
  ELSE
    FOR: Fluid = {CurrentFluidList}
      CHAR: VEL{_Fluid}/BCTYPE = ZERO_GRAD
    ENDFOR

    COPDIR: PRES
    ENDDIR

    CHAR: PRES/BCTYPE = OPENING_PRES_LOSS

    COPDIR: PRES, PTOT
      CHAR: BCTYPE = OPENING_PRES_LOSS
    ENDDIR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/NRBC
    IS: *DIR*
      COPDIR: NRBC
    ENDDIR
  ENDCASE

// Optionally copy these expert items (relevant for static pressure only)

  FOR: Fluid = {CurrentFluidList}
    CASE: {SourceDir}/{MmsName}/ELIMFAC
    IS: *DIR*
      COPDIR: ELIMFAC, VEL{_Fluid}/ELIMFAC
      ENDDIR
    ENDCASE

    CASE: {SourceDir}/{MmsName}/BETA
    IS: *DIR*
      COPDIR: BETA, VEL{_Fluid}/BETA
      ENDDIR
    ENDCASE
  ENDFOR
END

BC: MASS AND MOMENTUM, Extrapolation, OUTLET
  CHAR: PRES/BCTYPE = SPEC_VAR_PEXTRAP
  CHAR: PTOT/BCTYPE = SPEC_VAR_PEXTRAP
  FOR: Fluid = {CurrentFluidList}
    CHAR: VEL{_Fluid}/BCTYPE = OUTLET
  ENDFOR

  CASE: {SourceDir}/{MmsName}/PPROF
  IS: *DIR*
    COPDIR: PPROF
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Finite Slip Wall, INTERFACE

  USE: BC: MASS AND MOMENTUM, No Slip Wall

  FOR: Fluid = {CurrentFluidList}
    LIST: FLU_PHYTYPE = WALL
    DELDAT: IFLU_PHYTYPE

    CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
    IS: Stationary
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_FTC
      CHAR: VELS{_Fluid}/BCTYPE = SPEC_FTC
    ELSE
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_FTC
    ENDCASE

    CHAR: RS{_Fluid}/BCTYPE  = NEUMANN
    CHAR: TED{_Fluid}/BCTYPE = NEUMANN
    CHAR: TEF{_Fluid}/BCTYPE = NEUMANN
    CHAR: TKE{_Fluid}/BCTYPE = NEUMANN
    CHAR: VISKTRB{_Fluid}/BCTYPE = NEUMANN

    CASE: {SourceDir}/{MmsName}/WALLSLIP/OPTION
    IS: Power Law
      COPDIR: ./WALLSLIP/PCON, PCON{_Fluid}
      ENDDIR
      COPDIR: ./WALLSLIP/SLPOWER, SLPOWER{_Fluid}
      ENDDIR
      COPDIR: ./WALLSLIP/TAUCRIT, TAUCRIT{_Fluid}
      ENDDIR
      COPDIR: ./WALLSLIP/TAUNORM, TAUNORM{_Fluid}
      ENDDIR
      COPDIR: ./WALLSLIP/VSLIP, VSLIP{_Fluid}
      ENDDIR
    IS: Friction Model
      COPDIR: ./WALLSLIP/TAUCRIT, TAUCRIT{_Fluid}
      ENDDIR
      COPDIR: ./WALLSLIP/TAUDYN, TAUDYN{_Fluid}
      ENDDIR
    ENDCASE
    CASE: {SourceDir}/{MmsName}/WALLSLIP/ACTCOEF
    IS: *DIR*
      COPDIR: ./WALLSLIP/ACTCOEF, ACTCOEF{_Fluid}
      ENDDIR
    ENDCASE
    CHAR: WALLSLIP/OPTION, WALLSLIP{_Fluid}/OPTION
  ENDFOR

  CASE: {SourceDir}/{MmsName}/LNORM_VISC_FORCE
  IS: .FALSE.
    FOR: Fluid = {CurrentFluidList}
      LOGL: VEL{_Fluid}/LNORM_VISC_FORCE = .FALSE.
    ENDFOR
  IS: .TRUE.
    FOR: Fluid = {CurrentFluidList}
      LOGL: VEL{_Fluid}/LNORM_VISC_FORCE = .TRUE.
    ENDFOR
  ENDCASE
END

BC: MASS AND MOMENTUM, Finite Slip Wall, WALL

  USE: BC: MASS AND MOMENTUM, No Slip Wall

  FOR: Fluid = {CurrentFluidList}
    CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
    IS: Stationary
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_FTC
      CHAR: VELS{_Fluid}/BCTYPE = SPEC_FTC
    ELSE
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_FTC
    ENDCASE

    CHAR: RS{_Fluid}/BCTYPE  = NEUMANN
    CHAR: TED{_Fluid}/BCTYPE = NEUMANN
    CHAR: TEF{_Fluid}/BCTYPE = NEUMANN
    CHAR: TKE{_Fluid}/BCTYPE = NEUMANN
    CHAR: VISKTRB{_Fluid}/BCTYPE = NEUMANN

    CASE: {SourceDir}/{MmsName}/WALLSLIP/OPTION
    IS: Power Law
      COPDIR: ./WALLSLIP/PCON, PCON{_Fluid}
      ENDDIR
      COPDIR: ./WALLSLIP/SLPOWER, SLPOWER{_Fluid}
      ENDDIR
      COPDIR: ./WALLSLIP/TAUCRIT, TAUCRIT{_Fluid}
      ENDDIR
      COPDIR: ./WALLSLIP/TAUNORM, TAUNORM{_Fluid}
      ENDDIR
      COPDIR: ./WALLSLIP/VSLIP, VSLIP{_Fluid}
      ENDDIR
    IS: Friction Model
      COPDIR: ./WALLSLIP/TAUCRIT, TAUCRIT{_Fluid}
      ENDDIR
      COPDIR: ./WALLSLIP/TAUDYN, TAUDYN{_Fluid}
      ENDDIR
    ENDCASE
    CASE: {SourceDir}/{MmsName}/WALLSLIP/ACTCOEF
    IS: *DIR*
      COPDIR: ./WALLSLIP/ACTCOEF, ACTCOEF{_Fluid}
      ENDDIR
    ENDCASE
    CHAR: WALLSLIP/OPTION, WALLSLIP{_Fluid}/OPTION
  ENDFOR

  CASE: {SourceDir}/{MmsName}/LNORM_VISC_FORCE
  IS: .FALSE.
    FOR: Fluid = {CurrentFluidList}
      LOGL: VEL{_Fluid}/LNORM_VISC_FORCE = .FALSE.
    ENDFOR
  IS: .TRUE.
    FOR: Fluid = {CurrentFluidList}
      LOGL: VEL{_Fluid}/LNORM_VISC_FORCE = .TRUE.
    ENDFOR
  ENDCASE
END

BC: MASS AND MOMENTUM, Fluid Dependent, INTERFACE
END

BC: MASS AND MOMENTUM, Fluid Dependent, WALL
END

BC: MASS AND MOMENTUM, Fluid Velocity, INLET
  // this only sets pressure/bctype, to SPEC_VEL
  // and is used in conjunction with VELOCITY object
  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL
END

BC: MASS AND MOMENTUM, Fluid Velocity, OPENING
  // this only sets pressure/bctype, to SPEC_VEL
  // and is used in conjunction with VELOCITY object
  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL
END

BC: MASS AND MOMENTUM, Fluid Velocity, OUTLET
  // this only sets pressure/bctype, to SPEC_VEL
  // and is used in conjunction with VELOCITY object
  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL
END

BC: MASS AND MOMENTUM, Free Slip Wall, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    LIST: FLU_PHYTYPE = WALL
    DELDAT: IFLU_PHYTYPE

    CHAR: TKE{_Fluid}/BCTYPE = NEUMANN
    CHAR: TED{_Fluid}/BCTYPE = NEUMANN
    CHAR: RS{_Fluid}/BCTYPE  = NEUMANN
    CHAR: VEL{_Fluid}/BCTYPE = SPEC_FLUX_ZERO_SHEAR
    LOGL: VEL{_Fluid}/LSTATIONARY = .TRUE.
    CHAR: TEF{_Fluid}/BCTYPE = NEUMANN
    CHAR: VISKTRB{_Fluid}/BCTYPE = NEUMANN
  ENDFOR

  // Set PRES/BCTYPE=SPEC_VEL only once.
  CASE: {TargetDir}/PRES/BCTYPE
  IS: SPEC_VEL
     // do nothing
  IS: *NONE*
     CHAR: PRES/BCTYPE = SPEC_VEL
     CHAR: PTOT/BCTYPE = SPEC_VEL
  ELSE:
     MESAGE: ***PRES/BCTYPE already exists with conflicting value
//     EXIT
  ENDCASE

  CASE: {SourceDir}/{MmsName}/LNORM_VISC_FORCE
  IS: .FALSE.
    FOR: Fluid = {CurrentFluidList}
      LOGL: VEL{_Fluid}/LNORM_VISC_FORCE = .FALSE.
    ENDFOR
  IS: .TRUE.
    FOR: Fluid = {CurrentFluidList}
      LOGL: VEL{_Fluid}/LNORM_VISC_FORCE = .TRUE.
    ENDFOR
  ENDCASE
END

BC: MASS AND MOMENTUM, Free Slip Wall, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = NEUMANN
    CHAR: TED{_Fluid}/BCTYPE = NEUMANN
    CHAR: RS{_Fluid}/BCTYPE  = NEUMANN
    CHAR: VEL{_Fluid}/BCTYPE = SPEC_FLUX_ZERO_SHEAR
    LOGL: VEL{_Fluid}/LSTATIONARY = .TRUE.
    CHAR: TEF{_Fluid}/BCTYPE = NEUMANN
    CHAR: VISKTRB{_Fluid}/BCTYPE = NEUMANN
  ENDFOR

  // Set PRES/BCTYPE=SPEC_VEL only once.
  CASE: {TargetDir}/PRES/BCTYPE
  IS: SPEC_VEL
     // do nothing
  IS: *NONE*
     CHAR: PRES/BCTYPE = SPEC_VEL
     CHAR: PTOT/BCTYPE = SPEC_VEL
  ELSE:
     MESAGE: ***PRES/BCTYPE already exists with conflicting value
     EXIT
  ENDCASE

  CASE: {SourceDir}/{MmsName}/LNORM_VISC_FORCE
  IS: .FALSE.
    FOR: Fluid = {CurrentFluidList}
      LOGL: VEL{_Fluid}/LNORM_VISC_FORCE = .FALSE.
    ENDFOR
  IS: .TRUE.
    FOR: Fluid = {CurrentFluidList}
      LOGL: VEL{_Fluid}/LNORM_VISC_FORCE = .TRUE.
    ENDFOR
  ENDCASE
END

BC: MASS AND MOMENTUM, Implicit, OUTLET
  CHAR: PRES/BCTYPE = SPEC_VAR_PIMPLICIT
  FOR: Fluid = {CurrentFluidList}
    CHAR: VEL{_Fluid}/BCTYPE = OUTLET
  ENDFOR

  CASE: {SourceDir}/{MmsName}/PPROF
  IS: *DIR*
    COPDIR: PPROF
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Mass Flow Rate, INLET
  FOR: Fluid = {CurrentFluidList}

    // a FLOW DIRECTION must be specified.
    CASE: {SourceDir}/../{Fluid}/BOUNDARY_CONDITIONS/FLOW_DIRECTION/OPTION, {So\
urceDir}/FLOW_DIRECTION/OPTION
    IS: *NONE*, *NONE*
      MESAGE: Missing FLOW DIRECTION for Mass Flow Rate, INLET
      EXIT
    ENDCASE

    // Fluid-specific FLOW DIRECTION
    CASE: {SourceDir}/../{Fluid}/BOUNDARY_CONDITIONS/FLOW_DIRECTION/OPTION
    IS: Cartesian Components
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_MFLD
    IS: Cylindrical Components
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_MFLD
    IS: Normal to Boundary Condition
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_MFLO
    ENDCASE

    // Single-phase or shared FLOW DIRECTION
    CASE: {SourceDir}/FLOW_DIRECTION/OPTION
    IS: Cartesian Components
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_MFLD
    IS: Cylindrical Components
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_MFLD
    IS: Normal to Boundary Condition
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_MFLO
    ENDCASE

    COPDIR: MFLO, MFLO{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MFLO
    ENDDIR

    CASE: {SourceDir}/{MmsName}/MFLO_AREA
    IS: Total for All Sectors
      CHAR: MFLO{_Fluid}/MFLO_AREA = Total for All Sectors
    IS: As Specified
      CHAR: MFLO{_Fluid}/MFLO_AREA = As Specified
    IS: *NONE*
      CHAR: MFLO{_Fluid}/MFLO_AREA = As Specified
    ENDCASE

    CASE: {SourceDir}/{MmsName}/SECTOR_ANGLE
      ISNOT: *NONE*
        COPDIR: SECTOR_ANGLE,MFLO{_Fluid}/SECTOR_ANGLE
      ENDDIR
    ENDCASE

  ENDFOR

  CHAR: PRES/BCTYPE = SPEC_VEL_MFLO
  CHAR: PTOT/BCTYPE = SPEC_VEL_MFLO

  CASE: {SourceDir}/{MmsName}/NRBC
    IS: *DIR*
      COPDIR: NRBC
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Mass Flow Rate, OUTLET
  // note normal flow direction is assumed.
  FOR: Fluid = {CurrentFluidList}
    CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_MFLO
    COPDIR: MFLO, MFLO{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MFLO
    ENDDIR
    CASE: {SourceDir}/{MmsName}/MFLO_AREA
    IS: Total for All Sectors
      CHAR: MFLO{_Fluid}/MFLO_AREA = Total for All Sectors
    IS: As Specified
      CHAR: MFLO{_Fluid}/MFLO_AREA = As Specified
    ENDCASE

    CASE: {SourceDir}/{MmsName}/SECTOR_ANGLE
      ISNOT: *NONE*
        COPDIR: SECTOR_ANGLE,MFLO{_Fluid}/SECTOR_ANGLE
      ENDDIR
    ENDCASE

  ENDFOR

  CASE: {SourceDir}/{MmsName}/MASUPD/OPTION
  IS: Shift Pressure
    CHAR: PRES/BCTYPE = SPEC_VAR_PPROF
    CHAR: PTOT/BCTYPE = SPEC_VAR_PPROF
    CHAR: MSFOPT = Shift Pressure
  IS: Scale Mass Flows
    CHAR: PRES/BCTYPE = SPEC_VEL_MFLO
    CHAR: PTOT/BCTYPE = SPEC_VEL_MFLO
    CHAR: MSFOPT = Scale Mass Flows
  IS: Constant Flux
    CHAR: PRES/BCTYPE = SPEC_VEL_MFLO
    CHAR: PTOT/BCTYPE = SPEC_VEL_MFLO
    CHAR: MSFOPT = Constant Flux
  ELSE
    CHAR: PRES/BCTYPE = SPEC_VEL_MFLO
    CHAR: PTOT/BCTYPE = SPEC_VEL_MFLO
    CHAR: MSFOPT = Scale Mass Flows
  ENDCASE

  CASE: {SourceDir}/{MmsName}/MASUPD/PPROF
  IS: *DIR*
    COPDIR: {SourceDir}/{MmsName}/MASUPD/PPROF, PPROF
      CHAR: BCTYPE = SPEC_VAR_PPROF
    ENDDIR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/MASUPD/PROF_BLEND
  IS: *DIR*
    COPDIR: {SourceDir}/{MmsName}/MASUPD/PROF_BLEND, PROF_BLEND
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Normal Speed and Pressure, INLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_VELSM
      COPDIR: VELMAG, VELMAG{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELSM
      ENDDIR
    ENDFOR
  ELSE
    FOR: Fluid = {CurrentFluidList}
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_VELM
      COPDIR: VELMAG, VELMAG{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELM
      ENDDIR
    ENDFOR
  ENDCASE

  COPDIR: PRES
    CHAR: BCTYPE = SPEC_VAR_PRES
  ENDDIR
  CHAR: PTOT/BCTYPE = SPEC_VAR_PRES
END

BC: MASS AND MOMENTUM, Normal Speed and Total Pressure, INLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: VELDIR{_Fluid}/BCTYPE = SPEC_DIR_VELSM
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_VELSM
      COPDIR: VELMAG, VELMAG{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELSM
      ENDDIR
    ENDFOR

    CHAR: PRES/BCTYPE = SPEC_VAR_PTOTS
    CHAR: PTOT/BCTYPE = SPEC_VAR_PTOTS
    COPDIR: PTOT, PTOTS
      CHAR: BCTYPE = SPEC_VAR_PTOTS
    ENDDIR
  ELSE
  // Local Frame (Rotating for RFR cases)
    FOR: Fluid = {CurrentFluidList}
      CHAR: VELDIR{_Fluid}/BCTYPE = SPEC_DIR_VELM
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_VELM
      COPDIR: VELMAG, VELMAG{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELM
      ENDDIR
    ENDFOR

    CHAR: PRES/BCTYPE = SPEC_VAR_PTOT
    COPDIR: PTOT, PTOT
      CHAR: BCTYPE = SPEC_VAR_PTOT
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Normal Speed, INLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_VELSM
      COPDIR: VELMAG, VELMAG{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELSM
      ENDDIR
    ENDFOR
  ELSE
    FOR: Fluid = {CurrentFluidList}
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_VELM
      COPDIR: VELMAG, VELMAG{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELM
      ENDDIR
    ENDFOR
  ENDCASE
  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL

  CASE: {SourceDir}/{MmsName}/NRBC
    IS: *DIR*
      COPDIR: NRBC
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Normal Speed, INTERFACE
  // only used for particles
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_VELSM
      COPDIR: VELMAG, VELMAG{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELSM
      ENDDIR
    ENDFOR
  ELSE
    FOR: Fluid = {CurrentFluidList}
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_VELM
      COPDIR: VELMAG, VELMAG{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELM
      ENDDIR
    ENDFOR
  ENDCASE
  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL
END

BC: MASS AND MOMENTUM, Normal Speed, OPENING
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_VELSM
      COPDIR: VELMAG, VELMAG{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELSM
      ENDDIR
    ENDFOR
  ELSE
    FOR: Fluid = {CurrentFluidList}
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_VELM
      COPDIR: VELMAG, VELMAG{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELM
      ENDDIR
    ENDFOR
  ENDCASE
  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL
END

BC: MASS AND MOMENTUM, Normal Speed, OUTLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_VELM
    COPDIR: VELMAG, VELMAG{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_VELM
    ENDDIR
  ENDFOR
  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL

  CASE: {SourceDir}/{MmsName}/NRBC
    IS: *DIR*
      COPDIR: NRBC
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Normal Speed, WALL
  // only used for particles
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_VELSM
      COPDIR: VELMAG, VELMAG{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELSM
      ENDDIR
    ENDFOR
  ELSE
    FOR: Fluid = {CurrentFluidList}
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_VELM
      COPDIR: VELMAG, VELMAG{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELM
      ENDDIR
    ENDFOR
  ENDCASE
  CHAR: PRES/BCTYPE = SPEC_VEL
  CHAR: PTOT/BCTYPE = SPEC_VEL
END

BC: MASS AND MOMENTUM, No Slip Wall

  // Set PRES/BCTYPE=SPEC_VEL only once.
  CASE: {TargetDir}/PRES/BCTYPE
  IS: SPEC_VEL
  IS: *NONE*
     CHAR: PRES/BCTYPE = SPEC_VEL
  ELSE:
     MESAGE: ***PRES/BCTYPE already exists with conflicting value
     EXIT
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CASE: {SourceDir}/{MmsName}/TURBWF/OPTION
    IS: User Defined
      COPDIR: TURBWF/TWFTFC, UCOEF{_Fluid}
      ENDDIR
      CHAR: TURBWF/OPTION, UCOEF{_Fluid}/OPTION
    ENDCASE

    CASE: {SourceDir}/{MmsName}/VELW/AXIS/AROT, {SourceDir}/{MmsName}/VELW/AXIS\
/BROT
    IS: *DIR*,*DIR*
      COPDIR: VELW/AXIS/AROT, AXIS/AROT{_Fluid}
      ENDDIR
      COPDIR: VELW/AXIS/BROT, AXIS/BROT{_Fluid}
      ENDDIR
    IS: *DIR*,*NONE*
       MESAGE: Invalid WALL rotation axis specification 
       EXIT
    IS: *NONE*,*DIR*
       MESAGE: Invalid WALL rotation axis specification 
       EXIT
    ENDCASE

    CASE: {SourceDir}/{MmsName}/VELW/OPTION
    // No Slip (Moving Wall)
    IS: Cartesian Components
      COPDIR: {SourceDir}/{MmsName}/VELW/VEL, VEL{_Fluid}
      ENDDIR
    IS: Cylindrical Components
      COPDIR: {SourceDir}/{MmsName}/VELW/VEL, VEL{_Fluid}
      ENDDIR
    IS: Rotating Wall
      CHAR: VEL{_Fluid}/TYPE = ROTATING
      COPDIR: {SourceDir}/{MmsName}/VELW/OMEGA, OMEGA{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_OMEGA
      ENDDIR
    IS: Counter Rotating Wall
      CHAR: VEL{_Fluid}/TYPE = CROTATING
      COPDIR: /FLOW/{Zone}/DOMAIN_MODELS/DOMAIN_MOTION/OMEGA, \
              OMEGA{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_OMEGA
      ENDDIR
    ELSE
      // No Slip (Stationary Wall)
      MAKDIR: VEL{_Fluid}
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 3
        REAL: VALUE = 0.0, 0.0, 0.0
        LOGL: LSTATIONARY = .TRUE.
      ENDDIR
    ENDCASE
  ENDFOR

  FOR: Fluid = {CurrentFluidList}
    CASE: {SourceDir}/{MmsName}/VWALLRELTO
    ISNOT: *NONE*
      CHAR: VWALLRELTO, VWALLRELTO{_Fluid}
    ELSE:
      SKIP
    ENDCASE
  ENDFOR
  CASE: {SourceDir}/{MmsName}/VWALLRELTO
  ISNOT: *NONE*
    DELDAT: VWALLRELTO
  ENDCASE

END

BC: MASS AND MOMENTUM, No Slip Wall, INTERFACE

  USE: BC: MASS AND MOMENTUM, No Slip Wall

  FOR: Fluid = {CurrentFluidList}
    LIST: FLU_PHYTYPE = WALL
    DELDAT: IFLU_PHYTYPE

    CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
    IS: Stationary
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_VELS
      CHAR: VELS{_Fluid}/BCTYPE = SPEC_VAR_VELS
    ELSE
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_VEL
    ENDCASE
    
    CASE: {SourceDir}/TURBULENCE, {SourceDir}/../../BOUNDCON/TURBULENCE
    IS: *NONE*, *NONE*
      CHAR: TKE{_Fluid}/BCTYPE = WALL_FUNC
      CHAR: TED{_Fluid}/BCTYPE = SPEC_VAR_WALL
      CHAR: RS{_Fluid}/BCTYPE  = WALL_FUNC
      CHAR: TEF{_Fluid}/BCTYPE = SPEC_VAR_WALL
      CHAR: VISKTRB{_Fluid}/BCTYPE = SPEC_VAR_WALL
    ENDCASE
  ENDFOR
END

BC: MASS AND MOMENTUM, No Slip Wall, WALL

  USE: BC: MASS AND MOMENTUM, No Slip Wall

  FOR: Fluid = {CurrentFluidList}
    CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
    IS: Stationary
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_VELS
      CHAR: VELS{_Fluid}/BCTYPE = SPEC_VAR_VELS
    ELSE
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_VEL
    ENDCASE

    CHAR: TKE{_Fluid}/BCTYPE = WALL_FUNC
    CHAR: TED{_Fluid}/BCTYPE = SPEC_VAR_WALL
    CHAR: RS{_Fluid}/BCTYPE  = WALL_FUNC
    CHAR: TEF{_Fluid}/BCTYPE = SPEC_VAR_WALL
    CHAR: VISKTRB{_Fluid}/BCTYPE = SPEC_VAR_WALL
  ENDFOR
END

BC: MASS AND MOMENTUM, Opening Pressure and Direction, OPENING
  // Identical to 'Pressure' opening.
  // This differs from the equivalent inlet condition in that a loss 
  // coefficient may be present.  A Pressure opening with local flow direction
  // is the same as the entrainment condition.

  FOR: Fluid = {CurrentFluidList}
    // a FLOW DIRECTION must be specified.
    CASE: {SourceDir}/../{Fluid}/BOUNDARY_CONDITIONS/FLOW_DIRECTION/OPTION, {So\
urceDir}/FLOW_DIRECTION/OPTION
    IS: *NONE*, *NONE*
      MESAGE: Missing FLOW DIRECTION for Opening Pressure and Direction, OPENIN\
G
      EXIT
    ENDCASE

    // Fluid-specific FLOW DIRECTION
    CASE: {SourceDir}/../{Fluid}/BOUNDARY_CONDITIONS/FLOW_DIRECTION/OPTION
    IS: Normal to Boundary Condition
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORM
    IS: Local Flow Direction
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_VEL
    IS: Cartesian Components
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
    IS: Cylindrical Components
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
    ENDCASE

    // Single-phase or shared FLOW DIRECTION
    CASE: {SourceDir}/FLOW_DIRECTION/OPTION
    IS: Normal to Boundary Condition
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORM
    IS: Local Flow Direction
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_VEL
    IS: Cartesian Components
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
    IS: Cylindrical Components
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
    ENDCASE
  ENDFOR

  COPDIR: PRES
  ENDDIR

  CHAR: PRES/BCTYPE = OPENING_PTOT_LOSS
  COPDIR: PRES, PTOT
     CHAR: BCTYPE = OPENING_PTOT_LOSS
  ENDDIR
  CASE: {SourceDir}/{MmsName}/NRBC
    IS: *DIR*
      COPDIR: NRBC
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Specified Shear, INTERFACE
  // This scope of this bc can be FLUID,
  // but wall velocity should no be specified twice.

  FOR: Fluid = {CurrentFluidList}
    COPDIR: {SourceDir}/{MmsName}/SHEAR/VALUE, VEL{_Fluid}_FLX
    ENDDIR
    CHAR: VEL{_Fluid}/BCTYPE = SPEC_FLUX_SHEAR
  ENDFOR

  // Set PRES/BCTYPE=SPEC_VEL only once.
  CASE: {TargetDir}/PRES/BCTYPE
  IS: SPEC_VEL
  IS: *NONE*
     CHAR: PRES/BCTYPE = SPEC_VEL
  ELSE:
     MESAGE: ***PRES/BCTYPE already exists with conflicting value
     EXIT
  ENDCASE

  CASE: {SourceDir}/{MmsName}/LNORM_VISC_FORCE
  IS: .FALSE.
    FOR: Fluid = {CurrentFluidList}
      LOGL: VEL{_Fluid}/LNORM_VISC_FORCE = .FALSE.
    ENDFOR
  IS: .TRUE.
    FOR: Fluid = {CurrentFluidList}
      LOGL: VEL{_Fluid}/LNORM_VISC_FORCE = .TRUE.
    ENDFOR
  ENDCASE
END

BC: MASS AND MOMENTUM, Specified Shear, WALL
  // This scope of this bc can be FLUID,
  // but wall velocity should no be specified twice.

  FOR: Fluid = {CurrentFluidList}
    COPDIR: {SourceDir}/{MmsName}/SHEAR/VALUE, VEL{_Fluid}_FLX
    ENDDIR
    CHAR: VEL{_Fluid}/BCTYPE = SPEC_FLUX_SHEAR
  ENDFOR

  // Set PRES/BCTYPE=SPEC_VEL only once.
  CASE: {TargetDir}/PRES/BCTYPE
  IS: SPEC_VEL
  IS: *NONE*
     CHAR: PRES/BCTYPE = SPEC_VEL
  ELSE:
     MESAGE: ***PRES/BCTYPE already exists with conflicting value
     EXIT
  ENDCASE

  CASE: {SourceDir}/{MmsName}/LNORM_VISC_FORCE
  IS: .FALSE.
    FOR: Fluid = {CurrentFluidList}
      LOGL: VEL{_Fluid}/LNORM_VISC_FORCE = .FALSE.
    ENDFOR
  IS: .TRUE.
    FOR: Fluid = {CurrentFluidList}
      LOGL: VEL{_Fluid}/LNORM_VISC_FORCE = .TRUE.
    ENDFOR
  ENDCASE
END

BC: MASS AND MOMENTUM, Static and Total Pressure, INLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS: Stationary
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR

    COPDIR: PTOT, PTOTS
      CHAR: BCTYPE = SPEC_VAR_PTOTS
    ENDDIR
  ELSE
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR

    COPDIR: PTOT
      CHAR: BCTYPE = SPEC_VAR_PTOT
    ENDDIR
  ENDCASE

  COPDIR: PRES
    CHAR: BCTYPE = SPEC_VAR_PRES
  ENDDIR
END

BC: MASS AND MOMENTUM, Static Pressure and Direction, OPENING
  // Identical to Static Pressure openings
  FOR: Fluid = {CurrentFluidList}

    // a FLOW DIRECTION must be specified.
    CASE: {SourceDir}/../{Fluid}/BOUNDARY_CONDITIONS/FLOW_DIRECTION/OPTION, {So\
urceDir}/FLOW_DIRECTION/OPTION
    IS: *NONE*, *NONE*
      MESAGE: Missing FLOW DIRECTION for Static Pressure and Direction, OPENING
      EXIT
    ENDCASE

    // Fluid-specific flow direction
    CASE: {SourceDir}/../{Fluid}/BOUNDARY_CONDITIONS/FLOW_DIRECTION/OPTION
    IS: Zero Gradient
      CHAR: VEL{_Fluid}/BCTYPE = ZERO_GRAD
    IS: Normal to Boundary Condition
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORM
    IS: Local Flow Direction
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_VEL
    IS: Cartesian Components
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
    IS: Cylindrical Components
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
    ENDCASE

    // Fluid-shared flow direction
    CASE: {SourceDir}/FLOW_DIRECTION/OPTION
    IS: Zero Gradient
      CHAR: VEL{_Fluid}/BCTYPE = ZERO_GRAD
    IS: Normal to Boundary Condition
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORM
    IS: Local Flow Direction
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_VEL
    IS: Cartesian Components
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
    IS: Cylindrical Components
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
    ENDCASE

  ENDFOR

  COPDIR: PRES
  ENDDIR

  CHAR: PRES/BCTYPE = OPENING_PRES_LOSS

  COPDIR: PRES, PTOT
    CHAR: BCTYPE = OPENING_PRES_LOSS
  ENDDIR
  
  CASE: {SourceDir}/{MmsName}/NRBC
    IS: *DIR*
      COPDIR: NRBC
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Static Pressure, INLET
  COPDIR: PRES
    CHAR: BCTYPE = SPEC_VAR_PRES
  ENDDIR
  CHAR: PTOT/BCTYPE = SPEC_VAR_PRES

  FOR: Fluid = {CurrentFluidList}

    // a FLOW DIRECTION must be specified.
    CASE: {SourceDir}/../{Fluid}/BOUNDARY_CONDITIONS/FLOW_DIRECTION/OPTION, {So\
urceDir}/FLOW_DIRECTION/OPTION
    IS: *NONE*, *NONE*
      MESAGE: Missing FLOW DIRECTION for Static Pressure, INLET
      EXIT
    ENDCASE

    // Fluid-specific FLOW DIRECTION
    CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE, {SourceDir}/../{Fluid}/BOUNDARY_CONDIT\
IONS/FLOW_DIRECTION/OPTION
      IS: Stationary, Zero Gradient
        CHAR: VEL{_Fluid}/BCTYPE = ZERO_GRAD
      IS: Rotating, Zero Gradient
        CHAR: VEL{_Fluid}/BCTYPE = ZERO_GRAD
      IS: *NONE*, Zero Gradient
        CHAR: VEL{_Fluid}/BCTYPE = ZERO_GRAD

      IS: Stationary, Normal to Boundary Condition
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORMS
      IS: Rotating, Normal to Boundary Condition
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORM
      IS: *NONE*, Normal to Boundary Condition
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORM

      IS: Stationary, Cartesian Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CARTS
      IS: Rotating, Cartesian Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
      IS: *NONE*, Cartesian Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART

      IS: Stationary, Cylindrical Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CARTS
      IS: Rotating, Cylindrical Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
      IS: *NONE*, Cylindrical Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART

    ENDCASE

    // Single-phase or shared FLOW DIRECTION
    CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE, {SourceDir}/FLOW_DIRECTION/OPTION
      IS: Stationary, Zero Gradient
        CHAR: VEL{_Fluid}/BCTYPE = ZERO_GRAD
      IS: Rotating, Zero Gradient
        CHAR: VEL{_Fluid}/BCTYPE = ZERO_GRAD
      IS: *NONE*, Zero Gradient
        CHAR: VEL{_Fluid}/BCTYPE = ZERO_GRAD

      IS: Stationary, Normal to Boundary Condition
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORMS
      IS: Rotating, Normal to Boundary Condition
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORM
      IS: *NONE*, Normal to Boundary Condition
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORM

      IS: Stationary, Cartesian Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CARTS
      IS: Rotating, Cartesian Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
      IS: *NONE*, Cartesian Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART

      IS: Stationary, Cylindrical Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CARTS
      IS: Rotating, Cylindrical Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
      IS: *NONE*, Cylindrical Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
    ENDCASE
  ENDFOR
  
  CASE: {SourceDir}/{MmsName}/NRBC
    IS: *DIR*
      COPDIR: NRBC
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Static Pressure, OUTLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: VEL{_Fluid}/BCTYPE = OUTLET
  ENDFOR

  COPDIR: PRES
    CHAR: BCTYPE = SPEC_VAR_PRES
  ENDDIR
  CHAR: PTOT/BCTYPE = SPEC_VAR_PRES

  CASE: {SourceDir}/{MmsName}/NRBC
    IS: *DIR*
      COPDIR: NRBC
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Stationary Frame Total Pressure, INLET
  CASE: /FLOW/{Zone}/DOMAIN_MODELS/DOMAIN_MOTION/OPTION
  IS: Rotating
    CHAR: PRES/BCTYPE = SPEC_VAR_PTOTS
    CHAR: PTOT/BCTYPE = SPEC_VAR_PTOTS
    COPDIR: PRES, PTOTS
      CHAR: BCTYPE = SPEC_VAR_PTOTS
    ENDDIR
  ELSE
    CHAR: PRES/BCTYPE = SPEC_VAR_PTOT
    COPDIR: PRES, PTOT
      CHAR: BCTYPE = SPEC_VAR_PTOT
    ENDDIR
  ENDCASE

  FOR: Fluid = {CurrentFluidList}

    // Fluid-specific FLOW DIRECTION
    CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE, {SourceDir}/../{Fluid}/BOUNDARY_CONDIT\
IONS/FLOW_DIRECTION/OPTION
      IS: Stationary, Normal to Boundary Condition
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORMS
      IS: Rotating, Normal to Boundary Condition
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORM
      IS: *NONE*, Normal to Boundary Condition
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORM

      IS: Stationary, Cartesian Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CARTS
      IS: Rotating, Cartesian Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
      IS: *NONE*, Cartesian Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART

      IS: Stationary, Cylindrical Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CARTS
      IS: Rotating, Cylindrical Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
      IS: *NONE*, Cylindrical Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
    ENDCASE

    // Single-phase or shared FLOW DIRECTION
    CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE, {SourceDir}/FLOW_DIRECTION/OPTION
      IS: Stationary, Normal to Boundary Condition
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORMS
      IS: Rotating, Normal to Boundary Condition
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORM
      IS: *NONE*, Normal to Boundary Condition
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORM

      IS: Stationary, Cartesian Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CARTS
      IS: Rotating, Cartesian Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
      IS: *NONE*, Cartesian Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART

      IS: Stationary, Cylindrical Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CARTS
      IS: Rotating, Cylindrical Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
      IS: *NONE*, Cylindrical Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
    ENDCASE
  ENDFOR

  CASE: {SourceDir}/{MmsName}/NRBC
    IS: *DIR*
      COPDIR: NRBC
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Supercritical, OUTLET
  COPDIR: PRES
  ENDDIR

  CHAR: PRES/BCTYPE = SPEC_VAR_PSUPER
  CHAR: PTOT/BCTYPE = SPEC_VAR_PSUPER
  FOR: Fluid = {CurrentFluidList}
    CHAR: VEL{_Fluid}/BCTYPE = OUTLET
  ENDFOR
END

BC: MASS AND MOMENTUM, Total Pressure, INLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS: Stationary
    CHAR: PRES/BCTYPE = SPEC_VAR_PTOTS
    CHAR: PTOT/BCTYPE = SPEC_VAR_PTOTS
    COPDIR: PRES, PTOTS
       CHAR: BCTYPE = SPEC_VAR_PTOTS
    ENDDIR
  ELSE
    CHAR: PRES/BCTYPE = SPEC_VAR_PTOT
    COPDIR: PRES, PTOT
       CHAR: BCTYPE = SPEC_VAR_PTOT
    ENDDIR
  ENDCASE

  FOR: Fluid = {CurrentFluidList}

    // Fluid-specific FLOW DIRECTION
    CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE, {SourceDir}/../{Fluid}/BOUNDARY_CONDIT\
IONS/FLOW_DIRECTION/OPTION
      IS: Stationary, Normal to Boundary Condition
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORMS
      IS: Rotating, Normal to Boundary Condition
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORM
      IS: *NONE*, Normal to Boundary Condition
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORM

      IS: Stationary, Cartesian Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CARTS
      IS: Rotating, Cartesian Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
      IS: *NONE*, Cartesian Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART

      IS: Stationary, Cylindrical Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CARTS
      IS: Rotating, Cylindrical Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
      IS: *NONE*, Cylindrical Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
    ENDCASE

    // Single-phase or shared FLOW DIRECTION
    CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE, {SourceDir}/FLOW_DIRECTION/OPTION
      IS: Stationary, Normal to Boundary Condition
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORMS
      IS: Rotating, Normal to Boundary Condition
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORM
      IS: *NONE*, Normal to Boundary Condition
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_NORM

      IS: Stationary, Cartesian Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CARTS
      IS: Rotating, Cartesian Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
      IS: *NONE*, Cartesian Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART

      IS: Stationary, Cylindrical Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CARTS
      IS: Rotating, Cylindrical Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
      IS: *NONE*, Cylindrical Components
        CHAR: VEL{_Fluid}/BCTYPE = SPEC_DIR_CART
    ENDCASE

  ENDFOR

  CASE: {SourceDir}/{MmsName}/NRBC
    IS: *DIR*
      COPDIR: NRBC
    ENDDIR
  ENDCASE
END

BC: MASS AND MOMENTUM, Zero Slip Velocity, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: VEL{_Fluid}/BCTYPE = SPEC_ZERO_SLIP
  ENDFOR
END

BC: MASS AND MOMENTUM, Zero Slip Velocity, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: VEL{_Fluid}/BCTYPE = SPEC_ZERO_SLIP
  ENDFOR
END

BC: MASS AND MOMENTUM, Zero Slip Velocity, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: VEL{_Fluid}/BCTYPE = SPEC_ZERO_SLIP
  ENDFOR
END

BC: MASS AND MOMENTUM, Zero Slip Velocity, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: VEL{_Fluid}/BCTYPE = SPEC_ZERO_SLIP
  ENDFOR
END

BC: MESH MOTION, ANSYS MultiField, WALL
  CASE: {SourceDir}/{MmsName}/DATAFROMANSYS
  
  IS: Total Mesh Displacement
    COPDIR: MESHDISP
      CHAR: BCTYPE = SPEC_VAR_MDISP
      CHAR: HOW = DT
      CHAR: DISPLACEMENT/OPTION = Cartesian Components
    ENDDIR
    CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
  ELSE
    MESAGE: Invalid MESH MOTION Receive from ANSYS, WALL
    EXIT
  ENDCASE
END

BC: MESH MOTION, Conservative Interface Flux, INTERFACE
  CHAR: MESHDISP/BCTYPE = ZIF
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END

BC: MESH MOTION, Parallel to Boundary, INLET
  CHAR: MESHDISP/BCTYPE = SPEC_FLUX_ZERO_SHEAR
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END
BC: MESH MOTION, Parallel to Boundary, INTERFACE
  CHAR: MESHDISP/BCTYPE = SPEC_FLUX_ZERO_SHEAR
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END
BC: MESH MOTION, Parallel to Boundary, OPENING
  CHAR: MESHDISP/BCTYPE = SPEC_FLUX_ZERO_SHEAR
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END
BC: MESH MOTION, Parallel to Boundary, OUTLET
  CHAR: MESHDISP/BCTYPE = SPEC_FLUX_ZERO_SHEAR
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END
BC: MESH MOTION, Parallel to Boundary, WALL
  CHAR: MESHDISP/BCTYPE = SPEC_FLUX_ZERO_SHEAR
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END

BC: MESH MOTION, Periodic Displacement
  COPDIR: ., MESHDISP
    CHAR: BCTYPE = SPEC_VAR_MDISP
    CHAR: DISPLACEMENT/OPTION
    CHAR: FORMULA = PERIODIC
    CHAR: HOW = FORMULA
  ENDDIR
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END

BC: MESH MOTION, Periodic Displacement, INLET
  USE: BC: MESH MOTION, Periodic Displacement
END

BC: MESH MOTION, Periodic Displacement, INTERFACE
  USE: BC: MESH MOTION, Periodic Displacement
END

BC: MESH MOTION, Periodic Displacement, OPENING
  USE: BC: MESH MOTION, Periodic Displacement
END

BC: MESH MOTION, Periodic Displacement, OUTLET
  USE: BC: MESH MOTION, Periodic Displacement
END

BC: MESH MOTION, Periodic Displacement, WALL
  USE: BC: MESH MOTION, Periodic Displacement
END

BC: MESH MOTION, Rigid Body Solution
  COPDIR: .,MESHDISP
    CHAR: BCTYPE = SPEC_VAR_MDISP
    CHAR: HOW = RBS
    CHAR: DISPLACEMENT/OPTION = Cartesian Components
  ENDDIR
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END

BC: MESH MOTION, Rigid Body Solution, INLET
  USE: BC: MESH MOTION, Rigid Body Solution
END

BC: MESH MOTION, Rigid Body Solution, INTERFACE
  USE: BC: MESH MOTION, Rigid Body Solution
END

BC: MESH MOTION, Rigid Body Solution, OPENING
  USE: BC: MESH MOTION, Rigid Body Solution
END

BC: MESH MOTION, Rigid Body Solution, OUTLET
  USE: BC: MESH MOTION, Rigid Body Solution
END

BC: MESH MOTION, Rigid Body Solution, SYMMETRY
  USE: BC: MESH MOTION, Rigid Body Solution
END

BC: MESH MOTION, Rigid Body Solution, WALL
  USE: BC: MESH MOTION, Rigid Body Solution
END

BC: MESH MOTION, Specified Displacement, INLET
  COPDIR: DISPLACEMENT/VALUE,MESHDISP
    CHAR: BCTYPE = SPEC_VAR_MDISP
    CHAR: DISPLACEMENT/OPTION
  ENDDIR
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END

BC: MESH MOTION, Specified Displacement, INTERFACE
  COPDIR: DISPLACEMENT/VALUE,MESHDISP
    CHAR: BCTYPE = SPEC_VAR_MDISP
    CHAR: DISPLACEMENT/OPTION
  ENDDIR
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END

BC: MESH MOTION, Specified Displacement, OPENING
  COPDIR: DISPLACEMENT/VALUE,MESHDISP
    CHAR: BCTYPE = SPEC_VAR_MDISP
    CHAR: DISPLACEMENT/OPTION
  ENDDIR
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END

BC: MESH MOTION, Specified Displacement, OUTLET
  COPDIR: DISPLACEMENT/VALUE,MESHDISP
    CHAR: BCTYPE = SPEC_VAR_MDISP
    CHAR: DISPLACEMENT/OPTION
  ENDDIR
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END

BC: MESH MOTION, Specified Displacement, SYMMETRY
  COPDIR: DISPLACEMENT/VALUE,MESHDISP
    CHAR: BCTYPE = SPEC_VAR_MDISP
    CHAR: DISPLACEMENT/OPTION
  ENDDIR
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END

BC: MESH MOTION, Specified Displacement, WALL
  COPDIR: DISPLACEMENT/VALUE,MESHDISP
    CHAR: BCTYPE = SPEC_VAR_MDISP
    CHAR: DISPLACEMENT/OPTION
  ENDDIR
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END

BC: MESH MOTION, Specified Location, INLET
  COPDIR: LOCATION/VALUE,MESHDISP
    CHAR: BCTYPE = SPEC_VAR_MLOC
  ENDDIR
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MLOC
END

BC: MESH MOTION, Specified Location, INTERFACE
  COPDIR: LOCATION/VALUE,MESHDISP
    CHAR: BCTYPE = SPEC_VAR_MLOC
  ENDDIR
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MLOC
END

BC: MESH MOTION, Specified Location, OPENING
  COPDIR: LOCATION/VALUE,MESHDISP
    CHAR: BCTYPE = SPEC_VAR_MLOC
  ENDDIR
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MLOC
END

BC: MESH MOTION, Specified Location, OUTLET
  COPDIR: LOCATION/VALUE,MESHDISP
    CHAR: BCTYPE = SPEC_VAR_MLOC
  ENDDIR
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MLOC
END

BC: MESH MOTION, Specified Location, SYMMETRY
  COPDIR: LOCATION/VALUE,MESHDISP
    CHAR: BCTYPE = SPEC_VAR_MLOC
  ENDDIR
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MLOC
END

BC: MESH MOTION, Specified Location, WALL
  COPDIR: LOCATION/VALUE,MESHDISP
    CHAR: BCTYPE = SPEC_VAR_MLOC
  ENDDIR
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MLOC
END

BC: MESH MOTION, Stationary
  MAKDIR: MESHDISP
    CHAR: BCTYPE = SPEC_VAR_MDISP
    CHAR: HOW = CONSTANT
    INTR: NVALUES = 3
    REAL: VALUE = 0.0,0.0,0.0 
    CHAR: DISPLACEMENT/OPTION = Cartesian Components
    LOGL: LSTATIONARY = .TRUE.
  ENDDIR
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END

BC: MESH MOTION, Stationary, INLET
  USE: BC: MESH MOTION, Stationary
END

BC: MESH MOTION, Stationary, INTERFACE
  USE: BC: MESH MOTION, Stationary
END

BC: MESH MOTION, Stationary, OPENING
  USE: BC: MESH MOTION, Stationary
END

BC: MESH MOTION, Stationary, OUTLET
  USE: BC: MESH MOTION, Stationary
END

BC: MESH MOTION, Stationary, SYMMETRY
  USE: BC: MESH MOTION, Stationary
END

BC: MESH MOTION, Stationary, WALL
  USE: BC: MESH MOTION, Stationary
END

BC: MESH MOTION, Surface of Revolution
  CHAR: MESHDISP/BCTYPE = SPEC_FLUX_CYL_SHEAR
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP

  CASE: {SourceDir}/{MmsName}/AXIS/AROT, {SourceDir}/{MmsName}/AXIS/BROT
  IS: *DIR*,*DIR*
    COPDIR: AXIS/AROT, AXIS/AROT
    ENDDIR
    COPDIR: AXIS/BROT, AXIS/BROT
    ENDDIR
  IS: *DIR*,*NONE*
    MESAGE: Invalid Surface rotation axis specification 
    EXIT
  IS: *NONE*,*DIR*
    MESAGE: Invalid Surface rotation axis specification 
    EXIT
  ENDCASE
END

BC: MESH MOTION, Surface of Revolution, INLET
  USE: BC: MESH MOTION, Surface of Revolution
END

BC: MESH MOTION, Surface of Revolution, INTERFACE
  USE: BC: MESH MOTION, Surface of Revolution
END

BC: MESH MOTION, Surface of Revolution, OPENING
  USE: BC: MESH MOTION, Surface of Revolution
END

BC: MESH MOTION, Surface of Revolution, OUTLET
  USE: BC: MESH MOTION, Surface of Revolution
END

BC: MESH MOTION, Surface of Revolution, WALL
  USE: BC: MESH MOTION, Surface of Revolution
END

BC: MESH MOTION, System Coupling, WALL
  CHAR: MESHDISP/BCTYPE = SPEC_VAR_MDISP
  CHAR: MESHDISP/HOW = SC
  CHAR: MESHDISP/DISPLACEMENT/OPTION = Cartesian Components
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END

BC: MESH MOTION, Unspecified, INLET
  CHAR: MESHDISP/BCTYPE = ZERO_FLUX
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END

BC: MESH MOTION, Unspecified, INTERFACE
  CHAR: MESHDISP/BCTYPE = ZERO_FLUX
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END

BC: MESH MOTION, Unspecified, OPENING
  CHAR: MESHDISP/BCTYPE = ZERO_FLUX
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END

BC: MESH MOTION, Unspecified, OUTLET
  CHAR: MESHDISP/BCTYPE = ZERO_FLUX
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END

BC: MESH MOTION, Unspecified, SYMMETRY
  CHAR: MESHDISP/BCTYPE = ZERO_FLUX
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END

BC: MESH MOTION, Unspecified, WALL
  CHAR: MESHDISP/BCTYPE = ZERO_FLUX
  CHAR: CRDVX/BCTYPE = SPEC_VAR_MDISP
END

BC: MIXTURE, Conservative Interface Flux, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: MFINERT{_Fluid}/BCTYPE = ZIF
    CHAR: MIXFRC{_Fluid}/BCTYPE = ZIF
    CHAR: MIXVAR{_Fluid}/BCTYPE = ZIF
    CHAR: TRFUEL{_Fluid}/BCTYPE = ZIF
  ENDFOR
END

BC: MIXTURE, Equivalence Ratio and Inert Material, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: MIXFRC{_Fluid}/BCTYPE = SPEC_VAR_CNDEQV
    COPDIR: CNDEQV_FRESH, CNDEQV_FRESH{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_CNDEQV
    ENDDIR
    COPDIR: MFINERT, MFINERT{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MFINERT
    ENDDIR
    COPDIR: MFINERT, MFRESID{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MFRESID
    ENDDIR

    MAKDIR: CNDEQV_RESID{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_CNDEQV
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    MAKDIR: MIXVAR{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MIXVAR
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
  ENDFOR
END

BC: MIXTURE, Equivalence Ratio and Inert Material, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: MIXFRC{_Fluid}/BCTYPE = OPENING_CNDEQV
    COPDIR: CNDEQV_FRESH, CNDEQV_FRESH{_Fluid}
      CHAR: BCTYPE = OPENING_CNDEQV
    ENDDIR
    COPDIR: MFINERT, MFINERT{_Fluid}
      CHAR: BCTYPE = OPENING_MFINERT
    ENDDIR
    COPDIR: MFINERT, MFRESID{_Fluid}
      CHAR: BCTYPE = OPENING_MFRESID
    ENDDIR

    MAKDIR: CNDEQV_RESID{_Fluid}
      CHAR: BCTYPE = OPENING_CNDEQV
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    MAKDIR: MIXVAR, MIXVAR{_Fluid}
      CHAR: BCTYPE = OPENING_MIXVAR
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
  ENDFOR
END

BC: MIXTURE, Equivalence Ratio and Residual Material, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: MIXFRC{_Fluid}/BCTYPE = SPEC_VAR_CNDEQV
    CHAR: TRFUEL{_Fluid}/BCTYPE = SPEC_VAR_CNDEQV
    COPDIR: CNDEQV_FRESH, CNDEQV_FRESH{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_CNDEQV
    ENDDIR
    COPDIR: CNDEQV_RESID, CNDEQV_RESID{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_CNDEQV
    ENDDIR
    COPDIR: MFRESID, MFRESID{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MFRESID
    ENDDIR

    MAKDIR: MIXVAR{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MIXVAR
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
  ENDFOR
END

BC: MIXTURE, Equivalence Ratio and Residual Material, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: MIXFRC{_Fluid}/BCTYPE = OPENING_CNDEQV
    CHAR: TRFUEL{_Fluid}/BCTYPE = OPENING_CNDEQV
    COPDIR: CNDEQV_FRESH, CNDEQV_FRESH{_Fluid}
      CHAR: BCTYPE = OPENING_CNDEQV
    ENDDIR
    COPDIR: CNDEQV_RESID, CNDEQV_RESID{_Fluid}
      CHAR: BCTYPE = OPENING_CNDEQV
    ENDDIR
    COPDIR: MFRESID, MFRESID{_Fluid}
      CHAR: BCTYPE = OPENING_MFRESID
    ENDDIR

    MAKDIR: MIXVAR, MIXVAR{_Fluid}
      CHAR: BCTYPE = OPENING_MIXVAR
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
  ENDFOR
END

BC: MIXTURE, Equivalence Ratio, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: MIXFRC{_Fluid}/BCTYPE = SPEC_VAR_CNDEQV
    CHAR: TRFUEL{_Fluid}/BCTYPE = SPEC_VAR_CNDEQV
    COPDIR: EQUIVRAT, CNDEQV_FRESH{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_CNDEQV
    ENDDIR
    COPDIR: EQUIVRAT, CNDEQV_RESID{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_CNDEQV
    ENDDIR
    MAKDIR: MFINERT{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MFINERT
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
    MAKDIR: MFRESID{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MFRESID
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    MAKDIR: MIXVAR{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MIXVAR
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
  ENDFOR
END

BC: MIXTURE, Equivalence Ratio, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: MIXFRC{_Fluid}/BCTYPE = OPENING_CNDEQV
    CHAR: TRFUEL{_Fluid}/BCTYPE = OPENING_CNDEQV
    COPDIR: EQUIVRAT, CNDEQV_FRESH{_Fluid}
      CHAR: BCTYPE = OPENING_CNDEQV
    ENDDIR
    COPDIR: EQUIVRAT, CNDEQV_RESID{_Fluid}
      CHAR: BCTYPE = OPENING_CNDEQV
    ENDDIR
    MAKDIR: MFINERT{_Fluid}
      CHAR: BCTYPE = OPENING_MFINERT
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
    MAKDIR: MFRESID{_Fluid}
      CHAR: BCTYPE = OPENING_MFRESID
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    MAKDIR: MIXVAR, MIXVAR{_Fluid}
      CHAR: BCTYPE = OPENING_MIXVAR
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
  ENDFOR
END

BC: MIXTURE, Fuel, INLET
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: MIXFRC{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MIXFRC
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 1.0
    ENDDIR

    MAKDIR: MIXVAR{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MIXVAR
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    MAKDIR: MFINERT{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MFINERT
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    MAKDIR: TRFUEL{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TRFUEL
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 1.0
    ENDDIR
  ENDFOR
END

BC: MIXTURE, Fuel, OPENING
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: MIXFRC{_Fluid}
      CHAR: BCTYPE = OPENING_MIXFRC
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 1.0
    ENDDIR

    MAKDIR: MIXVAR{_Fluid}
      CHAR: BCTYPE = OPENING_MIXVAR
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    MAKDIR: MFINERT{_Fluid}
      CHAR: BCTYPE = OPENING_MFINERT
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    MAKDIR: TRFUEL{_Fluid}
      CHAR: BCTYPE = OPENING_TRFUEL
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 1.0
    ENDDIR
  ENDFOR
END

BC: MIXTURE, Mixture Fraction, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: MIXFRC, MIXFRC{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MIXFRC
    ENDDIR

    MAKDIR: MIXVAR{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MIXVAR
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    MAKDIR: MFINERT{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MFINERT
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    COPDIR: MIXFRC, TRFUEL{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TRFUEL
    ENDDIR
  ENDFOR
END

BC: MIXTURE, Mixture Fraction, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: MIXFRC, MIXFRC{_Fluid}
      CHAR: BCTYPE = OPENING_MIXFRC
    ENDDIR

    MAKDIR: MIXVAR, MIXVAR{_Fluid}
      CHAR: BCTYPE = OPENING_MIXVAR
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    MAKDIR: MFINERT{_Fluid}
      CHAR: BCTYPE = OPENING_MFINERT
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    COPDIR: MIXFRC, TRFUEL{_Fluid}
      CHAR: BCTYPE = OPENING_TRFUEL
    ENDDIR
  ENDFOR
END

BC: MIXTURE, Mixture Fraction and Fuel Tracer, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: MIXFRC, MIXFRC{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MIXFRC
    ENDDIR

    MAKDIR: MIXVAR{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MIXVAR
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    COPDIR: TRFUEL, TRFUEL{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TRFUEL
    ENDDIR
  ENDFOR
END

BC: MIXTURE, Mixture Fraction and Fuel Tracer, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: MIXFRC, MIXFRC{_Fluid}
      CHAR: BCTYPE = OPENING_MIXFRC
    ENDDIR

    MAKDIR: MIXVAR, MIXVAR{_Fluid}
      CHAR: BCTYPE = OPENING_MIXVAR
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    COPDIR: TRFUEL, TRFUEL{_Fluid}
      CHAR: BCTYPE = OPENING_TRFUEL
    ENDDIR
  ENDFOR
END

BC: MIXTURE, Mixture Fraction and Inert Material, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: MIXFRC{_Fluid}/BCTYPE = SPEC_VAR_CNDMXF
    CHAR: TRFUEL{_Fluid}/BCTYPE = SPEC_VAR_CNDMXF
    COPDIR: CNDMXF_FRESH, CNDMXF_FRESH{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MIXFRC
    ENDDIR
    COPDIR: MFINERT, MFINERT{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MFRESID
    ENDDIR
    COPDIR: MFINERT, MFRESID{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MFRESID
    ENDDIR

    MAKDIR: CNDMXF_RESID{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_CNDMXF
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    MAKDIR: MIXVAR{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MIXVAR
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
  ENDFOR
END

BC: MIXTURE, Mixture Fraction and Inert Material, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: MIXFRC{_Fluid}/BCTYPE = OPENING_CNDMXF
    CHAR: TRFUEL{_Fluid}/BCTYPE = OPENING_CNDMXF
    COPDIR: CNDMXF_FRESH, CNDMXF_FRESH{_Fluid}
      CHAR: BCTYPE = OPENING_MIXFRC
    ENDDIR
    COPDIR: MFINERT, MFINERT{_Fluid}
      CHAR: BCTYPE = OPENING_MFRESID
    ENDDIR
    COPDIR: MFINERT, MFRESID{_Fluid}
      CHAR: BCTYPE = OPENING_MFRESID
    ENDDIR

    MAKDIR: CNDMXF_RESID{_Fluid}
      CHAR: BCTYPE = OPENING_CNDMXF
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    MAKDIR: MIXVAR, MIXVAR{_Fluid}
      CHAR: BCTYPE = OPENING_MIXVAR
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
  ENDFOR
END

BC: MIXTURE, Mixture Fraction and Residual Material, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: MIXFRC{_Fluid}/BCTYPE = SPEC_VAR_CNDMXF
    CHAR: TRFUEL{_Fluid}/BCTYPE = SPEC_VAR_CNDMXF
    COPDIR: CNDMXF_FRESH, CNDMXF_FRESH{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MIXFRC
    ENDDIR
    COPDIR: CNDMXF_RESID, CNDMXF_RESID{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MIXFRC
    ENDDIR
    COPDIR: MFRESID, MFRESID{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MFRESID
    ENDDIR

    MAKDIR: MIXVAR{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MIXVAR
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
  ENDFOR
END

BC: MIXTURE, Mixture Fraction and Residual Material, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: MIXFRC{_Fluid}/BCTYPE = OPENING_CNDMXF
    CHAR: TRFUEL{_Fluid}/BCTYPE = OPENING_CNDMXF
    COPDIR: CNDMXF_FRESH, CNDMXF_FRESH{_Fluid}
      CHAR: BCTYPE = OPENING_MIXFRC
    ENDDIR
    COPDIR: CNDMXF_RESID, CNDMXF_RESID{_Fluid}
      CHAR: BCTYPE = OPENING_MIXFRC
    ENDDIR
    COPDIR: MFRESID, MFRESID{_Fluid}
      CHAR: BCTYPE = OPENING_MFRESID
    ENDDIR

    MAKDIR: MIXVAR, MIXVAR{_Fluid}
      CHAR: BCTYPE = OPENING_MIXVAR
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
  ENDFOR
END

BC: MIXTURE, Mixture Fraction Mean and Variance, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: MIXFRC, MIXFRC{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MIXFRC
    ENDDIR
    COPDIR: MIXVAR, MIXVAR{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MIXVAR
    ENDDIR
    COPDIR: MIXFRC, TRFUEL{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TRFUEL
    ENDDIR

    MAKDIR: MFINERT{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MFINERT
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
  ENDFOR
END

BC: MIXTURE, Mixture Fraction Mean and Variance, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: MIXFRC, MIXFRC{_Fluid}
      CHAR: BCTYPE = OPENING_MIXFRC
    ENDDIR
    COPDIR: MIXVAR, MIXVAR{_Fluid}
      CHAR: BCTYPE = OPENING_MIXVAR
    ENDDIR
    COPDIR: MIXFRC, TRFUEL{_Fluid}
      CHAR: BCTYPE = OPENING_TRFUEL
    ENDDIR

    MAKDIR: MFINERT{_Fluid}
      CHAR: BCTYPE = OPENING_MFINERT
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
  ENDFOR
END

BC: MIXTURE, Oxidiser, INLET
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: MIXFRC{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MIXFRC
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    MAKDIR: MIXVAR{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MIXVAR
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    MAKDIR: MFINERT{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MFINERT
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    MAKDIR: TRFUEL{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TRFUEL
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
  ENDFOR
END

BC: MIXTURE, Oxidiser, OPENING
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: MIXFRC{_Fluid}
      CHAR: BCTYPE = OPENING_MIXFRC
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    MAKDIR: MIXVAR{_Fluid}
      CHAR: BCTYPE = OPENING_MIXVAR
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    MAKDIR: MFINERT{_Fluid}
      CHAR: BCTYPE = OPENING_MFINERT
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR

    MAKDIR: TRFUEL{_Fluid}
      CHAR: BCTYPE = OPENING_TRFUEL
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
  ENDFOR
END

BC: MOMENTUM, Conservative Interface Flux, INTERFACE
  FOR: Solid = {CurrentSolidList}
    CHAR: DISP{_Solid}/BCTYPE = ZIF
  ENDFOR
END

BC: MOMENTUM, Free Slip, WALL
  FOR: Solid = {CurrentSolidList}
    CHAR: DISP{_Solid}/BCTYPE = SPEC_FLUX_ZERO_SHEAR
  ENDFOR
END

BC: MOMENTUM, Specified Displacement, WALL
  FOR: Solid = {CurrentSolidList}
    CHAR: DISP{_Solid}/BCTYPE = SPEC_VAR_DISP
    COPDIR: DISPLACEMENT/VALUE, DISP{_Solid}_WALL
      CHAR: BCTYPE = SPEC_VAR_DISP
    ENDDIR
  ENDFOR
END

BC: MOMENTUM, Specified Stress, INTERFACE
  FOR: Solid = {CurrentSolidList}
    CHAR: DISP{_Solid}/BCTYPE = SPEC_FLUX
    COPDIR: STRESS/VALUE, DISP{_Solid}_FLX
      CHAR: BCTYPE = SPEC_FLUX
    ENDDIR
  ENDFOR
END

BC: MOMENTUM, Specified Stress, WALL
  FOR: Solid = {CurrentSolidList}
    CHAR: DISP{_Solid}/BCTYPE = SPEC_FLUX
    COPDIR: STRESS/VALUE, DISP{_Solid}_FLX
      CHAR: BCTYPE = SPEC_FLUX
    ENDDIR
  ENDFOR
END

BC: OMEGA, Value, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    COPDIR: TEF, TEFWALL{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TEF
    ENDDIR
  ENDFOR
END

BC: OMEGA, Value, WALL
  FOR: Fluid = {CurrentFluidList}
    COPDIR: TEF, TEFWALL{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TEF
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Discrete Diameter Distribution, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = DISCRETE_DIAM_LIST
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Discrete Diameter Distribution, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = DISCRETE_DIAM_LIST
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Discrete Diameter Distribution, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = DISCRETE_DIAM_LIST
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Discrete Diameter Distribution, OUTLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = DISCRETE_DIAM_LIST
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Discrete Diameter Distribution, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = DISCRETE_DIAM_LIST
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Normal in Diameter by Mass, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = NORMAL_DIAM_MASS
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Normal in Diameter by Mass, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = NORMAL_DIAM_MASS
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Normal in Diameter by Mass, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = NORMAL_DIAM_MASS
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Normal in Diameter by Mass, OUTLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = NORMAL_DIAM_MASS
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Normal in Diameter by Mass, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = NORMAL_DIAM_MASS
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Normal in Diameter by Number, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = NORMAL_DIAM_NR
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Normal in Diameter by Number, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = NORMAL_DIAM_NR
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Normal in Diameter by Number, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = NORMAL_DIAM_NR
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Normal in Diameter by Number, OUTLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = NORMAL_DIAM_NR
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Normal in Diameter by Number, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = NORMAL_DIAM_NR
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Nukiyama Tanasawa, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = NUKIYAMA_TANASAWA
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Nukiyama Tanasawa, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = NUKIYAMA_TANASAWA
    ENDDIR
  ENDFOR
END
 
BC: PARTICLE DIAMETER DISTRIBUTION, Nukiyama Tanasawa, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = NUKIYAMA_TANASAWA
    ENDDIR
  ENDFOR
END
 
BC: PARTICLE DIAMETER DISTRIBUTION, Nukiyama Tanasawa, OUTLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = NUKIYAMA_TANASAWA
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Nukiyama Tanasawa, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = NUKIYAMA_TANASAWA
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Rosin Rammler, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = ROSIN_RAMMLER
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Rosin Rammler, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = ROSIN_RAMMLER
    ENDDIR
  ENDFOR
END
 
BC: PARTICLE DIAMETER DISTRIBUTION, Rosin Rammler, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = ROSIN_RAMMLER
    ENDDIR
  ENDFOR
END
 
BC: PARTICLE DIAMETER DISTRIBUTION, Rosin Rammler, OUTLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = ROSIN_RAMMLER
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Rosin Rammler, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = ROSIN_RAMMLER
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Specified Diameter, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = CONST_DIAM
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Specified Diameter, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = CONST_DIAM
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Specified Diameter, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = CONST_DIAM
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Specified Diameter, OUTLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = CONST_DIAM
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Specified Diameter, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = CONST_DIAM
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Uniform in Diameter by Mass, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = UNIFORM_DIAM_MASS
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Uniform in Diameter by Mass, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = UNIFORM_DIAM_MASS
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Uniform in Diameter by Mass, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = UNIFORM_DIAM_MASS
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Uniform in Diameter by Mass, OUTLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = UNIFORM_DIAM_MASS
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Uniform in Diameter by Mass, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = UNIFORM_DIAM_MASS
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Uniform in Diameter by Number, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = UNIFORM_DIAM_NR
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Uniform in Diameter by Number, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = UNIFORM_DIAM_NR
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Uniform in Diameter by Number, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = UNIFORM_DIAM_NR
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Uniform in Diameter by Number, OUTLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = UNIFORM_DIAM_NR
    ENDDIR
  ENDFOR
END

BC: PARTICLE DIAMETER DISTRIBUTION, Uniform in Diameter by Number, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../DIAMETER
    COPDIR: .,../DIAMETER
      CHAR: METHOD = UNIFORM_DIAM_NR
    ENDDIR
  ENDFOR
END

BC: PARTICLE MASS FLOW ABSORPTION, INTERFACE
  COPDIR: ABSORPCOEF,../WALL_ABSORPTION/ABSORPCOEF
  ENDDIR
END

BC: PARTICLE MASS FLOW ABSORPTION, WALL
  COPDIR: ABSORPCOEF,../WALL_ABSORPTION/ABSORPCOEF
  ENDDIR
END

BC: PARTICLE MASS FLOW RATE, INLET
  FOR: Fluid = {CurrentFluidList}
    RENAM: MFLO,MFLO{_Fluid}
  ENDFOR
END

BC: PARTICLE MASS FLOW RATE, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    RENAM: MFLO,MFLO{_Fluid}
  ENDFOR
END

BC: PARTICLE MASS FLOW RATE, OPENING
  FOR: Fluid = {CurrentFluidList}
    RENAM: MFLO,MFLO{_Fluid}
  ENDFOR
END

BC: PARTICLE MASS FLOW RATE, OUTLET
  FOR: Fluid = {CurrentFluidList}
    RENAM: MFLO,MFLO{_Fluid}
  ENDFOR
END

BC: PARTICLE MASS FLOW RATE, WALL
  FOR: Fluid = {CurrentFluidList}
    RENAM: MFLO,MFLO{_Fluid}
  ENDFOR
END

BC: PARTICLE POSITION, Injection at Face Centres, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = DET_FACE_CENTRE
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection at Face Centres, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = DET_FACE_CENTRE
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection at Face Centres, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = DET_FACE_CENTRE
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection at Face Centres, OUTLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = DET_FACE_CENTRE
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection at Face Centres, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = DET_FACE_CENTRE
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection at IP Face Centres, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = DET_IP_FACE_CENTRE
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection at IP Face Centres, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = DET_IP_FACE_CENTRE
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection at IP Face Centres, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = DET_IP_FACE_CENTRE
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection at IP Face Centres, OUTLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = DET_IP_FACE_CENTRE
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection at IP Face Centres, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = DET_IP_FACE_CENTRE
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection with Circular Weighting, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_CIRC_WGT
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection with Circular Weighting, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_CIRC_WGT
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection with Circular Weighting, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_CIRC_WGT
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection with Circular Weighting, OUTLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_CIRC_WGT
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection with Circular Weighting, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_CIRC_WGT
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection with Line Weighting, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_LINE_WGT
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection with Line Weighting, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_LINE_WGT
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection with Line Weighting, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_LINE_WGT
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection with Line Weighting, OUTLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_LINE_WGT
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection with Line Weighting, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_LINE_WGT
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection with Point Weighting, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_POINT_WGT
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection with Point Weighting, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_POINT_WGT
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection with Point Weighting, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_POINT_WGT
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection with Point Weighting, OUTLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_POINT_WGT
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection with Point Weighting, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_POINT_WGT
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection with User Defined Weighting, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_USER_WGT
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection with User Defined Weighting, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_USER_WGT
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection with User Defined Weighting, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_USER_WGT
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection with User Defined Weighting, OUTLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_USER_WGT
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Injection with User Defined Weighting, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_USER_WGT
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Uniform Injection, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_UNIFORM
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Uniform Injection, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_UNIFORM
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Uniform Injection, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_UNIFORM
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Uniform Injection, OUTLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_UNIFORM
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Uniform Injection, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_UNIFORM
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Uniform Injection within Annulus, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_ANNULUS
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Uniform Injection within Annulus, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_ANNULUS
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Uniform Injection within Annulus, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_ANNULUS
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Uniform Injection within Annulus, OUTLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_ANNULUS
    ENDDIR
  ENDFOR
END

BC: PARTICLE POSITION, Uniform Injection within Annulus, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../INJECTION
    COPDIR: .,../INJECTION
      CHAR: METHOD = STOCH_ANNULUS
    ENDDIR
  ENDFOR
END

BC: PARTICLE ROUGH WALL MODEL, None, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../ROUGH_WALL
    COPDIR: .,../ROUGH_WALL
    ENDDIR
  ENDFOR
END

BC: PARTICLE ROUGH WALL MODEL, None, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../ROUGH_WALL
    COPDIR: .,../ROUGH_WALL
    ENDDIR
  ENDFOR
END

BC: PARTICLE ROUGH WALL MODEL, Sommerfeld Frank, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../ROUGH_WALL
    COPDIR: .,../ROUGH_WALL
    ENDDIR
  ENDFOR
END

BC: PARTICLE ROUGH WALL MODEL, Sommerfeld Frank, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../ROUGH_WALL
    COPDIR: .,../ROUGH_WALL
    ENDDIR
  ENDFOR
END

BC: PARTICLE USER WALL INTERACTION, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../USR_WALL_INTERACTION
    COPDIR: .,../USR_WALL_INTERACTION
    ENDDIR
  ENDFOR
END

BC: PARTICLE USER WALL INTERACTION, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../USR_WALL_INTERACTION
    COPDIR: .,../USR_WALL_INTERACTION
    ENDDIR
  ENDFOR
END

BC: PARTICLE WALL FILM INTERACTION, Bai and Gosman, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,../WALL_FILM
    ENDDIR
  ENDFOR
END

BC: PARTICLE WALL FILM INTERACTION, Bai and Gosman, WALL
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,../WALL_FILM
    ENDDIR
  ENDFOR
END

BC: PARTICLE WALL FILM INTERACTION, Elsaesser, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,../WALL_FILM
    ENDDIR
  ENDFOR
END

BC: PARTICLE WALL FILM INTERACTION, Elsaesser, WALL
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,../WALL_FILM
    ENDDIR
  ENDFOR
END

BC: PARTICLE WALL FILM INTERACTION, Stick to Wall, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,../WALL_FILM
    ENDDIR
  ENDFOR
END

BC: PARTICLE WALL FILM INTERACTION, Stick to Wall, WALL
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,../WALL_FILM
    ENDDIR
  ENDFOR
END

BC: PARTICLE WALL FILM INTERACTION, User Defined, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,../USR_WALL_FILM
    ENDDIR
  ENDFOR
END

BC: PARTICLE WALL FILM INTERACTION, User Defined, WALL
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,../USR_WALL_FILM
    ENDDIR
  ENDFOR
END

BC: PARTICLE WALL FILM INTERACTION, Wachters and Westerling, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,../WALL_FILM
    ENDDIR
  ENDFOR
END

BC: PARTICLE WALL FILM INTERACTION, Wachters and Westerling, WALL
  FOR: Fluid = {CurrentFluidList}
    COPDIR: .,../WALL_FILM
    ENDDIR
  ENDFOR
END

BC: PARTICLE WALL INTERACTION, Equation Dependent, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../WALL_INTERACTION
    COPDIR: .,../WALL_INTERACTION
    ENDDIR
  ENDFOR
END

BC: PARTICLE WALL INTERACTION, Equation Dependent, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../WALL_INTERACTION
    COPDIR: .,../WALL_INTERACTION
    ENDDIR
  ENDFOR
END

BC: PARTICLE WALL INTERACTION, Wall Film, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../WALL_INTERACTION
    COPDIR: .,../WALL_INTERACTION
    ENDDIR
  ENDFOR
END

BC: PARTICLE WALL INTERACTION, Wall Film, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../WALL_INTERACTION
    COPDIR: .,../WALL_INTERACTION
    ENDDIR
  ENDFOR
END

BC: POST FLAME REACTION PROGRESS, Carbon Monoxide, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: MASFRC, TSSMFC{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TSSMFC
    ENDDIR
    CHAR: PFRPV{_Fluid}/BCTYPE = SPEC_VAR_TSSMFC
  ENDFOR
END

BC: POST FLAME REACTION PROGRESS, Carbon Monoxide, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: MASFRC, TSSMFC{_Fluid}
      CHAR: BCTYPE = OPENING_TSSMFC
    ENDDIR
    CHAR: PFRPV{_Fluid}/BCTYPE = OPENING_TSSMFC
  ENDFOR
END

BC: POST FLAME REACTION PROGRESS, Chemical Equilibrium, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: TSSMFC{_Fluid}/BCTYPE = SPEC_VAR_PFRPV
    COPDIR: PFRPV, PFRPV{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_PFRPV
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 1.0
    ENDDIR
  ENDFOR
END

BC: POST FLAME REACTION PROGRESS, Chemical Equilibrium, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: TSSMFC{_Fluid}/BCTYPE = OPENING_PFRPV
    COPDIR: PFRPV, PFRPV{_Fluid}
      CHAR: BCTYPE = OPENING_PFRPV
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 1.0
    ENDDIR
  ENDFOR
END

BC: POST FLAME REACTION PROGRESS, Conservative Interface Flux, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: TSSMFC{_Fluid}/BCTYPE = ZIF
    CHAR: PFRPV{_Fluid}/BCTYPE = ZIF
  ENDFOR
END

BC: POST FLAME REACTION PROGRESS, Post Flame Reaction Progress, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: TSSMFC{_Fluid}/BCTYPE = SPEC_VAR_PFRPV
    COPDIR: PFRPV, PFRPV{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_PFRPV
    ENDDIR
  ENDFOR
END

BC: POST FLAME REACTION PROGRESS, Post Flame Reaction Progress, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: TSSMFC{_Fluid}/BCTYPE = OPENING_PFRPV
    COPDIR: PFRPV, PFRPV{_Fluid}
      CHAR: BCTYPE = OPENING_PFRPV
    ENDDIR
  ENDFOR
END

BC: PRESSURE AVERAGING, Average Above Specified Radius, OUTLET
  COPDIR: RADIUS
     CHAR: METHOD = ABOVE
     CHAR: BCTYPE = SPEC_VAR_RADIUS
  ENDDIR
  CHAR: PRESAV/METHOD = ABOVE
END

BC: PRESSURE AVERAGING, Average Below Specified Radius, OUTLET
  COPDIR: RADIUS
     CHAR: METHOD = BELOW
     CHAR: BCTYPE = SPEC_VAR_RADIUS
  ENDDIR
  CHAR: PRESAV/METHOD = BELOW
END

BC: PRESSURE AVERAGING, Average Over Whole Outlet, OUTLET
  CHAR: RADIUS/METHOD = OVERALL
  CHAR: PRESAV/METHOD = OVERALL
END

BC: PRESSURE AVERAGING, Circumferential, OUTLET
  CASE: {SourceDir}/{MmsName}/AXIS/AROT, {SourceDir}/{MmsName}/AXIS/BROT
  IS: *DIR*,*DIR*
    FOR: Fluid = {CurrentFluidList}
      COPDIR: AXIS/AROT, AXIS/AROT{_Fluid}
      ENDDIR
      COPDIR: AXIS/BROT, AXIS/BROT{_Fluid}
      ENDDIR
    ENDFOR
  IS: *DIR*,*NONE*
     MESAGE: Invalid OUTLET rotation axis specification
     EXIT
  IS: *NONE*,*DIR*
     MESAGE: Invalid OUTLET rotation axis specification
     EXIT
  ENDCASE
  MAKDIR: CBAND
    INTR: NCBAND
  ENDDIR
  CHAR: PRESAV/METHOD = CIRCUMFERENTIAL

  CASE: {SourceDir}/{MmsName}/PROF_BLEND
  IS: *DIR*
    COPDIR: PROF_BLEND,PROF_BLEND_CIRC
    ENDDIR
  ENDCASE

END

BC: PRESSURE AVERAGING, None, OUTLET
  // Don't do anything
END

BC: PRESSURE AVERAGING, Radial Equilibrium, OUTLET
  CASE: {SourceDir}/{MmsName}/AXIS/AROT, {SourceDir}/{MmsName}/AXIS/BROT
  IS: *DIR*,*DIR*
    FOR: Fluid = {CurrentFluidList}
      COPDIR: AXIS/AROT, AXIS/AROT{_Fluid}
      ENDDIR
      COPDIR: AXIS/BROT, AXIS/BROT{_Fluid}
      ENDDIR
    ENDFOR
  IS: *DIR*,*NONE*
     MESAGE: Invalid OUTLET rotation axis specification
     EXIT
  IS: *NONE*,*DIR*
     MESAGE: Invalid OUTLET rotation axis specification
     EXIT
  ENDCASE
  MAKDIR: CBAND
    INTR: NCBAND
  ENDDIR
  COPDIR: RAD_REF_POS
  ENDDIR
  CHAR: PRESAV/METHOD = RADIAL_EQUILIBRIUM
END

BC: REACTION PROGRESS, Burned Gases, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: WRPV{_Fluid}/BCTYPE = SPEC_VAR_REACPROG
    COPDIR: REACPROG, REACPROG{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_REACPROG
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 1.0
    ENDDIR
  ENDFOR
END

BC: REACTION PROGRESS, Burned Gases, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: WRPV{_Fluid}/BCTYPE = OPENING_REACPROG
    COPDIR: REACPROG, REACPROG{_Fluid}
      CHAR: BCTYPE = OPENING_REACPROG
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 1.0
    ENDDIR
  ENDFOR
END

BC: REACTION PROGRESS, Conservative Interface Flux, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: WRPV{_Fluid}/BCTYPE     = ZIF
    CHAR: REACPROG{_Fluid}/BCTYPE = ZIF
  ENDFOR
END

BC: REACTION PROGRESS, Fresh Gases, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: WRPV{_Fluid}/BCTYPE = SPEC_VAR_REACPROG
    COPDIR: REACPROG, REACPROG{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_REACPROG
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
  ENDFOR
END

BC: REACTION PROGRESS, Fresh Gases, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: WRPV{_Fluid}/BCTYPE = OPENING_REACPROG
    COPDIR: REACPROG, REACPROG{_Fluid}
      CHAR: BCTYPE = OPENING_REACPROG
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.0
    ENDDIR
  ENDFOR
END

BC: REACTION PROGRESS, Reaction Progress, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: WRPV{_Fluid}/BCTYPE = SPEC_VAR_REACPROG
    COPDIR: REACPROG, REACPROG{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_REACPROG
    ENDDIR
  ENDFOR
END

BC: REACTION PROGRESS, Reaction Progress, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: WRPV{_Fluid}/BCTYPE = OPENING_REACPROG
    COPDIR: REACPROG, REACPROG{_Fluid}
      CHAR: BCTYPE = OPENING_REACPROG
    ENDDIR
  ENDFOR
END

BC: REACTION PROGRESS, Zero Gradient, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: WRPV{_Fluid}/BCTYPE     = ZERO_GRAD
    CHAR: REACPROG{_Fluid}/BCTYPE = ZERO_GRAD

    CASE: {SourceDir}/{MmsName}/ELIMFAC
    IS: *DIR*
      COPDIR: ELIMFAC, REACPROG{_Fluid}/ELIMFAC
      ENDDIR
    ENDCASE

    CASE: {SourceDir}/{MmsName}/BETA
    IS: *DIR*
      COPDIR: BETA, REACPROG{_Fluid}/BETA
      ENDDIR
    ENDCASE
  ENDFOR
END

BC: REACTION PROGRESS, Zero Gradient, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: WRPV{_Fluid}/BCTYPE     = ZERO_GRAD
    CHAR: REACPROG{_Fluid}/BCTYPE = ZERO_GRAD

    CASE: {SourceDir}/{MmsName}/ELIMFAC
    IS: *DIR*
      COPDIR: ELIMFAC, REACPROG{_Fluid}/ELIMFAC
      ENDDIR
    ENDCASE

    CASE: {SourceDir}/{MmsName}/BETA
    IS: *DIR*
      COPDIR: BETA, REACPROG{_Fluid}/BETA
      ENDDIR
    ENDCASE
  ENDFOR
END

BC: SIZE GROUP, Automatic, INLET
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: SIZFRC{_SizeGroup}{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_AUTO_SIZFRC
    ENDDIR
    MAKDIR: SIZSCLW{_SizeGroup}{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_AUTO_SIZSCLW
    ENDDIR
  ENDFOR
END

BC: SIZE GROUP, Automatic, OPENING
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: SIZFRC{_SizeGroup}{_Fluid}
      CHAR: BCTYPE = OPENING_AUTO_SIZFRC
    ENDDIR
    MAKDIR: SIZSCLW{_SizeGroup}{_Fluid}
      CHAR: BCTYPE = OPENING_AUTO_SIZSCLW
    ENDDIR
  ENDFOR
END

BC: SIZE GROUP, Conservative Interface Flux, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: BCTYPE = ZIF
  ENDFOR
END

BC: SIZE GROUP, Value, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: SIZFRC, SIZFRC{_SizeGroup}{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_SIZFRC
    ENDDIR
    COPDIR: SIZSCLW, SIZSCLW{_SizeGroup}{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_SIZSCLW
    ENDDIR
  ENDFOR
END

BC: SIZE GROUP, Value, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: SIZFRC, SIZFRC{_SizeGroup}{_Fluid}
      CHAR: BCTYPE = OPENING_SIZFRC
    ENDDIR
    COPDIR: SIZSCLW, SIZSCLW{_SizeGroup}{_Fluid}
      CHAR: BCTYPE = OPENING_SIZSCLW
    ENDDIR
  ENDFOR
END

BC: SOLID MOTION ADVECTION, INLET
  LOGL: LBNDADVECT, LBNDADVECT
END

BC: SOLID MOTION ADVECTION, INTERFACE
  LOGL: LBNDADVECT, LBNDADVECT
END

BC: SOLID MOTION ADVECTION, OPENING
  LOGL: LBNDADVECT, LBNDADVECT
END

BC: SOLID MOTION ADVECTION, OUTLET
  LOGL: LBNDADVECT, LBNDADVECT
END

BC: SOLID MOTION ADVECTION, WALL
  LOGL: LBNDADVECT, LBNDADVECT
END
   
BC: SOOT, Conservative Interface Flux, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: SOOTMF{_Fluid}/BCTYPE = ZIF
    CHAR: SOOTNCL{_Fluid}/BCTYPE = ZIF
  ENDFOR
END

BC: SOOT, Mass Concentration and Nuclei Concentration, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: SOOTMF{_Fluid}/BCTYPE = SPEC_VAR_MASCON
    CHAR: SOOTNCL{_Fluid}/BCTYPE = SPEC_VAR_MOLCON

    COPDIR: MASCON, MASCON_SOOTMF{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MASCON
    ENDDIR
    COPDIR: MOLCON_SOOTNCL, MOLCON_SOOTNCL{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MOLCON
    ENDDIR
  ENDFOR
END

BC: SOOT, Mass Concentration and Nuclei Concentration, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: SOOTMF{_Fluid}/BCTYPE = OPENING_MASCON
    CHAR: SOOTNCL{_Fluid}/BCTYPE = OPENING_MOLCON

    COPDIR: MASCON, MASCON_SOOTMF{_Fluid}
      CHAR: BCTYPE = OPENING_MASCON
    ENDDIR
    COPDIR: MOLCON_SOOTNCL, MOLCON_SOOTNCL{_Fluid}
      CHAR: BCTYPE = OPENING_MOLCON
    ENDDIR
  ENDFOR
END

BC: SOOT, Mass Fraction and Nuclei Specific Concentration, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: MASFRC, SOOTMF{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_SOOTMF
    ENDDIR
    COPDIR: SOOTNCL, SOOTNCL{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_SOOTNCL
    ENDDIR
  ENDFOR
END

BC: SOOT, Mass Fraction and Nuclei Specific Concentration, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: MASFRC, SOOTMF{_Fluid}
      CHAR: BCTYPE = OPENING_SOOTMF
    ENDDIR
    COPDIR: SOOTNCL, SOOTNCL{_Fluid}
      CHAR: BCTYPE = OPENING_SOOTNCL
    ENDDIR
  ENDFOR
END

BC: TEMPERATURE VARIANCE, Fluctuation Level, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: TVAR{_Fluid}/BCTYPE = SPEC_VAR_TFLUCLEVEL
    COPDIR: FLUCLEVEL, TFLUCLEVEL{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TFLUCLEVEL
    ENDDIR
  ENDFOR
END

BC: TEMPERATURE VARIANCE, Fluctuation Level, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: TVAR{_Fluid}/BCTYPE = OPENING_TFLUCLEVEL
    COPDIR: FLUCLEVEL, TFLUCLEVEL{_Fluid}
      CHAR: BCTYPE = OPENING_TFLUCLEVEL
    ENDDIR
  ENDFOR
END

BC: TEMPERATURE VARIANCE, Temperature Fluctuation, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: TVAR{_Fluid}/BCTYPE = SPEC_VAR_TFLUC
    COPDIR: TFLUC, TFLUC{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TFLUC
    ENDDIR
  ENDFOR
END

BC: TEMPERATURE VARIANCE, Temperature Fluctuation, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: TVAR{_Fluid}/BCTYPE = OPENING_TFLUC
    COPDIR: TFLUC, TFLUC{_Fluid}
      CHAR: BCTYPE = OPENING_TFLUC
    ENDDIR
  ENDFOR
END

BC: TEMPERATURE VARIANCE, Temperature Variance, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: TVAR, TVAR{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TVAR
    ENDDIR
  ENDFOR
END

BC: TEMPERATURE VARIANCE, Temperature Variance, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: TVAR, TVAR{_Fluid}
      CHAR: BCTYPE = OPENING_TVAR
    ENDDIR
  ENDFOR
END

BC: THERMAL RADIATION, Conservative Interface Flux, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: RADINT{_Fluid}/BCTYPE = ZIF
  ENDFOR
  FOR: Solid = {CurrentSolidList}
    CHAR: RADINT{_Solid}/BCTYPE = ZIF
  ENDFOR
END

BC: THERMAL RADIATION, Conservative Interface Flux, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: RADINT{_Fluid}/BCTYPE = ZIF
  ENDFOR
  FOR: Solid = {CurrentSolidList}
    CHAR: RADINT{_Solid}/BCTYPE = ZIF
  ENDFOR
END

BC: THERMAL RADIATION, External Blackbody Temperature, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: TBLACK, TBLACK{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TBLACK
    ENDDIR
    CASE: {TargetDir}/RADINT{_Fluid}
    IS: *NONE*
      CHAR: RADINT{_Fluid}/BCTYPE = SPEC_FTC
    ENDCASE
  ENDFOR
END

BC: THERMAL RADIATION, External Blackbody Temperature, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: TBLACK, TBLACK{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TBLACK
    ENDDIR
    CASE: {TargetDir}/RADINT{_Fluid}
    IS: *NONE*
      CHAR: RADINT{_Fluid}/BCTYPE = SPEC_FTC
    ENDCASE
  ENDFOR
END

BC: THERMAL RADIATION, External Blackbody Temperature, OUTLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: TBLACK, TBLACK{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TBLACK
    ENDDIR
    CASE: {TargetDir}/RADINT{_Fluid}
    IS: *NONE*
      CHAR: RADINT{_Fluid}/BCTYPE = SPEC_FTC
    ENDCASE
  ENDFOR
END

BC: THERMAL RADIATION, Fluid Dependent, INLET
END

BC: THERMAL RADIATION, Fluid Dependent, INTERFACE
END

BC: THERMAL RADIATION, Fluid Dependent, OPENING
END

BC: THERMAL RADIATION, Fluid Dependent, OUTLET
END

BC: THERMAL RADIATION, Local Temperature, INLET
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/RADINT{_Fluid}
    IS: *NONE*
      CHAR: RADINT{_Fluid}/BCTYPE = SPEC_FTC
    ENDCASE

    CASE: {SourceDir}/{MmsName}/EMIS
    IS: *DIR*
      COPDIR: EMIS, EMIS{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_EMIS
      ENDDIR
    ENDCASE
  ENDFOR
END

BC: THERMAL RADIATION, Local Temperature, OPENING
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/RADINT{_Fluid}
    IS: *NONE*
      CHAR: RADINT{_Fluid}/BCTYPE = SPEC_FTC
    ENDCASE

    CASE: {SourceDir}/{MmsName}/EMIS
    IS: *DIR*
      COPDIR: EMIS, EMIS{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_EMIS
      ENDDIR
    ENDCASE
  ENDFOR
END

BC: THERMAL RADIATION, Local Temperature, OUTLET
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/RADINT{_Fluid}
    IS: *NONE*
      CHAR: RADINT{_Fluid}/BCTYPE = SPEC_FTC
    ENDCASE

    CASE: {SourceDir}/{MmsName}/EMIS
    IS: *DIR*
      COPDIR: EMIS, EMIS{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_EMIS
      ENDDIR
    ENDCASE
  ENDFOR
END

BC: THERMAL RADIATION, Opaque, INLET
  COPDIR: DIFFRC, DIFFRC
    CHAR: BCTYPE = SPEC_VAR_DIFFRC
  ENDDIR
  COPDIR: COARSENING
  ENDDIR
  FOR: Fluid = {CurrentFluidList}
    CHAR: RADINT{_Fluid}/BCTYPE = SPEC_FTC
    COPDIR: EMIS, EMIS{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_EMIS
    ENDDIR
  ENDFOR
END

BC: THERMAL RADIATION, Opaque, INTERFACE
  COPDIR: DIFFRC, DIFFRC
    CHAR: BCTYPE = SPEC_VAR_DIFFRC
  ENDDIR
  COPDIR: COARSENING
  ENDDIR
  FOR: Fluid = {CurrentFluidList}
    CHAR: RADINT{_Fluid}/BCTYPE = SPEC_FTC
    COPDIR: EMIS, EMIS{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_EMIS
    ENDDIR
  ENDFOR
  FOR: Solid = {CurrentSolidList}
    CHAR: RADINT{_Solid}/BCTYPE = SPEC_FTC
    COPDIR: EMIS, EMIS{_Solid}
      CHAR: BCTYPE = SPEC_VAR_EMIS
    ENDDIR
  ENDFOR
END

BC: THERMAL RADIATION, Opaque, OPENING
  COPDIR: DIFFRC, DIFFRC
    CHAR: BCTYPE = SPEC_VAR_DIFFRC
  ENDDIR
  COPDIR: COARSENING
  ENDDIR
  FOR: Fluid = {CurrentFluidList}
    CHAR: RADINT{_Fluid}/BCTYPE = SPEC_FTC
    COPDIR: EMIS, EMIS{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_EMIS
    ENDDIR
  ENDFOR
END

BC: THERMAL RADIATION, Opaque, OUTLET
  COPDIR: DIFFRC, DIFFRC
    CHAR: BCTYPE = SPEC_VAR_DIFFRC
  ENDDIR
  COPDIR: COARSENING
  ENDDIR
  FOR: Fluid = {CurrentFluidList}
    CHAR: RADINT{_Fluid}/BCTYPE = SPEC_FTC
    COPDIR: EMIS, EMIS{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_EMIS
    ENDDIR
  ENDFOR
END

BC: THERMAL RADIATION, Opaque, WALL
  COPDIR: DIFFRC, DIFFRC
    CHAR: BCTYPE = SPEC_VAR_DIFFRC
  ENDDIR
  COPDIR: COARSENING
  ENDDIR
  FOR: Fluid = {CurrentFluidList}
    CHAR: RADINT{_Fluid}/BCTYPE = SPEC_FTC
    COPDIR: EMIS, EMIS{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_EMIS
    ENDDIR
  ENDFOR
  FOR: Solid = {CurrentSolidList}
    CHAR: RADINT{_Solid}/BCTYPE = SPEC_FTC
    COPDIR: EMIS, EMIS{_Solid}
      CHAR: BCTYPE = SPEC_VAR_EMIS
    ENDDIR
  ENDFOR
END

BC: THERMAL RADIATION, Semitransparent, WALL
  COPDIR: DIFFRC, DIFFRC
    CHAR: BCTYPE = SPEC_VAR_DIFFRC
  ENDDIR
  COPDIR: REFRAC_EXT, REFRAC_EXT
    CHAR: BCTYPE = SPEC_VAR_REFRAC_EXT
  ENDDIR
  COPDIR: COARSENING
  ENDDIR
  FOR: Fluid = {CurrentFluidList}
    CHAR: RADINT{_Fluid}/BCTYPE = SPEC_VAR_REFRAC_EXT
  ENDFOR
  FOR: Solid = {CurrentSolidList}
    CHAR: RADINT{_Solid}/BCTYPE = SPEC_VAR_REFRAC_EXT
  ENDFOR
END

BC: THERMAL RADIATION, Radiation Intensity, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: RADINT, RADINT{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_RADINT
    ENDDIR
  ENDFOR
END

BC: THERMAL RADIATION, Radiation Intensity, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: RADINT, RADINT{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_RADINT
    ENDDIR
  ENDFOR
END

BC: THERMAL RADIATION, Radiation Intensity, OUTLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: RADINT, RADINT{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_RADINT
    ENDDIR
  ENDFOR
END

BC: THERMAL RADIATION, Radiative Heat Flux, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: RADFLX, RADFLX{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_RADFLX
    ENDDIR
    MAKDIR: RADINT{_Fluid}
      CHAR: BCTYPE = SPEC_FLUX
    ENDDIR
  ENDFOR
END

BC: THERMAL RADIATION, Radiative Heat Flux, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: RADFLX, RADFLX{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_RADFLX
    ENDDIR
    MAKDIR: RADINT{_Fluid}
      CHAR: BCTYPE = SPEC_FLUX
    ENDDIR
  ENDFOR
END

BC: THERMAL RADIATION, Radiative Heat Flux, OUTLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: RADFLX, RADFLX{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_RADFLX
    ENDDIR
    MAKDIR: RADINT{_Fluid}
      CHAR: BCTYPE = SPEC_FLUX
    ENDDIR
  ENDFOR
END

BC: TRANSITIONAL INTERMITTENCY, Value, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: INTERMIT, INTERMTC{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_INTERMTC
    ENDDIR
  ENDFOR
END

BC: TRANSITIONAL INTERMITTENCY, Value, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: INTERMIT, INTERMTC{_Fluid}
      CHAR: BCTYPE = OPENING_INTERMTC
    ENDDIR
  ENDFOR
END

BC: TRANSITIONAL RETHETAT, Transition Onset Correlation, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: RETRNONS{_Fluid}/BCTYPE = SPEC_VAR_RETRNCOR
  ENDFOR
END

BC: TRANSITIONAL RETHETAT, Transition Onset Correlation, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: RETRNONS{_Fluid}/BCTYPE = OPENING_RETRNCOR
  ENDFOR
END

BC: TRANSITIONAL RETHETAT, Value, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: RETRNONS, RETRNONS{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_RETRNONS
    ENDDIR
  ENDFOR
END


BC: TRANSITIONAL RETHETAT, Value, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: RETRNONS, RETRNONS{_Fluid}
      CHAR: BCTYPE = OPENING_RETRNONS
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, Conservative Interface Flux, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = ZIF
    CHAR: TED{_Fluid}/BCTYPE = ZIF
    CHAR: RS{_Fluid}/BCTYPE  = ZIF
    CHAR: TEF{_Fluid}/BCTYPE = ZIF
    CHAR: VISKTRB{_Fluid}/BCTYPE = ZIF
    CHAR: INTERMTC{_Fluid}/BCTYPE = ZIF
    CHAR: RETRNONS{_Fluid}/BCTYPE = ZIF
  ENDFOR
END

BC: TURBULENCE, Default Intensity and Autocompute Length Scale, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = SPEC_VAR_TKI
    CHAR: TED{_Fluid}/BCTYPE = SPEC_VAR_TKI // formerly SPEC_VAR_AUTO
    CHAR: RS{_Fluid}/BCTYPE  = SPEC_VAR_TKI
    CHAR: TEF{_Fluid}/BCTYPE = SPEC_VAR_TKI
    CHAR: VISKTRB{_Fluid}/BCTYPE = SPEC_VAR_TKI
 
    MAKDIR: TKI{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TKI
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.037
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, Default Intensity and Autocompute Length Scale, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = OPENING_TKI
    CHAR: TED{_Fluid}/BCTYPE = OPENING_TKI // formerly SPEC_VAR_AUTO
    CHAR: RS{_Fluid}/BCTYPE  = OPENING_TKI
    CHAR: TEF{_Fluid}/BCTYPE = OPENING_TKI
    CHAR: VISKTRB{_Fluid}/BCTYPE = OPENING_TKI
 
    MAKDIR: TKI{_Fluid}
      CHAR: BCTYPE = OPENING_TKI
      CHAR: HOW = CONSTANT
      INTR: NVALUES = 1
      REAL: VALUE = 0.037
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, Fluid Dependent, INLET
END

BC: TURBULENCE, Fluid Dependent, INTERFACE
END

BC: TURBULENCE, Fluid Dependent, OPENING
END

BC: TURBULENCE, High Intensity and Eddy Viscosity Ratio, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = SPEC_VAR_TKI
    CHAR: TED{_Fluid}/BCTYPE = SPEC_VAR_TVR
    CHAR: RS{_Fluid}/BCTYPE  = SPEC_VAR_TKI
    CHAR: TEF{_Fluid}/BCTYPE = SPEC_VAR_TVR
    CHAR: VISKTRB{_Fluid}/BCTYPE = SPEC_VAR_TVR
 
    CASE: {SourceDir}/{MmsName}/TKI
    IS: *DIR*
      COPDIR: TKI, TKI{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_TKI
      ENDDIR
    ELSE
      MAKDIR: TKI{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_TKI
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 1
        REAL: VALUE = 0.1
      ENDDIR
    ENDCASE

    CASE: {SourceDir}/{MmsName}/TKI
    IS: *DIR*
      COPDIR: TVR, TVR{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_TVR
      ENDDIR
    ELSE
      MAKDIR: TVR{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_TVR
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 1
        REAL: VALUE = 100.
      ENDDIR
    ENDCASE
  ENDFOR
END

BC: TURBULENCE, High Intensity and Eddy Viscosity Ratio, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = OPENING_TKI
    CHAR: TED{_Fluid}/BCTYPE = OPENING_TVR
    CHAR: RS{_Fluid}/BCTYPE  = OPENING_TKI
    CHAR: TEF{_Fluid}/BCTYPE = OPENING_TVR
    CHAR: VISKTRB{_Fluid}/BCTYPE = OPENING_TVR
 
    CASE: {SourceDir}/{MmsName}/TKI
    IS: *DIR*
      COPDIR: TKI, TKI{_Fluid}
        CHAR: BCTYPE = OPENING_TKI
      ENDDIR
    ELSE
      MAKDIR: TKI{_Fluid}
        CHAR: BCTYPE = OPENING_TKI
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 1
        REAL: VALUE = 0.1
      ENDDIR
    ENDCASE

    CASE: {SourceDir}/{MmsName}/TKI
    IS: *DIR*
      COPDIR: TVR, TVR{_Fluid}
        CHAR: BCTYPE = OPENING_TVR
      ENDDIR
    ELSE
      MAKDIR: TVR{_Fluid}
        CHAR: BCTYPE = OPENING_TVR
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 1
        REAL: VALUE = 100.
      ENDDIR
    ENDCASE
  ENDFOR
END

BC: TURBULENCE, Intensity and Auto Compute Length, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = SPEC_VAR_TKI
    CHAR: TED{_Fluid}/BCTYPE = SPEC_VAR_TKI // formerly SPEC_VAR_AUTO
    CHAR: RS{_Fluid}/BCTYPE  = SPEC_VAR_TKI
    CHAR: TEF{_Fluid}/BCTYPE = SPEC_VAR_TKI
    CHAR: VISKTRB{_Fluid}/BCTYPE = SPEC_VAR_TKI
 
    COPDIR: TKI, TKI{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TKI
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, Intensity and Auto Compute Length, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = OPENING_TKI
    CHAR: TED{_Fluid}/BCTYPE = OPENING_TKI // formerly SPEC_VAR_AUTO
    CHAR: RS{_Fluid}/BCTYPE  = OPENING_TKI
    CHAR: TEF{_Fluid}/BCTYPE = OPENING_TKI
    CHAR: VISKTRB{_Fluid}/BCTYPE = OPENING_TKI
  
    COPDIR: TKI, TKI{_Fluid}
      CHAR: BCTYPE = OPENING_TKI
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, Intensity and Eddy Viscosity Ratio, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = SPEC_VAR_TKI
    CHAR: TED{_Fluid}/BCTYPE = SPEC_VAR_TVR
    CHAR: RS{_Fluid}/BCTYPE  = SPEC_VAR_TKI
    CHAR: TEF{_Fluid}/BCTYPE = SPEC_VAR_TVR
    CHAR: VISKTRB{_Fluid}/BCTYPE = SPEC_VAR_TVR
 
    COPDIR: TKI, TKI{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TKI
    ENDDIR

    COPDIR: TVR, TVR{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TVR
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, Intensity and Eddy Viscosity Ratio, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = OPENING_TKI
    CHAR: TED{_Fluid}/BCTYPE = OPENING_TVR
    CHAR: RS{_Fluid}/BCTYPE  = OPENING_TKI
    CHAR: TEF{_Fluid}/BCTYPE = OPENING_TVR
    CHAR: VISKTRB{_Fluid}/BCTYPE = OPENING_TVR
  
    COPDIR: TKI, TKI{_Fluid}
      CHAR: BCTYPE = OPENING_TKI
    ENDDIR

    COPDIR: TVR, TVR{_Fluid}
      CHAR: BCTYPE = OPENING_TVR
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, Intensity and Length Scale, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = SPEC_VAR_TKI
    CHAR: TED{_Fluid}/BCTYPE = SPEC_VAR_TLS
    CHAR: RS{_Fluid}/BCTYPE  = SPEC_VAR_TKI
    CHAR: TEF{_Fluid}/BCTYPE = SPEC_VAR_TLS
    CHAR: VISKTRB{_Fluid}/BCTYPE = SPEC_VAR_TLS

    COPDIR: TKI, TKI{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TKI
    ENDDIR
    COPDIR: TLS, TLS{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TLS
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, Intensity and Length Scale, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = OPENING_TKI
    CHAR: TED{_Fluid}/BCTYPE = OPENING_TLS
    CHAR: RS{_Fluid}/BCTYPE  = OPENING_TKI
    CHAR: TEF{_Fluid}/BCTYPE = OPENING_TLS
    CHAR: VISKTRB{_Fluid}/BCTYPE = OPENING_TLS

    COPDIR: TKI, TKI{_Fluid}
      CHAR: BCTYPE = OPENING_TKI
    ENDDIR
    COPDIR: TLS, TLS{_Fluid}
      CHAR: BCTYPE = OPENING_TLS
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, k and Eddy Viscosity Ratio, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: RS{_Fluid}/BCTYPE  = SPEC_VAR_TKE
    CHAR: TED{_Fluid}/BCTYPE = SPEC_VAR_TVR
    CHAR: TEF{_Fluid}/BCTYPE = SPEC_VAR_TVR
    CHAR: VISKTRB{_Fluid}/BCTYPE = SPEC_VAR_TVR

    COPDIR: TKE, TKE{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TKE
    ENDDIR

    COPDIR: TVR, TVR{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TVR
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, k and Eddy Viscosity Ratio, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: RS{_Fluid}/BCTYPE  = OPENING_TKE
    CHAR: TED{_Fluid}/BCTYPE = OPENING_TVR
    CHAR: TEF{_Fluid}/BCTYPE = OPENING_TVR
    CHAR: VISKTRB{_Fluid}/BCTYPE = OPENING_TVR

    COPDIR: TKE, TKE{_Fluid}
      CHAR: BCTYPE = OPENING_TKE
    ENDDIR

    COPDIR: TVR, TVR{_Fluid}
      CHAR: BCTYPE = OPENING_TVR
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, k and Epsilon, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: RS{_Fluid}/BCTYPE  = SPEC_VAR_TKE
    CHAR: TEF{_Fluid}/BCTYPE = SPEC_VAR_TED
    CHAR: VISKTRB{_Fluid}/BCTYPE = SPEC_VAR_TED

    COPDIR: TKE, TKE{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TKE
    ENDDIR

    COPDIR: TED, TED{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TED
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, k and Epsilon, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: RS{_Fluid}/BCTYPE  = OPENING_TKE
    CHAR: TEF{_Fluid}/BCTYPE = OPENING_TED
    CHAR: VISKTRB{_Fluid}/BCTYPE = OPENING_TED

    COPDIR: TKE, TKE{_Fluid}
      CHAR: BCTYPE = OPENING_TKE
    ENDDIR

    COPDIR: TED, TED{_Fluid}
      CHAR: BCTYPE = OPENING_TED
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, k and Length Scale, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: RS{_Fluid}/BCTYPE  = SPEC_VAR_TKE
    CHAR: TED{_Fluid}/BCTYPE = SPEC_VAR_TLS
    CHAR: TEF{_Fluid}/BCTYPE = SPEC_VAR_TLS
    CHAR: VISKTRB{_Fluid}/BCTYPE = SPEC_VAR_TLS

    COPDIR: TKE, TKE{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TKE
    ENDDIR

    COPDIR: TLS, TLS{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TLS
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, k and Length Scale, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: RS{_Fluid}/BCTYPE  = OPENING_TKE
    CHAR: TED{_Fluid}/BCTYPE = OPENING_TLS
    CHAR: TEF{_Fluid}/BCTYPE = OPENING_TLS
    CHAR: VISKTRB{_Fluid}/BCTYPE = OPENING_TLS

    COPDIR: TKE, TKE{_Fluid}
      CHAR: BCTYPE = OPENING_TKE
    ENDDIR

    COPDIR: TLS, TLS{_Fluid}
      CHAR: BCTYPE = OPENING_TLS
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, k and Omega, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: RS{_Fluid}/BCTYPE  = SPEC_VAR_TKE
    CHAR: TED{_Fluid}/BCTYPE = SPEC_VAR_TEF
    CHAR: VISKTRB{_Fluid}/BCTYPE = SPEC_VAR_TEF

    COPDIR: TKE, TKE{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TKE
    ENDDIR

    COPDIR: TEF, TEF{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TEF
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, k and Omega, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: RS{_Fluid}/BCTYPE  = OPENING_TKE
    CHAR: TED{_Fluid}/BCTYPE = OPENING_TEF
    CHAR: VISKTRB{_Fluid}/BCTYPE = OPENING_TEF

    COPDIR: TKE, TKE{_Fluid}
      CHAR: BCTYPE = OPENING_TKE
    ENDDIR

    COPDIR: TEF, TEF{_Fluid}
      CHAR: BCTYPE = OPENING_TEF
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, Kinematic Eddy Viscosity, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: VISKTRB, VISKTRB{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_VISKTRB
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, Kinematic Eddy Viscosity, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: VISKTRB, VISKTRB{_Fluid}
      CHAR: BCTYPE = OPENING_VISKTRB
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, Low Intensity and Eddy Viscosity Ratio, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = SPEC_VAR_TKI
    CHAR: TED{_Fluid}/BCTYPE = SPEC_VAR_TVR
    CHAR: RS{_Fluid}/BCTYPE  = SPEC_VAR_TKI
    CHAR: TEF{_Fluid}/BCTYPE = SPEC_VAR_TVR
    CHAR: VISKTRB{_Fluid}/BCTYPE = SPEC_VAR_TVR
 
    CASE: {SourceDir}/{MmsName}/TKI
    IS: *DIR*
      COPDIR: TKI, TKI{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_TKI
      ENDDIR
    ELSE
      MAKDIR: TKI{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_TKI
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 1
        REAL: VALUE = 0.01
      ENDDIR
    ENDCASE

    CASE: {SourceDir}/{MmsName}/TVR
    IS: *DIR*
      COPDIR: TVR, TVR{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_TVR
      ENDDIR
    ELSE
      MAKDIR: TVR{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_TVR
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 1
        REAL: VALUE = 1.
      ENDDIR
    ENDCASE
  ENDFOR
END

BC: TURBULENCE, Low Intensity and Eddy Viscosity Ratio, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = OPENING_TKI
    CHAR: TED{_Fluid}/BCTYPE = OPENING_TVR
    CHAR: RS{_Fluid}/BCTYPE  = OPENING_TKI
    CHAR: TEF{_Fluid}/BCTYPE = OPENING_TVR
    CHAR: VISKTRB{_Fluid}/BCTYPE = OPENING_TVR
 
    CASE: {SourceDir}/{MmsName}/TKI
    IS: *DIR*
      COPDIR: TKI, TKI{_Fluid}
        CHAR: BCTYPE = OPENING_TKI
      ENDDIR
    ELSE
      MAKDIR: TKI{_Fluid}
        CHAR: BCTYPE = OPENING_TKI
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 1
        REAL: VALUE = 0.01
      ENDDIR
    ENDCASE

    CASE: {SourceDir}/{MmsName}/TVR
    IS: *DIR*
      COPDIR: TVR, TVR{_Fluid}
        CHAR: BCTYPE = OPENING_TVR
      ENDDIR
    ELSE
      MAKDIR: TVR{_Fluid}
        CHAR: BCTYPE = OPENING_TVR
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 1
        REAL: VALUE = 1.
      ENDDIR
    ENDCASE
  ENDFOR
END

BC: TURBULENCE, Medium Intensity and Eddy Viscosity Ratio, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = SPEC_VAR_TKI
    CHAR: TED{_Fluid}/BCTYPE = SPEC_VAR_TVR
    CHAR: RS{_Fluid}/BCTYPE  = SPEC_VAR_TKI
    CHAR: TEF{_Fluid}/BCTYPE = SPEC_VAR_TVR
    CHAR: VISKTRB{_Fluid}/BCTYPE = SPEC_VAR_TVR
 
    CASE: {SourceDir}/{MmsName}/TKI
    IS: *DIR*
      COPDIR: TKI, TKI{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_TKI
      ENDDIR
    ELSE
      MAKDIR: TKI{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_TKI
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 1
        REAL: VALUE = 0.05
      ENDDIR
    ENDCASE

    CASE: {SourceDir}/{MmsName}/TVR
    IS: *DIR*
      COPDIR: TVR, TVR{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_TVR
      ENDDIR
    ELSE
      MAKDIR: TVR{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_TVR
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 1
        REAL: VALUE = 10.
      ENDDIR
    ENDCASE

  ENDFOR

END

BC: TURBULENCE, Medium Intensity and Eddy Viscosity Ratio, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = OPENING_TKI
    CHAR: TED{_Fluid}/BCTYPE = OPENING_TVR
    CHAR: RS{_Fluid}/BCTYPE  = OPENING_TKI
    CHAR: TEF{_Fluid}/BCTYPE = OPENING_TVR
    CHAR: VISKTRB{_Fluid}/BCTYPE = OPENING_TVR
 
    CASE: {SourceDir}/{MmsName}/TKI
    IS: *DIR*
      COPDIR: TKI, TKI{_Fluid}
        CHAR: BCTYPE = OPENING_TKI
      ENDDIR
    ELSE
      MAKDIR: TKI{_Fluid}
        CHAR: BCTYPE = OPENING_TKI
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 1
        REAL: VALUE = 0.05
      ENDDIR
    ENDCASE

    CASE: {SourceDir}/{MmsName}/TVR
    IS: *DIR*
      COPDIR: TVR, TVR{_Fluid}
        CHAR: BCTYPE = OPENING_TVR
      ENDDIR
    ELSE
      MAKDIR: TVR{_Fluid}
        CHAR: BCTYPE = OPENING_TVR
        CHAR: HOW = CONSTANT
        INTR: NVALUES = 1
        REAL: VALUE = 10.
      ENDDIR
    ENDCASE
  ENDFOR
END

BC: TURBULENCE, Reynolds Stresses and Eddy Viscosity Ratio, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = SPEC_VAR_RS
    CHAR: TED{_Fluid}/BCTYPE = SPEC_VAR_TVR
    CHAR: TEF{_Fluid}/BCTYPE = SPEC_VAR_TVR
    CHAR: VISKTRB{_Fluid}/BCTYPE = SPEC_VAR_TVR
 
    COPDIR: RS, RS{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_RS
    ENDDIR

    COPDIR: TVR, TVR{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TVR
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, Reynolds Stresses and Eddy Viscosity Ratio, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = OPENING_RS
    CHAR: TED{_Fluid}/BCTYPE = OPENING_TVR
    CHAR: TEF{_Fluid}/BCTYPE = OPENING_TVR
    CHAR: VISKTRB{_Fluid}/BCTYPE = OPENING_TVR
 
    COPDIR: RS, RS{_Fluid}
      CHAR: BCTYPE = OPENING_RS
    ENDDIR

    COPDIR: TVR, TVR{_Fluid}
      CHAR: BCTYPE = OPENING_TVR
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, Reynolds Stresses and Epsilon, INLET 
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = SPEC_VAR_RS
    CHAR: TEF{_Fluid}/BCTYPE = SPEC_VAR_TED
    CHAR: VISKTRB{_Fluid}/BCTYPE = SPEC_VAR_TED
 
    COPDIR: RS, RS{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_RS
    ENDDIR

    COPDIR: TED, TED{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TED
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, Reynolds Stresses and Epsilon, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = OPENING_RS
    CHAR: TEF{_Fluid}/BCTYPE = OPENING_TED
    CHAR: VISKTRB{_Fluid}/BCTYPE = OPENING_TED

    COPDIR: RS, RS{_Fluid}
      CHAR: BCTYPE = OPENING_RS
    ENDDIR

    COPDIR: TED, TED{_Fluid}
      CHAR: BCTYPE = OPENING_TED
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, Reynolds Stresses and Length Scale, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = SPEC_VAR_RS
    CHAR: TED{_Fluid}/BCTYPE = SPEC_VAR_TLS
    CHAR: TEF{_Fluid}/BCTYPE = SPEC_VAR_TLS
    CHAR: VISKTRB{_Fluid}/BCTYPE = SPEC_VAR_TLS
 
    COPDIR: RS, RS{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_RS
    ENDDIR

    COPDIR: TLS, TLS{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TLS
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, Reynolds Stresses and Length Scale, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = OPENING_RS
    CHAR: TED{_Fluid}/BCTYPE = OPENING_TLS
    CHAR: TEF{_Fluid}/BCTYPE = OPENING_TLS
    CHAR: VISKTRB{_Fluid}/BCTYPE = OPENING_TLS
 
    COPDIR: RS, RS{_Fluid}
      CHAR: BCTYPE = OPENING_RS
    ENDDIR

    COPDIR: TLS, TLS{_Fluid}
      CHAR: BCTYPE = OPENING_TLS
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, Reynolds Stresses and Omega, INLET 
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = SPEC_VAR_RS
    CHAR: TED{_Fluid}/BCTYPE = SPEC_VAR_TEF
    CHAR: VISKTRB{_Fluid}/BCTYPE = SPEC_VAR_TEF
 
    COPDIR: RS, RS{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_RS
    ENDDIR

    COPDIR: TEF, TEF{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_TEF
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, Reynolds Stresses and Omega, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE = OPENING_RS
    CHAR: TED{_Fluid}/BCTYPE = OPENING_TEF
    CHAR: VISKTRB{_Fluid}/BCTYPE = OPENING_TEF

    COPDIR: RS, RS{_Fluid}
      CHAR: BCTYPE = OPENING_RS
    ENDDIR

    COPDIR: TEF, TEF{_Fluid}
      CHAR: BCTYPE = OPENING_TEF
    ENDDIR
  ENDFOR
END

BC: TURBULENCE, Zero Gradient, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE     = ZERO_GRAD
    CHAR: TED{_Fluid}/BCTYPE     = ZERO_GRAD
    CHAR: RS{_Fluid}/BCTYPE      = ZERO_GRAD
    CHAR: TEF{_Fluid}/BCTYPE     = ZERO_GRAD
    CHAR: VISKTRB{_Fluid}/BCTYPE = ZERO_GRAD

    CASE: {SourceDir}/{MmsName}/ELIMFAC
    IS: *DIR*
      COPDIR: ELIMFAC, TKE{_Fluid}/ELIMFAC
      ENDDIR
      COPDIR: ELIMFAC, TED{_Fluid}/ELIMFAC
      ENDDIR
      COPDIR: ELIMFAC, RS{_Fluid}/ELIMFAC
      ENDDIR
      COPDIR: ELIMFAC, TEF{_Fluid}/ELIMFAC
      ENDDIR
      COPDIR: ELIMFAC, VISKTRB{_Fluid}/ELIMFAC
      ENDDIR
    ENDCASE

    CASE: {SourceDir}/{MmsName}/BETA
    IS: *DIR*
      COPDIR: BETA, TKE{_Fluid}/BETA
      ENDDIR
      COPDIR: BETA, TED{_Fluid}/BETA
      ENDDIR
      COPDIR: BETA, RS{_Fluid}/BETA
      ENDDIR
      COPDIR: BETA, TEF{_Fluid}/BETA
      ENDDIR
      COPDIR: BETA, VISKTRB{_Fluid}/BETA
      ENDDIR
    ENDCASE
  ENDFOR
END

BC: TURBULENCE, Zero Gradient, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: TKE{_Fluid}/BCTYPE     = ZERO_GRAD
    CHAR: TED{_Fluid}/BCTYPE     = ZERO_GRAD
    CHAR: RS{_Fluid}/BCTYPE      = ZERO_GRAD
    CHAR: TEF{_Fluid}/BCTYPE     = ZERO_GRAD
    CHAR: VISKTRB{_Fluid}/BCTYPE = ZERO_GRAD

    CASE: {SourceDir}/{MmsName}/ELIMFAC
    IS: *DIR*
      COPDIR: ELIMFAC, TKE{_Fluid}/ELIMFAC
      ENDDIR
      COPDIR: ELIMFAC, TED{_Fluid}/ELIMFAC
      ENDDIR
      COPDIR: ELIMFAC, RS{_Fluid}/ELIMFAC
      ENDDIR
      COPDIR: ELIMFAC, TEF{_Fluid}/ELIMFAC
      ENDDIR
      COPDIR: ELIMFAC, VISKTRB{_Fluid}/ELIMFAC
      ENDDIR
    ENDCASE

    CASE: {SourceDir}/{MmsName}/BETA
    IS: *DIR*
      COPDIR: BETA, TKE{_Fluid}/BETA
      ENDDIR
      COPDIR: BETA, TED{_Fluid}/BETA
      ENDDIR
      COPDIR: BETA, RS{_Fluid}/BETA
      ENDDIR
      COPDIR: BETA, TEF{_Fluid}/BETA
      ENDDIR
      COPDIR: BETA, VISKTRB{_Fluid}/BETA
      ENDDIR
    ENDCASE
  ENDFOR
END
 
BC: VELOCITY, Cartesian Velocity Components, INLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: VELS{_Fluid}/BCTYPE = SPEC_VAR_VELS
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR
  ELSE
  // Local Frame (Rotating for RFR cases)
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: VELOCITY, Cartesian Velocity Components, OPENING
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: VELS{_Fluid}/BCTYPE = SPEC_VAR_VELS
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR
  ELSE
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: VELOCITY, Cartesian Velocity Components, OUTLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: VELS{_Fluid}/BCTYPE = SPEC_VAR_VELS
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR
  ELSE
  // Local Frame (Rotating for RFR cases)
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: VELOCITY, Cylindrical Velocity Components, INLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR
  ELSE
  // Local Frame (Rotating for RFR cases)
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/AXIS/AROT, {SourceDir}/{MmsName}/AXIS/BROT
  IS: *DIR*,*DIR*
    FOR: Fluid = {CurrentFluidList}
      COPDIR: AXIS/AROT, AXIS/AROT{_Fluid}
      ENDDIR
      COPDIR: AXIS/BROT, AXIS/BROT{_Fluid}
      ENDDIR
    ENDFOR
  IS: *DIR*,*NONE*
     MESAGE: Invalid INLET rotation axis specification 
     EXIT
  IS: *NONE*,*DIR*
     MESAGE: Invalid INLET rotation axis specification 
     EXIT
  ENDCASE
END

BC: VELOCITY, Cylindrical Velocity Components, OPENING
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR
  ELSE
  // Local Frame (Rotating for RFR cases)
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/AXIS/AROT, {SourceDir}/{MmsName}/AXIS/BROT
  IS: *DIR*,*DIR*
    FOR: Fluid = {CurrentFluidList}
      COPDIR: AXIS/AROT, AXIS/AROT{_Fluid}
      ENDDIR
      COPDIR: AXIS/BROT, AXIS/BROT{_Fluid}
      ENDDIR
    ENDFOR
  IS: *DIR*,*NONE*
     MESAGE: Invalid OPENING rotation axis specification 
     EXIT
  IS: *NONE*,*DIR*
     MESAGE: Invalid OPENING rotation axis specification 
     EXIT
  ENDCASE
END

BC: VELOCITY, Cylindrical Velocity Components, OUTLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELS
      ENDDIR
    ENDFOR
  ELSE
  // Local Frame (Rotating for RFR cases)
    FOR: Fluid = {CurrentFluidList}
      COPDIR: VEL, VEL{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDFOR
  ENDCASE

  CASE: {SourceDir}/{MmsName}/AXIS/AROT, {SourceDir}/{MmsName}/AXIS/BROT
  IS: *DIR*,*DIR*
    FOR: Fluid = {CurrentFluidList}
      COPDIR: AXIS/AROT, AXIS/AROT{_Fluid}
      ENDDIR
      COPDIR: AXIS/BROT, AXIS/BROT{_Fluid}
      ENDDIR
    ENDFOR
  IS: *DIR*,*NONE*
     MESAGE: Invalid OUTLET rotation axis specification 
     EXIT
  IS: *NONE*,*DIR*
     MESAGE: Invalid OUTLET rotation axis specification 
     EXIT
  ENDCASE
END

BC: VELOCITY, Mass Flow Rate, INLET
  FOR: Fluid = {CurrentFluidList}
    // a FLOW DIRECTION must be specified.
    CASE: {SourceDir}/../{Fluid}/BOUNDARY_CONDITIONS/FLOW_DIRECTION/OPTION, {So\
urceDir}/FLOW_DIRECTION/OPTION
    IS: *NONE*, *NONE*
      MESAGE: Missing FLOW DIRECTION for Mass Flow Rate, INLET
      EXIT
    ENDCASE

    // Fluid-specific FLOW DIRECTION
    CASE: {SourceDir}/../{Fluid}/BOUNDARY_CONDITIONS/FLOW_DIRECTION/OPTION
    IS: Cartesian Components
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_MFLD
    IS: Cylindrical Components
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_MFLD
    IS: Normal to Boundary Condition
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_MFLO
    ENDCASE

    // Single-phase or shared FLOW DIRECTION
    CASE: {SourceDir}/FLOW_DIRECTION/OPTION
    IS: Cartesian Components
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_MFLD
    IS: Cylindrical Components
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_MFLD
    IS: Normal to Boundary Condition
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_MFLO
    ENDCASE

    COPDIR: MFLO, MFLO{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MFLO
      CHAR: MFLO_AREA = As Specified
    ENDDIR

    CASE: {SourceDir}/{MmsName}/SECTOR_ANGLE
      ISNOT: *NONE*
        COPDIR: SECTOR_ANGLE,MFLO{_Fluid}/SECTOR_ANGLE
      ENDDIR
    ENDCASE

  ENDFOR
END

BC: VELOCITY, Mass Flow Rate, OUTLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_MFLO
    COPDIR: MFLO, MFLO{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_MFLO
      CHAR: MFLO_AREA = As Specified
    ENDDIR

    CASE: {SourceDir}/{MmsName}/SECTOR_ANGLE
      ISNOT: *NONE*
        COPDIR: SECTOR_ANGLE,MFLO{_Fluid}/SECTOR_ANGLE
      ENDDIR
    ENDCASE

  ENDFOR
END

BC: VELOCITY, Normal Speed, INLET
  CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
  IS : Stationary
    FOR: Fluid = {CurrentFluidList}
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_VELSM
      COPDIR: VELMAG, VELMAG{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELSM
      ENDDIR
    ENDFOR
  ELSE
    FOR: Fluid = {CurrentFluidList}
      CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_VELM
      COPDIR: VELMAG, VELMAG{_Fluid}
        CHAR: BCTYPE = SPEC_VAR_VELM
      ENDDIR
    ENDFOR
  ENDCASE
END

BC: VELOCITY, Normal Speed, OUTLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: VEL{_Fluid}/BCTYPE = SPEC_VAR_VELM
    COPDIR: VELMAG, VELMAG{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_VELM
    ENDDIR
  ENDFOR
END

BC: VELOCITY, Restitution Coefficient, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../MOM
    COPDIR: .,../MOM
    ENDDIR
  ENDFOR
END

BC: VELOCITY, Restitution Coefficient, WALL
  FOR: Fluid = {CurrentFluidList}
    CHAR: ../MOM
    COPDIR: .,../MOM
    ENDDIR
  ENDFOR
END

BC: VOLUME FRACTION, Value, INLET
  FOR: Fluid = {CurrentFluidList}
    COPDIR: VOLFRC, VOLFRC{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_VOLFRC
    ENDDIR
    COPDIR: VOLFRC, VOLFRN{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_VOLFRC
    ENDDIR
  ENDFOR
END

BC: VOLUME FRACTION, Value, OPENING
  FOR: Fluid = {CurrentFluidList}
    COPDIR: VOLFRC, VOLFRC{_Fluid}
      CHAR: BCTYPE = OPENING_VOLFRC
    ENDDIR
    COPDIR: VOLFRC, VOLFRN{_Fluid}
      CHAR: BCTYPE = OPENING_VOLFRC
    ENDDIR
  ENDFOR
END

BC: VOLUME FRACTION, Zero Gradient, INLET
  FOR: Fluid = {CurrentFluidList}
    CHAR: VOLFRC{_Fluid}/BCTYPE = ZERO_GRAD
    CHAR: VOLFRN{_Fluid}/BCTYPE = ZERO_GRAD

    CASE: {SourceDir}/{MmsName}/ELIMFAC
    IS: *DIR*
      COPDIR: ELIMFAC, VOLFRC{_Fluid}/ELIMFAC
      ENDDIR
      COPDIR: ELIMFAC, VOLFRN{_Fluid}/ELIMFAC
      ENDDIR
    ENDCASE

    CASE: {SourceDir}/{MmsName}/BETA
    IS: *DIR*
      COPDIR: BETA, VOLFRC{_Fluid}/BETA
      ENDDIR
      COPDIR: BETA, VOLFRN{_Fluid}/BETA
      ENDDIR
    ENDCASE
  ENDFOR
END

BC: VOLUME FRACTION, Zero Gradient, OPENING
  FOR: Fluid = {CurrentFluidList}
    CHAR: VOLFRC{_Fluid}/BCTYPE = ZERO_GRAD
    CHAR: VOLFRN{_Fluid}/BCTYPE = ZERO_GRAD

    CASE: {SourceDir}/{MmsName}/ELIMFAC
    IS: *DIR*
      COPDIR: ELIMFAC, VOLFRC{_Fluid}/ELIMFAC
      ENDDIR
      COPDIR: ELIMFAC, VOLFRN{_Fluid}/ELIMFAC
      ENDDIR
    ENDCASE

    CASE: {SourceDir}/{MmsName}/BETA
    IS: *DIR*
      COPDIR: BETA, VOLFRC{_Fluid}/BETA
      ENDDIR
      COPDIR: BETA, VOLFRN{_Fluid}/BETA
      ENDDIR
    ENDCASE
  ENDFOR
END

BC: WALL ADHESION, Adhesive, INTERFACE
  CHAR: CONTANG_{FluidPair}/BCTYPE = SPEC_VAR_ANG
  COPDIR: CONTACT_ANGLE, CONTANG_{FluidPair}_WALL
    CHAR: BCTYPE = SPEC_VAR_ANG
  ENDDIR
END
  
BC: WALL ADHESION, Adhesive, WALL
  CHAR: CONTANG_{FluidPair}/BCTYPE = SPEC_VAR_ANG
  COPDIR: CONTACT_ANGLE, CONTANG_{FluidPair}_WALL
    CHAR: BCTYPE = SPEC_VAR_ANG
  ENDDIR
END

BC: WALL ADHESION, None, INTERFACE
END

BC: WALL ADHESION, None, WALL
END

BC: WALL BOILING MODEL, RPI Model, INTERFACE
  COPDIR: ., {FluidPair}/WALL_BOIL
  ENDDIR
END

BC: WALL BOILING MODEL, RPI Model, WALL
  COPDIR: ., {FluidPair}/WALL_BOIL
  ENDDIR
END

BC: WALL CONTACT AREA, Area Fraction, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    COPDIR: ARFRC, ARFRC{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_ARFRC
    ENDDIR
  ENDFOR
END

BC: WALL CONTACT AREA, Area Fraction, WALL
  FOR: Fluid = {CurrentFluidList}
    COPDIR: ARFRC, ARFRC{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_ARFRC
    ENDDIR
  ENDFOR
END

BC: WALL CONTACT AREA, Constraint, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    COPDIR: ARFRC, ARFRC{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_CONSTRAINT
    ENDDIR
  ENDFOR
END

BC: WALL CONTACT AREA, Constraint, WALL
  FOR: Fluid = {CurrentFluidList}
    COPDIR: ARFRC, ARFRC{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_CONSTRAINT
    ENDDIR
  ENDFOR
END

BC: WALL CONTACT MODEL, Specify Area Fraction, INTERFACE
END

BC: WALL CONTACT MODEL, Specify Area Fraction, WALL
END

BC: WALL CONTACT MODEL, Use Volume Fraction, INTERFACE
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: ARFRC{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_VOLFRC
    ENDDIR
  ENDFOR
END

BC: WALL CONTACT MODEL, Use Volume Fraction, WALL
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: ARFRC{_Fluid}
      CHAR: BCTYPE = SPEC_VAR_VOLFRC
    ENDDIR
  ENDFOR
END

BC: WALL ROUGHNESS, Grooved Wall, INTERFACE
  // This scope of this bc can only be BULK or SHARED, and not FLUID.
  CASE: {BcScope}
  IS: FLUID
    MESAGE: WALL ROUGHNESS should not be applied to a fluid.
    EXIT
  ENDCASE

  COPDIR: GROOV, GROOV_WALL                       
    CHAR: BCTYPE = SPEC_VAR_GROOV                  
  ENDDIR
END
 
BC: WALL ROUGHNESS, Grooved Wall, WALL                
  // This scope of this bc can only be BULK or SHARED, and not FLUID.
  CASE: {BcScope}
  IS: FLUID
    MESAGE: WALL ROUGHNESS should not be applied to a fluid.
    EXIT
  ENDCASE

  COPDIR: GROOV, GROOV_WALL                       
    CHAR: BCTYPE = SPEC_VAR_GROOV
  ENDDIR
END

BC: WALL ROUGHNESS, Rough Wall, INTERFACE
  // This scope of this bc can only be BULK or SHARED, and not FLUID.
  CASE: {BcScope}
  IS: FLUID
    MESAGE: WALL ROUGHNESS should not be applied to a fluid.
    EXIT
  ENDCASE

  // This directory contains height data
  COPDIR: RGH, RGH_WALL
    CHAR: BCTYPE = SPEC_VAR_RGH
  ENDDIR
  // This directory couples a general bc variable
  MAKDIR: RGH
    CHAR: BCTYPE = SPEC_VAR_RGH
  ENDDIR
END

BC: WALL ROUGHNESS, Rough Wall, WALL
  // This scope of this bc can only be BULK or SHARED, and not FLUID.
  CASE: {BcScope}
  IS: FLUID
    MESAGE: WALL ROUGHNESS should not be applied to a fluid.
    EXIT
  ENDCASE

  // This directory contains height data
  COPDIR: RGH, RGH_WALL
    CHAR: BCTYPE = SPEC_VAR_RGH
  ENDDIR
  // This directory couples a general bc variable
  MAKDIR: RGH
    CHAR: BCTYPE = SPEC_VAR_RGH
  ENDDIR
END

BC: WALL ROUGHNESS, High Roughness, INTERFACE
  // This scope of this bc can only be BULK or SHARED, and not FLUID.
  CASE: {BcScope}
  IS: FLUID
    MESAGE: WALL ROUGHNESS should not be applied to a fluid.
    EXIT
  ENDCASE

  // This directory contains height data
  COPDIR: RGH, RGH_WALL
    CHAR: BCTYPE = SPEC_VAR_RGH_HIGH
  ENDDIR
  // This directory couples a general bc variable
  MAKDIR: RGH
    CHAR: BCTYPE = SPEC_VAR_RGH_HIGH
  ENDDIR
END

BC: WALL ROUGHNESS, High Roughness, WALL
  // This scope of this bc can only be BULK or SHARED, and not FLUID.
  CASE: {BcScope}
  IS: FLUID
    MESAGE: WALL ROUGHNESS should not be applied to a fluid.
    EXIT
  ENDCASE

  // This directory contains height data
  COPDIR: RGH, RGH_WALL
    CHAR: BCTYPE = SPEC_VAR_RGH_HIGH
  ENDDIR
  // This directory couples a general bc variable
  MAKDIR: RGH
    CHAR: BCTYPE = SPEC_VAR_RGH_HIGH
  ENDDIR
END

BC: WALL ROUGHNESS, Smooth Wall, INTERFACE
  // This scope of this bc can only be BULK or SHARED, and not FLUID.
  CASE: {BcScope}
  IS: FLUID
    MESAGE: WALL ROUGHNESS should not be applied to a fluid.
    EXIT
  ENDCASE
END

BC: WALL ROUGHNESS, Smooth Wall, WALL
  // This scope of this bc can only be BULK or SHARED, and not FLUID.
  CASE: {BcScope}
  IS: FLUID
    MESAGE: WALL ROUGHNESS should not be applied to a fluid.
    EXIT
  ENDCASE
END

///////////////////////////////////////////////////////////////////////////////
//   SOURCES data area
///////////////////////////////////////////////////////////////////////////////

SOURCES: EQUATION SOURCE, Cartesian Vector Flux Components
  USE: SOURCES: EQUATION SOURCE, Flux for CurrentFluidList

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {SrcScope}
  IS: Porous, SHARED
  ELSE
    USE: SOURCES: EQUATION SOURCE, Flux for CurrentSolidList
  ENDCASE
END

SOURCES: EQUATION SOURCE, Cartesian Vector Source Components
  USE: SOURCES: EQUATION SOURCE, Source for CurrentFluidList

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {SrcScope}
  IS: Porous, SHARED
  ELSE
    USE: SOURCES: EQUATION SOURCE, Source for CurrentSolidList
  ENDCASE
END

SOURCES: EQUATION SOURCE, Cartesian Vector Total Source Components
  USE: SOURCES: EQUATION SOURCE, Total Source for CurrentFluidList

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {SrcScope}
  IS: Porous, SHARED
  ELSE
    USE: SOURCES: EQUATION SOURCE, Total Source for CurrentSolidList
  ENDCASE
END

SOURCES: EQUATION SOURCE, Cylindrical Vector Flux Components
  USE: SOURCES: EQUATION SOURCE, Flux for CurrentFluidList
  
  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {SrcScope}
  IS: Porous, SHARED
  ELSE
    USE: SOURCES: EQUATION SOURCE, Flux for CurrentSolidList
  ENDCASE
END

SOURCES: EQUATION SOURCE, Cylindrical Vector Source Components
  USE: SOURCES: EQUATION SOURCE, Source for CurrentFluidList
  
  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {SrcScope}
  IS: Porous, SHARED
  ELSE
    USE: SOURCES: EQUATION SOURCE, Source for CurrentSolidList
  ENDCASE
END

SOURCES: EQUATION SOURCE, Cylindrical Vector Total Source Components
  USE: SOURCES: EQUATION SOURCE, Total Source for CurrentFluidList

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {SrcScope}
  IS: Porous, SHARED
  ELSE
    USE: SOURCES: EQUATION SOURCE, Total Source for CurrentSolidList
  ENDCASE
END

SOURCES: EQUATION SOURCE, Fluid Mass Flux
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {MmsName}{_Fluid} // {Eqn}
      CATLG: EQN

      // Transfer multiply by porosity
      CASE: {SourceDir}/{MmsName}/MULT_BY_POR
      ISNOT: *NONE*
        LOGL: MULT_BY_POR, MULT_BY_POR
      ENDCASE

      // Transfer mass fraction and temperature flag
      CASE: {SourceDir}/{MmsName}/MCF_OPTION
      ISNOT: *NONE*
        CHAR: MCF_OPTION, MCF_OPTION
      ENDCASE

      // Transfer size fraction flag
      CASE: {SourceDir}/{MmsName}/SF_OPTION
      ISNOT: *NONE*
        CHAR: SF_OPTION, SF_OPTION
      ENDCASE

      // Transfer source strength RESFLX_A
      CASE: {SourceDir}/{MmsName}/VALUE
      IS: *DIR*
        COPDIR: VALUE, RESFLX_A
          CHAR: MSTYPE = SPEC_VAR_RESFLX_A
        ENDDIR
      ENDCASE
 
      CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
      ISNOT: *NONE*
        CHAR: /FLOW/{Zone}/{Bcp}/FRAME_TYPE, FRAME_TYPE
      ELSE:
        CHAR: /FLOW/{Zone}/DOMAIN_MODELS/DOMAIN_MOTION/OPTION, FRAME_TYPE
      ENDCASE

      // Transfer VARIABLE's associated with mass source
      // Driven by automatic catalog
      FOR: Var = {SourceDir}/{MmsName}/CVAR
        COPDIR: {Var}
          CATLG: VAR
          CASE: {SourceDir}/{MmsName}/{Var}/OPTION
          IS: Cartesian Vector Components
            CHAR: MSTYPE = SPEC_VAR_{Var}
          IS: Cylindrical Vector Components
            CHAR: MSTYPE = SPEC_VAR_{Var}
          IS: Symmetric Tensor Components
            CHAR: MSTYPE = SPEC_VAR_{Var}
          IS: Value
            CHAR: MSTYPE = SPEC_VAR_{Var}
          IS: Determine From Mass Flux
            CHAR: MSTYPE = SPEC_VAR_RESFLX_A
          ELSE:
            MESAGE: Unsupported option for VARIABLE in Fluid Mass Flux
            EXIT
          ENDCASE
        ENDDIR
      ENDFOR

      // Transfer special linearisation cofficients
      // RESFLX_B_PRES, RESFLX_B_VOLFRC
      CASE: {SourceDir}/{MmsName}/RESFLX_B_PRES
      IS: *DIR*
        COPDIR: RESFLX_B_PRES
        ENDDIR
      ENDCASE

      CASE: {SourceDir}/{MmsName}/RESFLX_B_VOLFRC
      IS: *DIR*
        COPDIR: RESFLX_B_VOLFRC
        ENDDIR
      ENDCASE

      // Transfer linearisation cofficient RESFLX_B
      // Driven by linearisation variable list
      // Assumption: only one item in list in 5.5
      FOR: Var = {SourceDir}/{MmsName}/SOURCE_VAR
        CASE: {Var}
        IS: PRES
          MAKDIR: {Var}
            CATLG: VAR
            COPDIR: RESFLX_B
            ENDDIR
          ENDDIR
        ELSE
          MAKDIR: {Var}{_Fluid}
            CATLG: VAR
            COPDIR: RESFLX_B
            ENDDIR
          ENDDIR
        ENDCASE
      ENDFOR

    ENDDIR
  ENDFOR
END

SOURCES: EQUATION SOURCE, Fluid Mass Source
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {MmsName}{_Fluid} // {Eqn}
      CATLG: EQN

      // Transfer multiply by porosity
      CASE: {SourceDir}/{MmsName}/MULT_BY_POR
      ISNOT: *NONE*
        LOGL: MULT_BY_POR, MULT_BY_POR
      ENDCASE

      // Transfer mass fraction and temperature flag
      CASE: {SourceDir}/{MmsName}/MCF_OPTION
      ISNOT: *NONE*
        CHAR: MCF_OPTION, MCF_OPTION
      ENDCASE

      // Transfer size fraction flag
      CASE: {SourceDir}/{MmsName}/SF_OPTION
      ISNOT: *NONE*
        CHAR: SF_OPTION, SF_OPTION
      ENDCASE

      // Transfer source strength RESSRC_A
      CASE: {SourceDir}/{MmsName}/VALUE
      IS: *DIR*
        COPDIR: VALUE, RESSRC_A
          CHAR: MSTYPE = SPEC_VAR_RESSRC_A
        ENDDIR
      ENDCASE
 
      CASE: /FLOW/{Zone}/DOMAIN_MODELS/DOMAIN_MOTION/OPTION
      ISNOT: *NONE*
        CHAR: /FLOW/{Zone}/DOMAIN_MODELS/DOMAIN_MOTION/OPTION, FRAME_TYPE
      ENDCASE

      // Transfer VARIABLE's associated with mass source
      // Driven by automatic catalog
      FOR: Var = {SourceDir}/{MmsName}/CVAR
        COPDIR: {Var}
          CATLG: VAR
          CASE: {SourceDir}/{MmsName}/{Var}/OPTION
          IS: Cartesian Vector Components
            CHAR: MSTYPE = SPEC_VAR_{Var}
          IS: Cylindrical Vector Components
            CHAR: MSTYPE = SPEC_VAR_{Var}
          IS: Symmetric Tensor Components
            CHAR: MSTYPE = SPEC_VAR_{Var}
          IS: Value
            CHAR: MSTYPE = SPEC_VAR_{Var}
          IS: Determine From Mass Flux
            CHAR: MSTYPE = SPEC_VAR_RESSRC_A
          ELSE:
            MESAGE: Unsupported option for VARIABLE in Fluid Mass Source
            EXIT
          ENDCASE
        ENDDIR
      ENDFOR

      // Transfer special linearisation cofficients
      // RESSRC_B_PRES, RESSRC_B_VOLFRC
      CASE: {SourceDir}/{MmsName}/RESSRC_B_PRES
      IS: *DIR*
        COPDIR: RESSRC_B_PRES
        ENDDIR
      ENDCASE

      CASE: {SourceDir}/{MmsName}/RESSRC_B_VOLFRC
      IS: *DIR*
        COPDIR: RESSRC_B_VOLFRC
        ENDDIR
      ENDCASE

      // Transfer linearisation cofficient RESSRC_B
      // Driven by linearisation variable list
      // Assumption: only one item in list in 5.5
      FOR: Var = {SourceDir}/{MmsName}/SOURCE_VAR
        CASE: {Var}
        IS: PRES
          MAKDIR: {Var}
            CATLG: VAR
            COPDIR: RESSRC_B
            ENDDIR
          ENDDIR
        ELSE
          MAKDIR: {Var}{_Fluid}
            CATLG: VAR
            COPDIR: RESSRC_B
            ENDDIR
          ENDDIR
        ENDCASE
      ENDFOR

    ENDDIR
  ENDFOR
END

SOURCES: EQUATION SOURCE, Flux
  USE: SOURCES: EQUATION SOURCE, Flux for CurrentFluidList

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {SrcScope}
  IS: Porous, SHARED
  ELSE
    USE: SOURCES: EQUATION SOURCE, Flux for CurrentSolidList
  ENDCASE
END

SOURCES: EQUATION SOURCE, Flux for CurrentFluidList
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {MmsName}{_Fluid} // {Eqn}
      CATLG: EQN
      // Transfer multiply by porosity
      CASE: {SourceDir}/{MmsName}/MULT_BY_POR
      ISNOT: *NONE*
        LOGL: MULT_BY_POR, MULT_BY_POR
      ENDCASE
      CASE: {SourceDir}/{MmsName}/VALUE
      IS: *DIR*
        COPDIR: VALUE, RESFLX_A
        ENDDIR
      ENDCASE
      CASE: {SourceDir}/{MmsName}/RESFLX_B,{SourceDir}/{MmsName}/SOURCE_VAR
      IS: *DIR*,*NONE*
        COPDIR: RESFLX_B
        ENDDIR
      IS: *DIR*,*DIR*
        FOR: Var = {SourceDir}/{MmsName}/SOURCE_VAR
          MAKDIR: {Var}{_Fluid}
            CATLG: VAR
            COPDIR: RESFLX_B
            ENDDIR
          ENDDIR
        ENDFOR
      ENDCASE
    ENDDIR
  ENDFOR
END

SOURCES: EQUATION SOURCE, Flux for CurrentSolidList
  FOR: Solid = {CurrentSolidList}
    MAKDIR: {MmsName}{_Solid} // {Eqn}
      CATLG: EQN
      // Transfer multiply by porosity
      CASE: {SourceDir}/{MmsName}/MULT_BY_POR
      ISNOT: *NONE*
        LOGL: MULT_BY_POR, MULT_BY_POR
      ENDCASE
      CASE: {SourceDir}/{MmsName}/VALUE
      IS: *DIR*
        COPDIR: VALUE, RESFLX_A
        ENDDIR
      ENDCASE
      CASE: {SourceDir}/{MmsName}/RESFLX_B,{SourceDir}/{MmsName}/SOURCE_VAR
      IS: *DIR*,*NONE*
        COPDIR: RESFLX_B
        ENDDIR
      IS: *DIR*,*DIR*
        FOR: Var = {SourceDir}/{MmsName}/SOURCE_VAR
          MAKDIR: {Var}{_Solid}
            CATLG: VAR
            COPDIR: RESFLX_B
            ENDDIR
          ENDDIR
        ENDFOR
      ENDCASE
    ENDDIR
  ENDFOR
END

SOURCES: EQUATION SOURCE, Source
  USE: SOURCES: EQUATION SOURCE, Source for CurrentFluidList

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {SrcScope}
  IS: Porous, SHARED
  ELSE
    USE: SOURCES: EQUATION SOURCE, Source for CurrentSolidList
  ENDCASE
END

SOURCES: EQUATION SOURCE, Source for CurrentFluidList
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {MmsName}{_Fluid} // {Eqn}
      CATLG: EQN
      // Transfer multiply by porosity
      CASE: {SourceDir}/{MmsName}/MULT_BY_POR
      ISNOT: *NONE*
        LOGL: MULT_BY_POR, MULT_BY_POR
      ENDCASE
      CASE: {SourceDir}/{MmsName}/VALUE
      IS: *DIR*
        COPDIR: VALUE, RESSRC_A
        ENDDIR
      ENDCASE
      CASE: {SourceDir}/{MmsName}/RESSRC_B,{SourceDir}/{MmsName}/SOURCE_VAR
      IS: *DIR*,*NONE*
        COPDIR: RESSRC_B
        ENDDIR
      IS: *DIR*,*DIR*
        FOR: Var = {SourceDir}/{MmsName}/SOURCE_VAR
          MAKDIR: {Var}{_Fluid}
            CATLG: VAR
            COPDIR: RESSRC_B
            ENDDIR
          ENDDIR
        ENDFOR
      ENDCASE
    ENDDIR
  ENDFOR
END

SOURCES: EQUATION SOURCE, Source for CurrentSolidList
  FOR: Solid = {CurrentSolidList}
    MAKDIR: {MmsName}{_Solid} // {Eqn}
      CATLG: EQN
      // Transfer multiply by porosity
      CASE: {SourceDir}/{MmsName}/MULT_BY_POR
      ISNOT: *NONE*
        LOGL: MULT_BY_POR, MULT_BY_POR
      ENDCASE
      CASE: {SourceDir}/{MmsName}/VALUE
      IS: *DIR*
        COPDIR: VALUE, RESSRC_A
        ENDDIR
      ENDCASE
      CASE: {SourceDir}/{MmsName}/RESSRC_B,{SourceDir}/{MmsName}/SOURCE_VAR
      IS: *DIR*,*NONE*
        COPDIR: RESSRC_B
        ENDDIR
      IS: *DIR*,*DIR*
        FOR: Var = {SourceDir}/{MmsName}/SOURCE_VAR
          MAKDIR: {Var}{_Solid}
            CATLG: VAR
            COPDIR: RESSRC_B
            ENDDIR
          ENDDIR
        ENDFOR
      ENDCASE
    ENDDIR
  ENDFOR
END

SOURCES: EQUATION SOURCE, Symmetric Tensor Flux Components
  USE: SOURCES: EQUATION SOURCE, Flux for CurrentFluidList

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {SrcScope}
  IS: Porous, SHARED
  ELSE
    USE: SOURCES: EQUATION SOURCE, Flux for CurrentSolidList
  ENDCASE
END

SOURCES: EQUATION SOURCE, Symmetric Tensor Source Components
  USE: SOURCES: EQUATION SOURCE, Source for CurrentFluidList

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {SrcScope}
  IS: Porous, SHARED
  ELSE
    USE: SOURCES: EQUATION SOURCE, Source for CurrentSolidList
  ENDCASE
END

SOURCES: EQUATION SOURCE, Symmetric Tensor Total Source Components
  USE: SOURCES: EQUATION SOURCE, Total Source for CurrentFluidList

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {SrcScope}
  IS: Porous, SHARED
  ELSE
    USE: SOURCES: EQUATION SOURCE, Total Source for CurrentSolidList
  ENDCASE
END

SOURCES: EQUATION SOURCE, Total Fluid Mass Source
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {MmsName}{_Fluid} // {Eqn}
      CATLG: EQN

      // Transfer multiply by porosity
      CASE: {SourceDir}/{MmsName}/MULT_BY_POR
      ISNOT: *NONE*
        LOGL: MULT_BY_POR, MULT_BY_POR
      ENDCASE
      
      // Transfer mass fraction and temperature flag
      CASE: {SourceDir}/{MmsName}/MCF_OPTION
      IS: *NONE*
      ELSE
        CHAR: MCF_OPTION, MCF_OPTION
      ENDCASE

      // Transfer size fraction flag
      CASE: {SourceDir}/{MmsName}/SF_OPTION
      IS: *NONE*
      ELSE
        CHAR: SF_OPTION, SF_OPTION
      ENDCASE

      // Transfer source strength TOTSRC_A
      CASE: {SourceDir}/{MmsName}/VALUE
      IS: *DIR*
        COPDIR: VALUE, TOTSRC_A
          CHAR: MSTYPE = SPEC_VAR_TOTSRC_A
        ENDDIR
      ENDCASE
 
      CASE: /FLOW/{Zone}/{Bcp}/FRAME_TYPE
      ISNOT: *NONE*
        CHAR: /FLOW/{Zone}/{Bcp}/FRAME_TYPE, FRAME_TYPE
      ELSE:
        CHAR: /FLOW/{Zone}/DOMAIN_MODELS/DOMAIN_MOTION/OPTION, FRAME_TYPE
      ENDCASE

      // Transfer VARIABLE's associated with mass source
      // Driven by automatic catalog
      FOR: Var = {SourceDir}/{MmsName}/CVAR
        COPDIR: {Var}
          CATLG: VAR
          CASE: {SourceDir}/{MmsName}/{Var}/OPTION
          IS: Cartesian Vector Components
            CHAR: MSTYPE = SPEC_VAR_{Var}
          IS: Cylindrical Vector Components
            CHAR: MSTYPE = SPEC_VAR_{Var}
          IS: Symmetric Tensor Components
            CHAR: MSTYPE = SPEC_VAR_{Var}
          IS: Value
            CHAR: MSTYPE = SPEC_VAR_{Var}
          IS: Determine From Mass Flux
            CHAR: MSTYPE = SPEC_VAR_TOTSRC_A
          ELSE:
            MESAGE: Unsupported option for VARIABLE in Total Fluid Mass Source
            EXIT
          ENDCASE
        ENDDIR
      ENDFOR

      // Transfer special linearisation cofficients
      // TOTSRC_B_PRES, TOTSRC_B_VOLFRC
      CASE: {SourceDir}/{MmsName}/TOTSRC_B_PRES
      IS: *DIR*
        COPDIR: TOTSRC_B_PRES
        ENDDIR
      ENDCASE

      CASE: {SourceDir}/{MmsName}/TOTSRC_B_VOLFRC
      IS: *DIR*
        COPDIR: TOTSRC_B_VOLFRC
        ENDDIR
      ENDCASE

      // Transfer linearisation cofficient TOTSRC_B
      // Driven by linearisation variable list
      // Assumption: only one item in list in 5.5
      FOR: Var = {SourceDir}/{MmsName}/SOURCE_VAR
        CASE: {Var}
        IS: PRES
          MAKDIR: {Var}
            CATLG: VAR
            COPDIR: TOTSRC_B
            ENDDIR
          ENDDIR
        ELSE
          MAKDIR: {Var}{_Fluid}
            CATLG: VAR
            COPDIR: TOTSRC_B
            ENDDIR
          ENDDIR
        ENDCASE
      ENDFOR

    ENDDIR
  ENDFOR
END

SOURCES: EQUATION SOURCE, Total Source
  USE: SOURCES: EQUATION SOURCE, Total Source for CurrentFluidList

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {SrcScope}
  IS: Porous, SHARED
  ELSE
    USE: SOURCES: EQUATION SOURCE, Total Source for CurrentSolidList
  ENDCASE
END

SOURCES: EQUATION SOURCE, Total Source for CurrentFluidList
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: {MmsName}{_Fluid} // {Eqn}
      CATLG: EQN
      // Transfer multiply by porosity
      CASE: {SourceDir}/{MmsName}/MULT_BY_POR
      ISNOT: *NONE*
        LOGL: MULT_BY_POR, MULT_BY_POR
      ENDCASE
      CASE: {SourceDir}/{MmsName}/VALUE
      IS: *DIR*
        COPDIR: VALUE, TOTSRC_A
        ENDDIR
      ENDCASE
      CASE: {SourceDir}/{MmsName}/TOTSRC_B,{SourceDir}/{MmsName}/SOURCE_VAR
      IS: *DIR*,*NONE*
        COPDIR: TOTSRC_B
        ENDDIR
      IS: *DIR*,*DIR*
        FOR: Var = {SourceDir}/{MmsName}/SOURCE_VAR
          MAKDIR: {Var}{_Fluid}
            CATLG: VAR
            COPDIR: TOTSRC_B
            ENDDIR
          ENDDIR
        ENDFOR
      ENDCASE
    ENDDIR
  ENDFOR
END

SOURCES: EQUATION SOURCE, Total Source for CurrentSolidList
  FOR: Solid = {CurrentSolidList}
    MAKDIR: {MmsName}{_Solid} // {Eqn}
      CATLG: EQN
      // Transfer multiply by porosity
      CASE: {SourceDir}/{MmsName}/MULT_BY_POR
      ISNOT: *NONE*
        LOGL: MULT_BY_POR, MULT_BY_POR
      ENDCASE
      CASE: {SourceDir}/{MmsName}/VALUE
      IS: *DIR*
        COPDIR: VALUE, TOTSRC_A
        ENDDIR
      ENDCASE
      CASE: {SourceDir}/{MmsName}/TOTSRC_B,{SourceDir}/{MmsName}/SOURCE_VAR
      IS: *DIR*,*NONE*
        COPDIR: TOTSRC_B
        ENDDIR
      IS: *DIR*,*DIR*
        FOR: Var = {SourceDir}/{MmsName}/SOURCE_VAR
          MAKDIR: {Var}{_Solid}
            CATLG: VAR
            COPDIR: TOTSRC_B
            ENDDIR
          ENDDIR
        ENDFOR
      ENDCASE
    ENDDIR
  ENDFOR
END

SOURCES: MOMENTUM SOURCE
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: MOM{_Fluid}
       CATLG: EQN

       // Transfer flag indicating whether source contributes to total energy

       CASE: {SourceDir}/{MmsName}/LSOUM_TOTALH
       IS: *NONE*
       ELSE
         LOGL: LSOUM_TOTALH, LSOUM_TOTALH
       ENDCASE

       // Transfer general momentum source, and set default Rhie-Chow behaviour

       CASE: {SourceDir}/{MmsName}/GENSOU/OPTION
       IS: *NONE*
       ELSE
         COPDIR: GENSOU
         ENDDIR
       ENDCASE
       CASE: {SourceDir}/{MmsName}/GENSOU/LCOEF_RC, {SourceDir}/{MmsName}/GENSO\
U
       IS: *NONE*,*DIR*
         LOGL: GENSOU/LCOEF_RC = .FALSE.
       ENDCASE

       // Transfer loss model, and set default Rhie-Chow behaviour
 
       CASE: {SourceDir}/{MmsName}/LOSSM/OPTION
       IS: *NONE*
       ELSE
         COPDIR: LOSSM
         ENDDIR
       ENDCASE

       CASE: {SourceDir}/{MmsName}/LOSSM/DIRLOSS/LCOEF_RC, {SourceDir}/{MmsName\
}/LOSSM/DIRLOSS
       IS: *NONE*,*DIR*
         LOGL: LOSSM/DIRLOSS/LCOEF_RC = .TRUE.
       ENDCASE
       CASE: {SourceDir}/{MmsName}/LOSSM/RESIST/LCOEF_RC,  {SourceDir}/{MmsName\
}/LOSSM/RESIST
       IS: *NONE*,*DIR*
         LOGL: LOSSM/RESIST/LCOEF_RC = .TRUE.
       ENDCASE

    ENDDIR
  ENDFOR
  FOR: Solid = {CurrentSolidList}
    MAKDIR: MOM{_Solid}
       CATLG: EQN

       // Transfer flag indicating whether source contributes to total energy

       CASE: {SourceDir}/{MmsName}/LSOUM_TOTALH
       IS: *NONE*
       ELSE
         LOGL: LSOUM_TOTALH, LSOUM_TOTALH
       ENDCASE

       // Transfer general momentum source

       CASE: {SourceDir}/{MmsName}/GENSOU/OPTION
       IS: *NONE*
       ELSE
         COPDIR: GENSOU
         ENDDIR
       ENDCASE

      // Transfer loss model

      CASE: {SourceDir}/{MmsName}/LOSSM/OPTION
      IS: *NONE*
      ELSE
        COPDIR: LOSSM
        ENDDIR
      ENDCASE
    ENDDIR
  ENDFOR
END

SOURCES: RADIATION SOURCE, Directional Radiation Flux
  // Transfer FLUX_A 
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: RADINT{_Fluid}
      CATLG: EQN
      COPDIR: {SourceDir}/{MmsName}, ./{MmsName}
        CATLG: TRAD
      ENDDIR
    ENDDIR
  ENDFOR

  FOR: Solid = {CurrentSolidList}
    MAKDIR: RADINT{_Solid}
      CATLG: EQN
      COPDIR: {SourceDir}/{MmsName}, ./{MmsName}
        CATLG: TRAD
      ENDDIR
    ENDDIR
  ENDFOR
END

SOURCES: RADIATION SOURCE, Directional Radiation Source
  // Transfer SOURCE_A 
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: RADINT{_Fluid}
      CATLG: EQN
      COPDIR: {SourceDir}/{MmsName}, ./{MmsName}
        CATLG: TRAD
      ENDDIR
    ENDDIR
  ENDFOR

  FOR: Solid = {CurrentSolidList}
    MAKDIR: RADINT{_Solid}
      CATLG: EQN
      COPDIR: {SourceDir}/{MmsName}, ./{MmsName}
        CATLG: TRAD
      ENDDIR
    ENDDIR
  ENDFOR
END

SOURCES: RADIATION SOURCE, Isotropic Radiation Flux
  // Transfer FLUX_A 
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: RADINT{_Fluid}
      CATLG: EQN
      COPDIR: {SourceDir}/{MmsName}, ./{MmsName}
        CATLG: TRAD
      ENDDIR
    ENDDIR
  ENDFOR

  FOR: Solid = {CurrentSolidList}
    MAKDIR: RADINT{_Solid}
      CATLG: EQN
      COPDIR: {SourceDir}/{MmsName}, ./{MmsName}
        CATLG: TRAD
      ENDDIR
    ENDDIR
  ENDFOR
END

SOURCES: RADIATION SOURCE, Isotropic Radiation Source
  // Transfer SOURCE_A 
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: RADINT{_Fluid}
      CATLG: EQN
      COPDIR: {SourceDir}/{MmsName}, ./{MmsName}
        CATLG: TRAD
      ENDDIR
    ENDDIR
  ENDFOR

  FOR: Solid = {CurrentSolidList}
    MAKDIR: RADINT{_Solid}
      CATLG: EQN
      COPDIR: {SourceDir}/{MmsName}, ./{MmsName}
        CATLG: TRAD
      ENDDIR
    ENDDIR
  ENDFOR
END

SOURCES: RADIATION SOURCE, Polar Distribution Function
  // Transfer FLUX_A 
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: RADINT{_Fluid}
      CATLG: EQN
      COPDIR: {SourceDir}/{MmsName}, ./{MmsName}
        CATLG: TRAD
      ENDDIR
    ENDDIR
  ENDFOR

  FOR: Solid = {CurrentSolidList}
    MAKDIR: RADINT{_Solid}
      CATLG: EQN
      COPDIR: {SourceDir}/{MmsName}, ./{MmsName}
        CATLG: TRAD
      ENDDIR
    ENDDIR
  ENDFOR
END

SOURCES: RADIATION SOURCE, Total Directional Radiation Source
  // Transfer TOTSRC_A 
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: RADINT{_Fluid}
      CATLG: EQN
      COPDIR: {SourceDir}/{MmsName}, ./{MmsName}
        CATLG: TRAD
      ENDDIR
    ENDDIR
  ENDFOR

  FOR: Solid = {CurrentSolidList}
    MAKDIR: RADINT{_Solid}
      CATLG: EQN
      COPDIR: {SourceDir}/{MmsName}, ./{MmsName}
        CATLG: TRAD
      ENDDIR
    ENDDIR
  ENDFOR
END

SOURCES: RADIATION SOURCE, Total Isotropic Radiation Source
  // Transfer TOTSRC_A 
  FOR: Fluid = {CurrentFluidList}
    MAKDIR: RADINT{_Fluid}
      CATLG: EQN
      COPDIR: {SourceDir}/{MmsName}, ./{MmsName}
        CATLG: TRAD
      ENDDIR
    ENDDIR
  ENDFOR

  FOR: Solid = {CurrentSolidList}
    MAKDIR: RADINT{_Solid}
      CATLG: EQN
      COPDIR: {SourceDir}/{MmsName}, ./{MmsName}
        CATLG: TRAD
      ENDDIR
    ENDDIR
  ENDFOR
END

///////////////////////////////////////////////////////////////////////////////
//   IC data area
///////////////////////////////////////////////////////////////////////////////

IC: ADDITIONAL VARIABLE, Automatic
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/{AddVar}{_Fluid}
    IS: *NONE*
      COPDIR: AV, {AddVar}{_Fluid}
        CHAR: ICTYPE = AUTO_DEF_{AddVar}
      ENDDIR
    ENDCASE
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {IcScope}
  IS: Porous, SHARED
  ELSE
    USE: IC: ADDITIONAL VARIABLE, Automatic for CurrentSolidList
  ENDCASE
END

IC: ADDITIONAL VARIABLE, Automatic for CurrentSolidList
  FOR: Solid = {CurrentSolidList}
    CASE: {TargetDir}/{AddVar}{_Solid}
    IS: *NONE*
      COPDIR: AV, {AddVar}{_Solid}
        CHAR: ICTYPE = AUTO_DEF_{AddVar}
      ENDDIR
    ENDCASE
  ENDFOR
END

IC: ADDITIONAL VARIABLE, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/{AddVar}{_Fluid}
    IS: *NONE*
      COPDIR: AV, {AddVar}{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_{AddVar}
      ENDDIR
    ENDCASE
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {IcScope}
  IS: Porous, SHARED
  ELSE
    USE: IC: ADDITIONAL VARIABLE, Automatic with Value for CurrentSolidList
  ENDCASE
END

IC: ADDITIONAL VARIABLE, Automatic with Value for CurrentSolidList
  FOR: Solid = {CurrentSolidList}
    CASE: {TargetDir}/{AddVar}{_Solid}
    IS: *NONE*
      COPDIR: AV, {AddVar}{_Solid}
        CHAR: ICTYPE = AUTO_VAR_{AddVar}
      ENDDIR
    ENDCASE
  ENDFOR
END

IC: ADDITIONAL VARIABLE, Default
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/{AddVar}{_Fluid}
    IS: *NONE*
      COPDIR: AV, {AddVar}{_Fluid}
        CHAR: ICTYPE = DEFAULT
      ENDDIR
    ENDCASE
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {IcScope}
  IS: Porous, SHARED
  ELSE
    USE: IC: ADDITIONAL VARIABLE, Default for CurrentSolidList
  ENDCASE
END

IC: ADDITIONAL VARIABLE, Default for CurrentSolidList
  FOR: Solid = {CurrentSolidList}
    CASE: {TargetDir}/{AddVar}{_Solid}
    IS: *NONE*
      COPDIR: AV, {AddVar}{_Solid}
        CHAR: ICTYPE = DEFAULT
      ENDDIR
    ENDCASE
  ENDFOR
END

IC: ADDITIONAL VARIABLE, Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/{AddVar}{_Fluid}
    IS: *NONE*
      COPDIR: AV, {AddVar}{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_{AddVar}
      ENDDIR
    ENDCASE
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {IcScope}
  IS: Porous, SHARED
  ELSE
    USE: IC: ADDITIONAL VARIABLE, Value for CurrentSolidList
  ENDCASE
END

IC: ADDITIONAL VARIABLE, Value for CurrentSolidList
  FOR: Solid = {CurrentSolidList}
    CASE: {TargetDir}/{AddVar}{_Solid}
    IS: *NONE*
      COPDIR: AV, {AddVar}{_Solid}
        CHAR: ICTYPE = SPEC_VAR_{AddVar}
      ENDDIR
    ENDCASE
  ENDFOR
END

IC: ANGULAR ACCELERATION, Automatic
  COPDIR: ., RBAACC
    CHAR: ICTYPE = AUTO_DEF_RBAACC
  ENDDIR
END

IC: ANGULAR ACCELERATION, Automatic with Value
  COPDIR: ., RBAACC
    CHAR: ICTYPE = AUTO_VAR_RBAACC
  ENDDIR
END

IC: ANGULAR VELOCITY, Automatic
  COPDIR: ., RBAVEL
    CHAR: ICTYPE = AUTO_DEF_RBAVEL
  ENDDIR
END

IC: ANGULAR VELOCITY, Automatic with Value
  COPDIR: ., RBAVEL
    CHAR: ICTYPE = AUTO_VAR_RBAVEL
  ENDDIR
END

IC: AUTOIGNITION, Automatic
  FOR: Fluid = {CurrentFluidList}
    CHAR: IGNFRC{_Fluid}/ICTYPE = AUTO_DEF_IGNFRC
  ENDFOR
END

IC: AUTOIGNITION, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  IGNFRC, IGNFRC{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_IGNFRC
    ENDDIR
  ENDFOR
END

IC: AUTOIGNITION, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: IGNFRC{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
END

IC: AUTOIGNITION, Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  IGNFRC, IGNFRC{_Fluid}
      CHAR: ICTYPE = SPEC_VAR_IGNFRC
    ENDDIR
  ENDFOR
END

IC: CARTESIAN VELOCITY COMPONENTS, Automatic
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/VEL{_Fluid}
    IS: *NONE*
      COPDIR: VEL, VEL{_Fluid}
        CHAR: ICTYPE = AUTO_DEF_VEL
      ENDDIR
    ENDCASE
    CASE: {SourceDir}/{MmsName}/VELFLUC
      IS: *DIR*
        COPDIR: VELFLUC, VELFLUC{_Fluid}
        ENDDIR
    ENDCASE
    CASE: {SourceDir}/{MmsName}/VSCALE
      IS: *DIR*
        COPDIR: VSCALE, VSCALE{_Fluid}
        ENDDIR
    ENDCASE
  ENDFOR
END

IC: CARTESIAN VELOCITY COMPONENTS, Automatic with Value
  CASE: /FLOW/{Zone}/INITIALISATION/FRAME_TYPE
  IS: *NONE*
    CHAR: {SourceDir}/{MmsName}/VEL/ICTYPE = AUTO_VAR_VELS
  IS: Stationary
    CHAR: {SourceDir}/{MmsName}/VEL/ICTYPE = AUTO_VAR_VELS
  ELSE
    CHAR: {SourceDir}/{MmsName}/VEL/ICTYPE = AUTO_VAR_VEL
  ENDCASE
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/VEL{_Fluid}
    IS: *NONE*
      COPDIR: VEL, VEL{_Fluid}
      ENDDIR
    ENDCASE
    CASE: {SourceDir}/{MmsName}/VELFLUC
      IS: *DIR*
        COPDIR: VELFLUC, VELFLUC{_Fluid}
        ENDDIR
    ENDCASE
  ENDFOR
END

IC: CARTESIAN VELOCITY COMPONENTS, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: VEL{_Fluid}/ICTYPE = DEFAULT
    CHAR: VELS{_Fluid}/ICTYPE = DEFAULT
    CHAR: MFLOIP{_Fluid}/ICTYPE = DEFAULT
    CHAR: SSTRNR{_Fluid}/ICTYPE = DEFAULT
    CHAR: VORT{_Fluid}/ICTYPE = DEFAULT
    CASE: {SourceDir}/{MmsName}/VELFLUC
      IS: *DIR*
        COPDIR: VELFLUC, VELFLUC{_Fluid}
        ENDDIR
    ENDCASE
    CASE: {SourceDir}/{MmsName}/VSCALE
      IS: *DIR*
        COPDIR: VSCALE, VSCALE{_Fluid}
        ENDDIR
    ENDCASE
  ENDFOR
END

IC: CARTESIAN VELOCITY COMPONENTS, Value
  FOR: Fluid = {CurrentFluidList}
    CASE: /FLOW/{Zone}/INITIALISATION/FRAME_TYPE
    IS: *NONE*
      CHAR: VELS{_Fluid}/ICTYPE = SPEC_VAR_VELS
      CHAR: MFLOIP{_Fluid}/ICTYPE = SPEC_VAR_VELS
      CHAR: SSTRNR{_Fluid}/ICTYPE = SPEC_VAR_VELS
      CHAR: VORT{_Fluid}/ICTYPE = SPEC_VAR_VELS
      COPDIR: VEL, VEL{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_VELS
      ENDDIR
    IS: Stationary
      CHAR: VELS{_Fluid}/ICTYPE = SPEC_VAR_VELS
      CHAR: MFLOIP{_Fluid}/ICTYPE = SPEC_VAR_VELS
      CHAR: SSTRNR{_Fluid}/ICTYPE = SPEC_VAR_VELS
      CHAR: VORT{_Fluid}/ICTYPE = SPEC_VAR_VELS
      COPDIR: VEL, VEL{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_VELS
      ENDDIR
    ELSE
      CHAR: VELS{_Fluid}/ICTYPE = SPEC_VAR_VEL
      CHAR: MFLOIP{_Fluid}/ICTYPE = SPEC_VAR_VEL
      CHAR: SSTRNR{_Fluid}/ICTYPE = SPEC_VAR_VEL
      CHAR: VORT{_Fluid}/ICTYPE = SPEC_VAR_VEL
      COPDIR: VEL, VEL{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDCASE
    CASE: {SourceDir}/{MmsName}/VELFLUC
      IS: *DIR*
        COPDIR: VELFLUC, VELFLUC{_Fluid}
        ENDDIR
    ENDCASE
  ENDFOR
END

IC: CENTRE OF MASS, Automatic
  COPDIR: ., RBCOM
    CHAR: ICTYPE = AUTO_DEF_RBCOM
  ENDDIR
END

IC: CENTRE OF MASS, Automatic with Value
  COPDIR: ., RBCOM
    CHAR: ICTYPE = AUTO_VAR_RBCOM
  ENDDIR
END

IC: COMPONENT, Automatic
  FOR: Fluid = {CurrentFluidList}
    COPDIR: MASFRC, MASFRC{_Component}{_Fluid}
      CHAR: ICTYPE = AUTO_DEF_MASFRC
      CHAR: ALIAS, MT_ALIAS // There is another ALIAS already in MASFRC
    ENDDIR
  ENDFOR
END

IC: COMPONENT, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR: MASFRC, MASFRC{_Component}{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_MASFRC
      CHAR: ALIAS, MT_ALIAS // There is another ALIAS already in MASFRC
    ENDDIR
  ENDFOR
END

IC: COMPONENT, Default
  FOR: Fluid = {CurrentFluidList}
    COPDIR: MASFRC, MASFRC{_Component}{_Fluid}
      CHAR: ICTYPE = DEFAULT
      CHAR: ALIAS, MT_ALIAS // There is another ALIAS already in MASFRC
    ENDDIR
  ENDFOR
END

IC: COMPONENT, Mass Fraction
  FOR: Fluid = {CurrentFluidList}
    COPDIR: MASFRC, MASFRC{_Component}{_Fluid}
      CHAR: ICTYPE = SPEC_VAR_MASFRC
      CHAR: ALIAS, MT_ALIAS // There is another ALIAS already in MASFRC
    ENDDIR
  ENDFOR
END

IC: COMPONENT, Molar Fraction
  FOR: Fluid = {CurrentFluidList}
    CHAR: MASFRC{_Component}{_Fluid}/ICTYPE = SPEC_VAR_MOLFRC
    COPDIR: MOLFRC, MOLFRC{_Component}{_Fluid}
      CHAR: ALIAS, MT_ALIAS // There is another ALIAS already in MASFRC
    ENDDIR
  ENDFOR
END

IC: COMPONENT, Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR: MASFRC, MASFRC{_Component}{_Fluid}
      CHAR: ICTYPE = SPEC_VAR_MASFRC
      CHAR: ALIAS, MT_ALIAS // There is another ALIAS already in MASFRC
    ENDDIR
  ENDFOR
END

IC: CYLINDRICAL VELOCITY COMPONENTS, Automatic
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/VEL{_Fluid}
    IS: *NONE*
      COPDIR: VEL, VEL{_Fluid}
        CHAR: ICTYPE = AUTO_DEF_VEL
      ENDDIR
    ENDCASE
    CASE: {SourceDir}/{MmsName}/VELFLUC
      IS: *DIR*
        COPDIR: VELFLUC, VELFLUC{_Fluid}
        ENDDIR
    ENDCASE
    CASE: {SourceDir}/{MmsName}/VSCALE
      IS: *DIR*
        COPDIR: VSCALE, VSCALE{_Fluid}
        ENDDIR
    ENDCASE
  ENDFOR

  CASE: {SourceDir}/{MmsName}/AXIS/AROT, {SourceDir}/{MmsName}/AXIS/BROT
  IS: *DIR*,*DIR*
    FOR: Fluid = {CurrentFluidList}
      COPDIR: AXIS/AROT, AXIS/AROT{_Fluid}
      ENDDIR
      COPDIR: AXIS/BROT, AXIS/BROT{_Fluid}
      ENDDIR
    ENDFOR
  IS: *DIR*,*NONE*
     MESAGE: Invalid initial condition rotation axis specification 
     EXIT
  IS: *NONE*,*DIR*
     MESAGE: Invalid initial condition rotation axis specification 
     EXIT
  ENDCASE
END

IC: CYLINDRICAL VELOCITY COMPONENTS, Automatic with Value
  CASE: /FLOW/{Zone}/INITIALISATION/FRAME_TYPE
  IS: *NONE*
    CHAR: {SourceDir}/{MmsName}/VEL/ICTYPE = AUTO_VAR_VELS
  IS: Stationary
    CHAR: {SourceDir}/{MmsName}/VEL/ICTYPE = AUTO_VAR_VELS
  ELSE
    CHAR: {SourceDir}/{MmsName}/VEL/ICTYPE = AUTO_VAR_VEL
  ENDCASE

  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/VEL{_Fluid}
    IS: *NONE*
      COPDIR: VEL, VEL{_Fluid}
      ENDDIR
    ENDCASE
    CASE: {SourceDir}/{MmsName}/VELFLUC
      IS: *DIR*
        COPDIR: VELFLUC, VELFLUC{_Fluid}
        ENDDIR
    ENDCASE
  ENDFOR

  CASE: {SourceDir}/{MmsName}/AXIS/AROT, {SourceDir}/{MmsName}/AXIS/BROT
  IS: *DIR*,*DIR*
    FOR: Fluid = {CurrentFluidList}
      COPDIR: AXIS/AROT, AXIS/AROT{_Fluid}
      ENDDIR
      COPDIR: AXIS/BROT, AXIS/BROT{_Fluid}
      ENDDIR
    ENDFOR
  IS: *DIR*,*NONE*
     MESAGE: Invalid initial condition rotation axis specification 
     EXIT
  IS: *NONE*,*DIR*
     MESAGE: Invalid initial condition rotation axis specification 
     EXIT
  ENDCASE
END

IC: CYLINDRICAL VELOCITY COMPONENTS, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: VEL{_Fluid}/ICTYPE = DEFAULT
    CHAR: VELS{_Fluid}/ICTYPE = DEFAULT
    CHAR: MFLOIP{_Fluid}/ICTYPE = DEFAULT
    CHAR: SSTRNR{_Fluid}/ICTYPE = DEFAULT
    CHAR: VORT{_Fluid}/ICTYPE = DEFAULT
    CASE: {SourceDir}/{MmsName}/VELFLUC
      IS: *DIR*
        COPDIR: VELFLUC, VELFLUC{_Fluid}
        ENDDIR
    ENDCASE
    CASE: {SourceDir}/{MmsName}/VSCALE
      IS: *DIR*
        COPDIR: VSCALE, VSCALE{_Fluid}
        ENDDIR
    ENDCASE
  ENDFOR

  CASE: {SourceDir}/{MmsName}/AXIS/AROT, {SourceDir}/{MmsName}/AXIS/BROT
  IS: *DIR*,*DIR*
    FOR: Fluid = {CurrentFluidList}
      COPDIR: AXIS/AROT, AXIS/AROT{_Fluid}
      ENDDIR
      COPDIR: AXIS/BROT, AXIS/BROT{_Fluid}
      ENDDIR
    ENDFOR
  IS: *DIR*,*NONE*
     MESAGE: Invalid initial condition rotation axis specification 
     EXIT
  IS: *NONE*,*DIR*
     MESAGE: Invalid initial condition rotation axis specification 
     EXIT
  ENDCASE
END

IC: CYLINDRICAL VELOCITY COMPONENTS, Value
  FOR: Fluid = {CurrentFluidList}
    CASE: /FLOW/{Zone}/INITIALISATION/FRAME_TYPE
    IS: *NONE*
      CHAR: VELS{_Fluid}/ICTYPE = SPEC_VAR_VELS
      CHAR: MFLOIP{_Fluid}/ICTYPE = SPEC_VAR_VELS
      CHAR: SSTRNR{_Fluid}/ICTYPE = SPEC_VAR_VELS
      CHAR: VORT{_Fluid}/ICTYPE = SPEC_VAR_VELS
      COPDIR: VEL, VEL{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_VELS
      ENDDIR
    IS: Stationary
      CHAR: VELS{_Fluid}/ICTYPE = SPEC_VAR_VELS
      CHAR: MFLOIP{_Fluid}/ICTYPE = SPEC_VAR_VELS
      CHAR: SSTRNR{_Fluid}/ICTYPE = SPEC_VAR_VELS
      CHAR: VORT{_Fluid}/ICTYPE = SPEC_VAR_VELS
      COPDIR: VEL, VEL{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_VELS
      ENDDIR
    ELSE
      CHAR: VELS{_Fluid}/ICTYPE = SPEC_VAR_VEL
      CHAR: MFLOIP{_Fluid}/ICTYPE = SPEC_VAR_VEL
      CHAR: SSTRNR{_Fluid}/ICTYPE = SPEC_VAR_VEL
      CHAR: VORT{_Fluid}/ICTYPE = SPEC_VAR_VEL
      COPDIR: VEL, VEL{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_VEL
      ENDDIR
    ENDCASE
    CASE: {SourceDir}/{MmsName}/VELFLUC
      IS: *DIR*
        COPDIR: VELFLUC, VELFLUC{_Fluid}
        ENDDIR
    ENDCASE
  ENDFOR

  CASE: {SourceDir}/{MmsName}/AXIS/AROT, {SourceDir}/{MmsName}/AXIS/BROT
  IS: *DIR*,*DIR*
    FOR: Fluid = {CurrentFluidList}
      COPDIR: AXIS/AROT, AXIS/AROT{_Fluid}
      ENDDIR
      COPDIR: AXIS/BROT, AXIS/BROT{_Fluid}
      ENDDIR
    ENDFOR
  IS: *DIR*,*NONE*
     MESAGE: Invalid initial condition rotation axis specification 
     EXIT
  IS: *NONE*,*DIR*
     MESAGE: Invalid initial condition rotation axis specification 
     EXIT
  ENDCASE
END

IC: DISPLACEMENT, Automatic
  FOR: Solid = {CurrentSolidList}
    CHAR: DISP{_Solid}/ICTYPE = AUTO_DEF_DISP
  ENDFOR
END

IC: DISPLACEMENT, Automatic with Value
  FOR: Solid = {CurrentSolidList}
    COPDIR: VALUE, DISP{_Solid}
      CHAR: ICTYPE = AUTO_VAR_DISP
    ENDDIR
  ENDFOR
END

IC: DISPLACEMENT, Value
  FOR: Solid = {CurrentSolidList}
    COPDIR: VALUE, DISP{_Solid}
      CHAR: ICTYPE = SPEC_VAR_DISP
    ENDDIR
  ENDFOR
END

IC: DROPLET NUMBER, Automatic
  FOR: Fluid = {CurrentFluidList}
    COPDIR: SPDROPN, SPDROPN{_Fluid}
      CHAR: ICTYPE = AUTO_DEF_SPDROPN
    ENDDIR
  ENDFOR
END

IC: DROPLET NUMBER, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR: SPDROPN, SPDROPN{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_SPDROPN
    ENDDIR
  ENDFOR
END

IC: DROPLET NUMBER, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: SPDROPN{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
END

IC: DROPLET NUMBER, Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR: SPDROPN, SPDROPN{_Fluid}
      CHAR: ICTYPE = SPEC_VAR_SPDROPN
    ENDDIR
  ENDFOR
END

IC: EDDY LENGTH SCALE, Automatic
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TED{_Fluid}, {TargetDir}/TEF{_Fluid}
    IS: *NONE*, *NONE*
      COPDIR: TED, TED{_Fluid}
        CHAR: ICTYPE = AUTO_DEF_TED
      ENDDIR
      CHAR: TEF{_Fluid}/ICTYPE = AUTO_DEF_TED
    ENDCASE
  ENDFOR
END

IC: EDDY LENGTH SCALE, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TED{_Fluid}, {TargetDir}/TEF{_Fluid}
    IS: *NONE*, *NONE*
      COPDIR: TLS, TLS{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_TLS
      ENDDIR
      CHAR: TED{_Fluid}/ICTYPE = AUTO_VAR_TLS
      CHAR: TEF{_Fluid}/ICTYPE = AUTO_VAR_TLS
    ENDCASE
  ENDFOR
END

IC: EDDY LENGTH SCALE, Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TED{_Fluid}, {TargetDir}/TEF{_Fluid}
    IS: *NONE*, *NONE*
      COPDIR: TLS, TLS{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_TLS
      ENDDIR
      CHAR: TED{_Fluid}/ICTYPE = SPEC_VAR_TLS
      CHAR: TEF{_Fluid}/ICTYPE = SPEC_VAR_TLS
    ENDCASE
  ENDFOR
END

IC: EDDY VISCOSITY RATIO, Automatic
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TED{_Fluid}, {TargetDir}/TEF{_Fluid}
    IS: *NONE*, *NONE*
      COPDIR: TED, TED{_Fluid}
        CHAR: ICTYPE = AUTO_DEF_TED
      ENDDIR
      CHAR: TEF{_Fluid}/ICTYPE = AUTO_DEF_TED
    ENDCASE
  ENDFOR
END

IC: EDDY VISCOSITY RATIO, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TED{_Fluid}, {TargetDir}/TEF{_Fluid}
    IS: *NONE*, *NONE*
      COPDIR: TVR, TVR{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_TVR
      ENDDIR
      CHAR: TED{_Fluid}/ICTYPE = AUTO_VAR_TVR
      CHAR: TEF{_Fluid}/ICTYPE = AUTO_VAR_TVR
    ENDCASE
  ENDFOR
END

IC: EDDY VISCOSITY RATIO, Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TED{_Fluid}, {TargetDir}/TEF{_Fluid}
    IS: *NONE*, *NONE*
      COPDIR: TVR, TVR{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_TVR
      ENDDIR
      CHAR: TED{_Fluid}/ICTYPE = SPEC_VAR_TVR
      CHAR: TEF{_Fluid}/ICTYPE = SPEC_VAR_TVR
    ENDCASE
  ENDFOR
END
 
IC: ELECTRIC POTENTIAL, Automatic
  FOR: Fluid = {CurrentFluidList}
    COPDIR: EPOT, EPOT{_Fluid}
      CHAR: ICTYPE = AUTO_DEF_EPOT
    ENDDIR
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {IcScope}
  IS: Porous, SHARED
  ELSE
    USE: IC: ELECTRIC POTENTIAL, Automatic for CurrentSolidList
  ENDCASE
END

IC: ELECTRIC POTENTIAL, Automatic for CurrentSolidList
  FOR: Solid = {CurrentSolidList}
    CASE: {TargetDir}/EPOT{_Solid}
    IS: *NONE*
      COPDIR: EPOT, EPOT{_Solid}
        CHAR: ICTYPE = AUTO_DEF_EPOT
      ENDDIR
    ENDCASE
  ENDFOR
END

IC: ELECTRIC POTENTIAL, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  EPOT,  EPOT{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_EPOT
    ENDDIR
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {IcScope}
  IS: Porous, SHARED
  ELSE
    USE: IC: ELECTRIC POTENTIAL, Automatic with Value for CurrentSolidList
  ENDCASE
END

IC: ELECTRIC POTENTIAL, Automatic with Value for CurrentSolidList
  FOR: Solid = {CurrentSolidList}
    CASE: {TargetDir}/EPOT{_Solid}
    IS: *NONE*
      COPDIR: EPOT, EPOT{_Solid}
        CHAR: ICTYPE = AUTO_VAR_EPOT
      ENDDIR
    ENDCASE
  ENDFOR
END

IC: EPSILON, Automatic
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TED{_Fluid}, {TargetDir}/TEF{_Fluid}
    IS: *NONE*, *NONE*
      COPDIR: TED, TED{_Fluid}
        CHAR: ICTYPE = AUTO_DEF_TED
      ENDDIR
      CHAR: TEF{_Fluid}/ICTYPE = AUTO_DEF_TED
    ENDCASE
  ENDFOR
END

IC: EPSILON, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TED{_Fluid}, {TargetDir}/TEF{_Fluid}
    IS: *NONE*, *NONE*
      COPDIR: TED, TED{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_TED
      ENDDIR
      CHAR: TEF{_Fluid}/ICTYPE = AUTO_VAR_TED
    ENDCASE
  ENDFOR
END

IC: EPSILON, Default
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TED{_Fluid}, {TargetDir}/TEF{_Fluid}
    IS: *NONE*, *NONE*
      CHAR: TED{_Fluid}/ICTYPE = DEFAULT
      CHAR: TEF{_Fluid}/ICTYPE = DEFAULT
    ENDCASE
  ENDFOR
END

IC: EPSILON, Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TED{_Fluid}, {TargetDir}/TEF{_Fluid}
    IS: *NONE*, *NONE*
      COPDIR: TED, TED{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_TED
      ENDDIR
      CHAR: TEF{_Fluid}/ICTYPE = SPEC_VAR_TED
    ENDCASE
  ENDFOR
END

IC: FLAME SURFACE DENSITY, Automatic
  FOR: Fluid = {CurrentFluidList}
    CHAR: FSD{_Fluid}/ICTYPE   = AUTO_DEF_FSD
    CHAR: SPFSD{_Fluid}/ICTYPE = AUTO_DEF_FSD
  ENDFOR
END

IC: FLAME SURFACE DENSITY, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    CHAR: SPFSD{_Fluid}/ICTYPE = AUTO_VAR_FSD
    COPDIR: FSD, FSD{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_FSD
    ENDDIR
  ENDFOR
END

IC: FLAME SURFACE DENSITY, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: FSD{_Fluid}/ICTYPE   = DEFAULT
    CHAR: SPFSD{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
END

IC: FLAME SURFACE DENSITY, Value
  FOR: Fluid = {CurrentFluidList}
    CHAR: SPFSD{_Fluid}/ICTYPE = SPEC_VAR_FSD
    COPDIR:  FSD, FSD{_Fluid}
      CHAR: ICTYPE = SPEC_VAR_FSD
    ENDDIR
  ENDFOR
END

IC: FRACTIONAL INTENSITY, Automatic
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TKE{_Fluid}, {TargetDir}/RS{_Fluid}
    IS: *NONE*, *NONE*
      CHAR: TKE{_Fluid}/ICTYPE = AUTO_DEF_TKE
      CHAR: RS{_Fluid}/ICTYPE = AUTO_DEF_TKE
      CHAR: VISCTRB{_Fluid}/ICTYPE = AUTO_DEF_TKE
    ENDCASE
  ENDFOR
END

IC: FRACTIONAL INTENSITY, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TKE{_Fluid}, {TargetDir}/RS{_Fluid}
    IS: *NONE*, *NONE*
      COPDIR: TKI, TKI{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_TKI
      ENDDIR
      CHAR: TKE{_Fluid}/ICTYPE = AUTO_VAR_TKI
      CHAR: RS{_Fluid}/ICTYPE = AUTO_VAR_TKI
      CHAR: VISCTRB{_Fluid}/ICTYPE = AUTO_VAR_TKI
    ENDCASE
  ENDFOR
END

IC: FRACTIONAL INTENSITY, Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TKE{_Fluid}, {TargetDir}/RS{_Fluid}
      IS: *NONE*, *NONE*
      COPDIR: TKI, TKI{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_TKI
      ENDDIR
      CHAR: TKE{_Fluid}/ICTYPE = SPEC_VAR_TKI
      CHAR: RS{_Fluid}/ICTYPE = SPEC_VAR_TKI
      CHAR: VISCTRB{_Fluid}/ICTYPE = SPEC_VAR_TKI
    ENDCASE
  ENDFOR
END

IC: FUEL TRACER, Automatic
  FOR: Fluid = {CurrentFluidList}
    CHAR: TRFUEL{_Fluid}/ICTYPE = AUTO_DEF_TRFUEL
  ENDFOR
END

IC: FUEL TRACER, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  TRFUEL, TRFUEL{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_TRFUEL
    ENDDIR
  ENDFOR
END

IC: FUEL TRACER, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: TRFUEL{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
END

IC: FUEL TRACER, Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  TRFUEL, TRFUEL{_Fluid}
      CHAR: ICTYPE = SPEC_VAR_TRFUEL
    ENDDIR
  ENDFOR
END

IC: G SCALAR, Automatic
  FOR: Fluid = {CurrentFluidList}
    CHAR: GSCAL{_Fluid}/ICTYPE = AUTO_DEF_GSCAL
  ENDFOR
END

IC: G SCALAR, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  GSCAL, GSCAL{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_GSCAL
    ENDDIR
  ENDFOR
END

IC: G SCALAR, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: GSCAL{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
END

IC: G SCALAR, Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  GSCAL, GSCAL{_Fluid}
      CHAR: ICTYPE = SPEC_VAR_GSCAL
    ENDDIR
  ENDFOR
END

IC: G VARIANCE, Automatic
  FOR: Fluid = {CurrentFluidList}
    CHAR: GSVAR{_Fluid}/ICTYPE = AUTO_DEF_GSVAR
  ENDFOR
END

IC: G VARIANCE, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  GSVAR, GSVAR{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_GSVAR
    ENDDIR
  ENDFOR
END

IC: G VARIANCE, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: GSVAR{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
END

IC: G VARIANCE, Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  GSVAR, GSVAR{_Fluid}
      CHAR: ICTYPE = SPEC_VAR_GSVAR
    ENDDIR
  ENDFOR
END

IC: INERT MATERIAL, Automatic
  FOR: Fluid = {CurrentFluidList}
    CHAR: MFINERT{_Fluid}/ICTYPE = AUTO_DEF_MFINERT
  ENDFOR
END

IC: INERT MATERIAL, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  MASFRC, MFINERT{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_MFINERT
    ENDDIR
  ENDFOR
END

IC: INERT MATERIAL, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: MFINERT{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
END

IC: INERT MATERIAL, Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  MASFRC, MFINERT{_Fluid}
      CHAR: ICTYPE = SPEC_VAR_MFINERT
    ENDDIR
  ENDFOR
END

IC: K, Automatic
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TKE{_Fluid}, {TargetDir}/RS{_Fluid}
    IS: *NONE*, *NONE*
      CHAR: TKE{_Fluid}/ICTYPE = AUTO_DEF_TKE
      CHAR: RS{_Fluid}/ICTYPE = AUTO_DEF_TKE
      CHAR: VISCTRB{_Fluid}/ICTYPE = AUTO_DEF_TKE
    ENDCASE
  ENDFOR
END

IC: K, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TKE{_Fluid}, {TargetDir}/RS{_Fluid}
    IS: *NONE*, *NONE*
      COPDIR: TKE, TKE{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_TKE
      ENDDIR
      CHAR: RS{_Fluid}/ICTYPE = AUTO_VAR_TKE
      CHAR: VISCTRB{_Fluid}/ICTYPE = AUTO_VAR_TKE
    ENDCASE
  ENDFOR
END

IC: K, Default
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TKE{_Fluid}, {TargetDir}/RS{_Fluid}
    IS: *NONE*, *NONE*
      CHAR: TKE{_Fluid}/ICTYPE = DEFAULT
      CHAR: RS{_Fluid}/ICTYPE = DEFAULT
      CHAR: VISCTRB{_Fluid}/ICTYPE = DEFAULT
    ENDCASE
  ENDFOR
END

IC: K, Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TKE{_Fluid}, {TargetDir}/RS{_Fluid}
    IS: *NONE*, *NONE*
      COPDIR: TKE, TKE{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_TKE
      ENDDIR
      CHAR: RS{_Fluid}/ICTYPE = SPEC_VAR_TKE
      CHAR: VISCTRB{_Fluid}/ICTYPE = SPEC_VAR_TKE
    ENDCASE
  ENDFOR
END

IC: LINEAR ACCELERATION, Automatic
  COPDIR: ., RBLACC
    CHAR: ICTYPE = AUTO_DEF_RBLACC
  ENDDIR
END

IC: LINEAR ACCELERATION, Automatic with Value
  COPDIR: ., RBLACC
    CHAR: ICTYPE = AUTO_VAR_RBLACC
  ENDDIR
END

IC: LINEAR VELOCITY, Automatic
  COPDIR: ., RBLVEL
    CHAR: ICTYPE = AUTO_DEF_RBLVEL
  ENDDIR
END

IC: LINEAR VELOCITY, Automatic with Value
  COPDIR: ., RBLVEL
    CHAR: ICTYPE = AUTO_VAR_RBLVEL
  ENDDIR
END

IC: MAGNETIC SCALAR POTENTIAL, Automatic
  FOR: Fluid = {CurrentFluidList}
    COPDIR: HPOT, HPOT{_Fluid}
      CHAR: ICTYPE = AUTO_DEF_HPOT
    ENDDIR
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {IcScope}
  IS: Porous, SHARED
  ELSE
    USE: IC: MAGNETIC SCALAR POTENTIAL, Automatic for CurrentSolidList
  ENDCASE
END

IC: MAGNETIC SCALAR POTENTIAL, Automatic for CurrentSolidList
  FOR: Solid = {CurrentSolidList}
    CASE: {TargetDir}/HPOT{_Solid}
    IS: *NONE*
      COPDIR: HPOT, HPOT{_Solid}
        CHAR: ICTYPE = AUTO_DEF_HPOT
      ENDDIR
    ENDCASE
  ENDFOR
END

IC: MAGNETIC SCALAR POTENTIAL, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  HPOT, HPOT{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_HPOT
    ENDDIR
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {IcScope}
  IS: Porous, SHARED
  ELSE
    USE: IC: MAGNETIC SCALAR POTENTIAL, Automatic with Value for CurrentSolidLi\
st
  ENDCASE
END

IC: MAGNETIC SCALAR POTENTIAL, Automatic with Value for CurrentSolidList
  FOR: Solid = {CurrentSolidList}
    CASE: {TargetDir}/HPOT{_Solid}
    IS: *NONE*
      COPDIR: HPOT, HPOT{_Solid}
        CHAR: ICTYPE = AUTO_VAR_HPOT
      ENDDIR
    ENDCASE
  ENDFOR
END

IC: MAGNETIC VECTOR POTENTIAL, Automatic
  FOR: Fluid = {CurrentFluidList}
    COPDIR: BPOT, BPOT{_Fluid}
      CHAR: ICTYPE = AUTO_DEF_BPOT
    ENDDIR
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {IcScope}
  IS: Porous, SHARED
  ELSE
    USE: IC: MAGNETIC VECTOR POTENTIAL, Automatic for CurrentSolidList
  ENDCASE
END

IC: MAGNETIC VECTOR POTENTIAL, Automatic for CurrentSolidList
  FOR: Solid = {CurrentSolidList}
    CASE: {TargetDir}/BPOT{_Solid}
    IS: *NONE*
      COPDIR: BPOT, BPOT{_Solid}
        CHAR: ICTYPE = AUTO_DEF_BPOT
      ENDDIR
    ENDCASE
  ENDFOR
END

IC: MAGNETIC VECTOR POTENTIAL, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  BPOT, BPOT{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_BPOT
    ENDDIR
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {IcScope}
  IS: Porous, SHARED
  ELSE
    USE: IC: MAGNETIC VECTOR POTENTIAL, Automatic with Value for CurrentSolidLi\
st
  ENDCASE
END

IC: MAGNETIC VECTOR POTENTIAL, Automatic with Value for CurrentSolidList
  FOR: Solid = {CurrentSolidList}
    CASE: {TargetDir}/BPOT{_Solid}
    IS: *NONE*
      COPDIR: BPOT, BPOT{_Solid}
        CHAR: ICTYPE = AUTO_VAR_BPOT
      ENDDIR
    ENDCASE
  ENDFOR
END

IC: MIXTURE FRACTION, Automatic
  FOR: Fluid = {CurrentFluidList}
    CHAR: MIXFRC{_Fluid}/ICTYPE = AUTO_DEF_MIXFRC
  ENDFOR
END

IC: MIXTURE FRACTION, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  MIXFRC,  MIXFRC{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_MIXFRC
    ENDDIR
  ENDFOR
END

IC: MIXTURE FRACTION, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: MIXFRC{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
END

IC: MIXTURE FRACTION, Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  MIXFRC,  MIXFRC{_Fluid}
      CHAR: ICTYPE = SPEC_VAR_MIXFRC
    ENDDIR
  ENDFOR
END

IC: MIXTURE FRACTION VARIANCE, Automatic
  FOR: Fluid = {CurrentFluidList}
    CHAR: MIXVAR{_Fluid}/ICTYPE = AUTO_DEF_MIXVAR
  ENDFOR
END

IC: MIXTURE FRACTION VARIANCE, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  MIXVAR,  MIXVAR{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_MIXVAR
    ENDDIR
  ENDFOR
END

IC: MIXTURE FRACTION VARIANCE, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: MIXVAR{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
END

IC: MIXTURE FRACTION VARIANCE, Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  MIXVAR,  MIXVAR{_Fluid}
      CHAR: ICTYPE = SPEC_VAR_MIXVAR
    ENDDIR
  ENDFOR
END

IC: OMEGA, Automatic
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TED{_Fluid}, {TargetDir}/TEF{_Fluid}
    IS: *NONE*, *NONE*
      COPDIR: TEF, TEF{_Fluid}
        CHAR: ICTYPE = AUTO_DEF_TEF
      ENDDIR
      CHAR: TED{_Fluid}/ICTYPE = AUTO_DEF_TEF
    ENDCASE
  ENDFOR
END

IC: OMEGA, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TED{_Fluid}, {TargetDir}/TEF{_Fluid}
    IS: *NONE*, *NONE*
      COPDIR: TEF, TEF{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_TEF
      ENDDIR
      CHAR: TED{_Fluid}/ICTYPE = AUTO_VAR_TEF
    ENDCASE
  ENDFOR
END

IC: OMEGA, Default
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TED{_Fluid}, {TargetDir}/TEF{_Fluid}
    IS: *NONE*, *NONE*
      CHAR: TEF{_Fluid}/ICTYPE = DEFAULT
      CHAR: TED{_Fluid}/ICTYPE = DEFAULT
    ENDCASE
  ENDFOR
END

IC: OMEGA, Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TED{_Fluid}, {TargetDir}/TEF{_Fluid}
    IS: *NONE*, *NONE*
      COPDIR: TEF, TEF{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_TEF
      ENDDIR
      CHAR: TED{_Fluid}/ICTYPE = SPEC_VAR_TEF
    ENDCASE
  ENDFOR
END

IC: ORIENTATION, Automatic
  COPDIR: ., RBORI
    CHAR: ICTYPE = AUTO_DEF_RBORI
  ENDDIR
END

IC: ORIENTATION, Automatic with Value
  COPDIR: ., RBORI
    CHAR: ICTYPE = AUTO_VAR_RBORI
  ENDDIR
END

IC: POST FLAME REACTION PROGRESS, Automatic
  FOR: Fluid = {CurrentFluidList}
    CHAR: TSSMFC{_Fluid}/ICTYPE = AUTO_DEF_TSSMFC
  ENDFOR
END

IC: POST FLAME REACTION PROGRESS, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {SourceDir}/{MmsName}/PFRPV
    IS: *DIR*
      COPDIR: PFRPV, PFRPV{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_PFRPV
      ENDDIR
      CHAR: TSSMFC{_Fluid}/ICTYPE = AUTO_VAR_PFRPV
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/MASFRC, {SourceDir}/{MmsName}/DONE
    IS: *DIR*, .TRUE.
      MESAGE: Conflicting initial condition CCL for \
              Post Flame Reaction Progress.
      EXIT
    IS: *DIR*, *NONE*
      COPDIR:  MASFRC,  TSSMFC{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_TSSMFC
      ENDDIR
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/DONE
    IS: .TRUE.
      DELDAT: {SourceDir}/{MmsName}/DONE
    ELSE
      MESAGE: Missing initial condition CCL for Post Flame Reaction Progress.
      EXIT
    ENDCASE
  ENDFOR
END

IC: POST FLAME REACTION PROGRESS, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: TSSMFC{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
END

IC: POST FLAME REACTION PROGRESS, Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {SourceDir}/{MmsName}/PFRPV
    IS: *DIR*
      COPDIR: PFRPV, PFRPV{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_PFRPV
      ENDDIR
      CHAR: TSSMFC{_Fluid}/ICTYPE = SPEC_VAR_PFRPV
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/MASFRC, {SourceDir}/{MmsName}/DONE
    IS: *DIR*, .TRUE.
      MESAGE: Conflicting initial condition CCL for \
              Post Flame Reaction Progress.
      EXIT
    IS: *DIR*, *NONE*
      COPDIR:  MASFRC,  TSSMFC{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_TSSMFC
      ENDDIR
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/DONE
    IS: .TRUE.
      DELDAT: {SourceDir}/{MmsName}/DONE
    ELSE
      MESAGE: Missing initial condition CCL for Post Flame Reaction Progress.
      EXIT
    ENDCASE
  ENDFOR
END

IC: RADIATION INTENSITY, Automatic
  FOR: Fluid = {CurrentFluidList}
    COPDIR: RADINT, RADINT{_Fluid}
      CHAR: ICTYPE = AUTO_DEF_RADINT
    ENDDIR
  ENDFOR
  FOR: Solid = {CurrentSolidList}
    COPDIR: RADINT, RADINT{_Solid}
      CHAR: ICTYPE = AUTO_DEF_RADINT
    ENDDIR
  ENDFOR
END

IC: RADIATION INTENSITY, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {SourceDir}/{MmsName}/RADINT
    IS: *DIR*
      COPDIR: RADINT, RADINT{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_RADINT
      ENDDIR
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/TBLACK, {SourceDir}/{MmsName}/DONE
    IS: *DIR*, .TRUE.
      MESAGE: Ignoring Blackbody Temperature for Radiation Intensity IC.
    IS: *DIR*, *NONE*
      COPDIR: TBLACK, TBLACK{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_TBLACK
      ENDDIR
      CHAR: RADINT{_Fluid}/ICTYPE = AUTO_VAR_TBLACK
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/DONE
    IS: .TRUE.
      DELDAT: {SourceDir}/{MmsName}/DONE
    ELSE
      MESAGE: Missing Radiation Intensity initial condition CCL; using Automati\
c
    ENDCASE
  ENDFOR

  FOR: Solid = {CurrentSolidList}
    CASE: {SourceDir}/{MmsName}/RADINT
    IS: *DIR*
      COPDIR: RADINT, RADINT{_Solid}
        CHAR: ICTYPE = AUTO_VAR_RADINT
      ENDDIR
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/TBLACK, {SourceDir}/{MmsName}/DONE
    IS: *DIR*, .TRUE.
      MESAGE: Ignoring Blackbody Temperature for Radiation Intensity IC.
    IS: *DIR*, *NONE*
      COPDIR: TBLACK, TBLACK{_Solid}
        CHAR: ICTYPE = AUTO_VAR_TBLACK
      ENDDIR
      CHAR: RADINT{_Solid}/ICTYPE = AUTO_VAR_TBLACK
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/DONE
    IS: .TRUE.
      DELDAT: {SourceDir}/{MmsName}/DONE
    ELSE
      MESAGE: Missing Radiation Intensity initial condition CCL; using Automati\
c
    ENDCASE
  ENDFOR
END

IC: RADIATION INTENSITY, Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {SourceDir}/{MmsName}/RADINT
    IS: *DIR*
      COPDIR: RADINT, RADINT{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_RADINT
      ENDDIR
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/TBLACK, {SourceDir}/{MmsName}/DONE
    IS: *DIR*, .TRUE.
      MESAGE: Ignoring Blackbody Temperature for Radiation Intensity IC.
    IS: *DIR*, *NONE*
      COPDIR: TBLACK, TBLACK{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_TBLACK
      ENDDIR
      CHAR: RADINT{_Fluid}/ICTYPE = SPEC_VAR_TBLACK
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/DONE
    IS: .TRUE.
      DELDAT: {SourceDir}/{MmsName}/DONE
    ELSE
      MESAGE: Missing Radiation Intensity initial condition CCL; using Automati\
c
    ENDCASE
  ENDFOR

  FOR: Solid = {CurrentSolidList}
    CASE: {SourceDir}/{MmsName}/RADINT
    IS: *DIR*
      COPDIR: RADINT, RADINT{_Solid}
        CHAR: ICTYPE = SPEC_VAR_RADINT
      ENDDIR
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/TBLACK, {SourceDir}/{MmsName}/DONE
    IS: *DIR*, .TRUE.
      MESAGE: Ignoring Blackbody Temperature for Radiation Intensity IC.
    IS: *DIR*, *NONE*
      COPDIR: TBLACK, TBLACK{_Solid}
        CHAR: ICTYPE = SPEC_VAR_TBLACK
      ENDDIR
      CHAR: RADINT{_Solid}/ICTYPE = SPEC_VAR_TBLACK
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/DONE
    IS: .TRUE.
      DELDAT: {SourceDir}/{MmsName}/DONE
    ELSE
      MESAGE: Missing Radiation Intensity initial condition CCL; using Automati\
c
    ENDCASE
  ENDFOR
END

IC: REACTION PROGRESS, Automatic
  FOR: Fluid = {CurrentFluidList}
    CHAR: WRPV{_Fluid}/ICTYPE     = AUTO_DEF_WRPV
    CHAR: REACPROG{_Fluid}/ICTYPE = AUTO_DEF_REACPROG
  ENDFOR
END

IC: REACTION PROGRESS, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    CHAR: WRPV{_Fluid}/ICTYPE = AUTO_VAR_REACPROG
    COPDIR:  REACPROG,  REACPROG{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_REACPROG
    ENDDIR
  ENDFOR
END

IC: REACTION PROGRESS, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: WRPV{_Fluid}/ICTYPE     = DEFAULT
    CHAR: REACPROG{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
END

IC: REACTION PROGRESS, Value
  FOR: Fluid = {CurrentFluidList}
    CHAR: WRPV{_Fluid}/ICTYPE = SPEC_VAR_REACPROG
    COPDIR:  REACPROG,  REACPROG{_Fluid}
      CHAR: ICTYPE = SPEC_VAR_REACPROG
    ENDDIR
  ENDFOR
END

IC: REYNOLDS STRESS COMPONENTS, Automatic
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/RS{_Fluid}
    IS: *NONE*
      COPDIR: RS, RS{_Fluid}
        CHAR: ICTYPE = AUTO_DEF_RS
      ENDDIR
    ENDCASE
  ENDFOR
END

IC: REYNOLDS STRESS COMPONENTS, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/RS{_Fluid}
    IS: *NONE*
      COPDIR: RS, RS{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_RS
      ENDDIR
    ENDCASE
  ENDFOR
END

IC: REYNOLDS STRESS COMPONENTS, Default
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/RS{_Fluid}
    IS: *NONE*
      CHAR: RS{_Fluid}/ICTYPE = DEFAULT
      CHAR: VISCTRB{_Fluid}/ICTYPE = DEFAULT
    ENDCASE
  ENDFOR
END

IC: REYNOLDS STRESS COMPONENTS, Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/RS{_Fluid}
    IS: *NONE*
      CHAR: VISCTRB{_Fluid}/ICTYPE = SPEC_VAR_RS
      COPDIR: RS, RS{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_RS
      ENDDIR
    ENDCASE
  ENDFOR
END

IC: SIZE GROUP, Automatic
  FOR: Fluid = {CurrentFluidList}
    COPDIR: SIZFRC, SIZFRC{_SizeGroup}{_Fluid}
      CHAR: ICTYPE = AUTO_DEF_SIZFRC
    ENDDIR
    COPDIR: SIZSCLW, SIZSCLW{_SizeGroup}{_Fluid}
      CHAR: ICTYPE = AUTO_DEF_SIZSCLW
    ENDDIR
  ENDFOR
END

IC: SIZE GROUP, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR: SIZFRC, SIZFRC{_SizeGroup}{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_SIZFRC
    ENDDIR
    COPDIR: SIZSCLW, SIZSCLW{_SizeGroup}{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_SIZSCLW
    ENDDIR
  ENDFOR
END

IC: SIZE GROUP, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: SIZFRC{_SizeGroup}{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
  FOR: Fluid = {CurrentFluidList}
    CHAR: SIZSCLW{_SizeGroup}{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
END

IC: SIZE GROUP, Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR: SIZFRC, SIZFRC{_SizeGroup}{_Fluid}
      CHAR: ICTYPE = SPEC_VAR_SIZFRC
    ENDDIR
    COPDIR: SIZSCLW, SIZSCLW{_SizeGroup}{_Fluid}
      CHAR: ICTYPE = SPEC_VAR_SIZSCLW
    ENDDIR
  ENDFOR
END

IC: SOOT, Automatic
  FOR: Fluid = {CurrentFluidList}
    CHAR: SOOTMF{_Fluid}/ICTYPE = AUTO_DEF_SOOTMF
  ENDFOR
END

IC: SOOT, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {SourceDir}/{MmsName}/MASFRC
    IS: *DIR*
      COPDIR:  MASFRC,  SOOTMF{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_SOOTMF
      ENDDIR
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/MASCON, {SourceDir}/{MmsName}/DONE
    IS: *DIR*, .TRUE.
      MESAGE: Ignoring Mass Concentration for Soot IC.
    IS: *DIR*, *NONE*
      COPDIR:  MASCON,  MASCON_SOOTMF{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_MASCON
      ENDDIR
      CHAR: SOOTMF{_Fluid}/ICTYPE = AUTO_VAR_MASCON
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/DONE
    IS: .TRUE.
      DELDAT: {SourceDir}/{MmsName}/DONE
    ELSE
      MESAGE: Missing Soot initial condition CCL; using Automatic
    ENDCASE
  ENDFOR
END

IC: SOOT, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: SOOTMF{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
END

IC: SOOT, Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {SourceDir}/{MmsName}/MASFRC
    IS: *DIR*
      COPDIR:  MASFRC,  SOOTMF{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_SOOTMF
      ENDDIR
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/MASCON, {SourceDir}/{MmsName}/DONE
    IS: *DIR*, .TRUE.
      MESAGE: Ignoring Mass Concentration for Soot IC.
    IS: *DIR*, *NONE*
      COPDIR:  MASCON,  MASCON_SOOTMF{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_MASCON
      ENDDIR
      CHAR: SOOTMF{_Fluid}/ICTYPE = SPEC_VAR_MASCON
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/DONE
    IS: .TRUE.
      DELDAT: {SourceDir}/{MmsName}/DONE
    ELSE
      MESAGE: Missing Soot initial condition CCL; using Automatic
    ENDCASE
  ENDFOR
END

IC: SOOT NUCLEI, Automatic
  FOR: Fluid = {CurrentFluidList}
    CHAR: SOOTNCL{_Fluid}/ICTYPE = AUTO_DEF_SOOTNCL
  ENDFOR
END

IC: SOOT NUCLEI, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {SourceDir}/{MmsName}/SOOTNCL
    IS: *DIR*
      COPDIR:  SOOTNCL,  SOOTNCL{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_SOOTNCL
      ENDDIR
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/MOLCON_SOOTNCL, {SourceDir}/{MmsName}/DONE
    IS: *DIR*, .TRUE.
      MESAGE: Ignoring Nuclei Specific Concentration for Soot Nuclei IC.
    IS: *DIR*, *NONE*
      COPDIR:  MOLCON_SOOTNCL,  MOLCON_SOOTNCL{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_MOLCON
      ENDDIR
      CHAR: SOOTNCL{_Fluid}/ICTYPE = AUTO_VAR_MOLCON
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/DONE
    IS: .TRUE.
      DELDAT: {SourceDir}/{MmsName}/DONE
    ELSE
      MESAGE: Missing Soot Nuclei initial condition CCL; using Automatic
    ENDCASE
  ENDFOR
END

IC: SOOT NUCLEI, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: SOOTNCL{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
END

IC: SOOT NUCLEI, Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {SourceDir}/{MmsName}/SOOTNCL
    IS: *DIR*
      COPDIR:  SOOTNCL,  SOOTNCL{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_SOOTNCL
      ENDDIR
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/MOLCON_SOOTNCL, {SourceDir}/{MmsName}/DONE
    IS: *DIR*, .TRUE.
      MESAGE: Ignoring Nuclei Specific Concentration for Soot Nuclei IC.
    IS: *DIR*, *NONE*
      COPDIR:  MOLCON_SOOTNCL,  MOLCON_SOOTNCL{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_MOLCON
      ENDDIR
      CHAR: SOOTNCL{_Fluid}/ICTYPE = SPEC_VAR_MOLCON
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/DONE
    IS: .TRUE.
      DELDAT: {SourceDir}/{MmsName}/DONE
    ELSE
      MESAGE: Missing Soot Nuclei initial condition CCL; using Automatic
    ENDCASE
  ENDFOR
END

IC: STATIC PRESSURE, Automatic
  COPDIR: PRES
    CHAR: ICTYPE = AUTO_DEF_PRES
  ENDDIR
END

IC: STATIC PRESSURE, Automatic with Value
  COPDIR: PRES
    CHAR: ICTYPE = AUTO_VAR_PRES
  ENDDIR
END

IC: STATIC PRESSURE, Default
  CHAR: PABS/ICTYPE = DEFAULT
  CHAR: PRES/ICTYPE = DEFAULT
  CHAR: PTOT/ICTYPE = DEFAULT
  CHAR: PTOTR/ICTYPE = DEFAULT
  CHAR: PTOTS/ICTYPE = DEFAULT
  FOR: Fluid = {CurrentFluidList}
    CHAR: DENSITY{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
END

IC: STATIC PRESSURE, Value
  COPDIR: PRES
    CHAR: ICTYPE = SPEC_VAR_PRES
  ENDDIR
  CHAR: PABS/ICTYPE = SPEC_VAR_PRES
  CHAR: PTOT/ICTYPE = SPEC_VAR_PRES
  CHAR: PTOTR/ICTYPE = SPEC_VAR_PRES
  CHAR: PTOTS/ICTYPE = SPEC_VAR_PRES
  FOR: Fluid = {CurrentFluidList}
    CHAR: DENSITY{_Fluid}/ICTYPE = SPEC_VAR_PRES
  ENDFOR
END

IC: TEMPERATURE, Automatic
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TEMP{_Fluid}
    IS: *NONE*
      COPDIR: TEMP, TEMP{_Fluid}
        CHAR: ICTYPE = AUTO_DEF_TEMP
      ENDDIR
      CHAR: ENTHSTAT{_Fluid}/ICTYPE = AUTO_DEF_TEMP
      CHAR: ENTHTOT{_Fluid}/ICTYPE = AUTO_DEF_TEMP
    ENDCASE
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {IcScope}
  IS: Porous, SHARED
  ELSE
    USE: IC: TEMPERATURE, Automatic for CurrentSolidList
  ENDCASE
END

IC: TEMPERATURE, Automatic for CurrentSolidList
  FOR: Solid = {CurrentSolidList}
    CASE: {TargetDir}/TEMP{_Solid}
    IS: *NONE*
      COPDIR: TEMP, TEMP{_Solid}
        CHAR: ICTYPE = AUTO_DEF_TEMP
      ENDDIR
      CHAR: ENTHSTAT{_Solid}/ICTYPE = AUTO_DEF_TEMP
    ENDCASE
  ENDFOR
END

IC: TEMPERATURE, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TEMP{_Fluid}
    IS: *NONE*
      COPDIR: TEMP, TEMP{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_TEMP
      ENDDIR
      CHAR: ENTHSTAT{_Fluid}/ICTYPE = AUTO_VAR_TEMP
      CHAR: ENTHTOT{_Fluid}/ICTYPE = AUTO_VAR_TEMP
    ENDCASE
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {IcScope}
  IS: Porous, SHARED
  ELSE
    USE: IC: TEMPERATURE, Automatic with Value for CurrentSolidList
  ENDCASE
END

IC: TEMPERATURE, Automatic with Value for CurrentSolidList
  FOR: Solid = {CurrentSolidList}
    CASE: {TargetDir}/TEMP{_Solid}
    IS: *NONE*
      COPDIR: TEMP, TEMP{_Solid}
        CHAR: ICTYPE = AUTO_VAR_TEMP
      ENDDIR
    ENDCASE
  ENDFOR
END

IC: TEMPERATURE, Default
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TEMP{_Fluid}
    IS: *NONE*
      CHAR: TEMP{_Fluid}/ICTYPE = DEFAULT
      CHAR: ENTHSTAT{_Fluid}/ICTYPE = DEFAULT
      CHAR: ENTHTOT{_Fluid}/ICTYPE = DEFAULT
      CHAR: ENTHTOTR{_Fluid}/ICTYPE = DEFAULT
      CHAR: TTOT{_Fluid}/ICTYPE = DEFAULT
      CHAR: TTOTS{_Fluid}/ICTYPE = DEFAULT
    ENDCASE
  ENDFOR

  CASE: /FLOW/{Zone}/DOMAIN_TYPE, {IcScope}
  IS: Porous, SHARED
  ELSE
    FOR: Solid = {CurrentSolidList}
      CHAR: TEMP{_Solid}/ICTYPE = DEFAULT
      CHAR: ENTHSTAT{_Solid}/ICTYPE = DEFAULT
    ENDFOR
  ENDCASE
END

IC: TEMPERATURE, Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TEMP{_Fluid}
    IS: *NONE*
      COPDIR: TEMP, TEMP{_Fluid}
        CHAR: ICTYPE = SPEC_VAR_TEMP
      ENDDIR
      CHAR: ENTHSTAT{_Fluid}/ICTYPE = SPEC_VAR_TEMP
      CHAR: ENTHTOT{_Fluid}/ICTYPE = SPEC_VAR_TEMP
      CHAR: ENTHTOTR{_Fluid}/ICTYPE = SPEC_VAR_TEMP
      CHAR: TTOT{_Fluid}/ICTYPE = SPEC_VAR_TEMP
      CHAR: TTOTS{_Fluid}/ICTYPE = SPEC_VAR_TEMP
    ENDCASE
  ENDFOR
  FOR: Solid = {CurrentSolidList}
    COPDIR: TEMP, TEMP{_Solid}
      CHAR: ICTYPE = SPEC_VAR_TEMP
    ENDDIR
    CHAR: ENTHSTAT{_Solid}/ICTYPE = SPEC_VAR_TEMP
  ENDFOR
END

IC: TEMPERATURE VARIANCE, Automatic
  FOR: Fluid = {CurrentFluidList}
    CHAR: TVAR{_Fluid}/ICTYPE = AUTO_DEF_TVAR
  ENDFOR
END

IC: TEMPERATURE VARIANCE, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {SourceDir}/{MmsName}/TVAR
    IS: *DIR*
      COPDIR: TVAR, TVAR{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_TVAR
      ENDDIR
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/TFLUC, {SourceDir}/{MmsName}/DONE
    IS: *DIR*, .TRUE.
      MESAGE: Ignoring Temperature Fluctuation for Temperature Variance IC.
    IS: *DIR*, *NONE*
      COPDIR: TFLUC, TFLUC{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_TFLUC
      ENDDIR
      CHAR: TVAR{_Fluid}/ICTYPE = AUTO_VAR_TFLUC
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/FLUCLEVEL, {SourceDir}/{MmsName}/DONE
    IS: *DIR*, .TRUE.
      MESAGE: Ignoring Fluctuation Level for Temperature Variance IC.
    IS: *DIR*, *NONE*
      COPDIR: FLUCLEVEL, TFLUCLEVEL{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_TFLUCLEVEL
      ENDDIR
      CHAR: TVAR{_Fluid}/ICTYPE = AUTO_VAR_TFLUCLEVEL
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/DONE
    IS: .TRUE.
      DELDAT: {SourceDir}/{MmsName}/DONE
    ELSE
     MESAGE: Missing Temperature Variance initial condition CCL; using Automati\
c
    ENDCASE
  ENDFOR
END

IC: TEMPERATURE VARIANCE, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: TVAR{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
END

IC: TEMPERATURE VARIANCE, Value
  FOR: Fluid = {CurrentFluidList}
    CASE: {SourceDir}/{MmsName}/TVAR
    IS: *DIR*
      COPDIR: TVAR, TVAR{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_TVAR
      ENDDIR
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/TFLUC, {SourceDir}/{MmsName}/DONE
    IS: *DIR*, .TRUE.
      MESAGE: Ignoring Temperature Fluctuation for Temperature Variance IC.
    IS: *DIR*, *NONE*
      COPDIR: TFLUC, TFLUC{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_TFLUC
      ENDDIR
      CHAR: TVAR{_Fluid}/ICTYPE = AUTO_VAR_TFLUC
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/FLUCLEVEL, {SourceDir}/{MmsName}/DONE
    IS: *DIR*, .TRUE.
      MESAGE: Ignoring Fluctuation Level for Temperature Variance IC.
    IS: *DIR*, *NONE*
      COPDIR: FLUCLEVEL, TFLUCLEVEL{_Fluid}
        CHAR: ICTYPE = AUTO_VAR_TFLUCLEVEL
      ENDDIR
      CHAR: TVAR{_Fluid}/ICTYPE = AUTO_VAR_TFLUCLEVEL
      LOGL: {SourceDir}/{MmsName}/DONE = .TRUE.
    ENDCASE

    CASE: {SourceDir}/{MmsName}/DONE
    IS: .TRUE.
      DELDAT: {SourceDir}/{MmsName}/DONE
    ELSE
     MESAGE: Missing Temperature Variance initial condition CCL; using Automati\
c
    ENDCASE
  ENDFOR
END

IC: TRANSITIONAL INTERMITTENCY, Automatic
  FOR: Fluid = {CurrentFluidList}
    CHAR: INTERMTC{_Fluid}/ICTYPE = AUTO_DEF_INTERMTC
  ENDFOR
END

IC: TRANSITIONAL INTERMITTENCY, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  INTERMIT,  INTERMTC{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_INTERMTC
    ENDDIR
  ENDFOR
END

IC: TRANSITIONAL INTERMITTENCY, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: INTERMCT{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
END

IC: TRANSITIONAL INTERMITTENCY, Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  INTERMIT,  INTERMTC{_Fluid}
      CHAR: ICTYPE = SPEC_VAR_INTERMTC
    ENDDIR
  ENDFOR
END

IC: TRANSITIONAL RETHETAT, Automatic
  FOR: Fluid = {CurrentFluidList}
    CHAR: RETRNONS{_Fluid}/ICTYPE = AUTO_DEF_RETRNONS
  ENDFOR
END

IC: TRANSITIONAL RETHETAT, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  RETRNONS,  RETRNONS{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_RETRNONS
    ENDDIR
  ENDFOR
END

IC: TRANSITIONAL RETHETAT, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: RETRNONS{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
END

IC: TRANSITIONAL RETHETAT, Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  RETRNONS,  RETRNONS{_Fluid}
      CHAR: ICTYPE = SPEC_VAR_RETRNONS
    ENDDIR
  ENDFOR
END

IC: TURBULENCE INITIAL CONDITIONS, High Intensity and Eddy Viscosity Ratio
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TKE{_Fluid}, {TargetDir}/RS{_Fluid}
    IS: *NONE*, *NONE*
      CHAR: TKE{_Fluid}/ICTYPE = AUTO_VAR_TKI
      CHAR: RS{_Fluid}/ICTYPE = AUTO_VAR_TKI

      CHAR: TKI{_Fluid}/ICTYPE = AUTO_VAR_TKI
      CHAR: TKI{_Fluid}/HOW=CONSTANT
      INTR: TKI{_Fluid}/NVALUES = 1
      REAL: TKI{_Fluid}/VALUE = 0.1
    ENDCASE

    CASE: {TargetDir}/TED{_Fluid}, {TargetDir}/TEF{_Fluid}
    IS: *NONE*, *NONE*
      CHAR: TED{_Fluid}/ICTYPE = AUTO_VAR_TVR
      CHAR: TEF{_Fluid}/ICTYPE = AUTO_VAR_TVR
      CHAR: VISKTRB{_Fluid}/ICTYPE = AUTO_VAR_TVR
 
      CHAR: TVR{_Fluid}/ICTYPE = AUTO_VAR_TVR
      CHAR: TVR{_Fluid}/HOW = CONSTANT
      INTR: TVR{_Fluid}/NVALUES = 1
      REAL: TVR{_Fluid}/VALUE = 100.
    ENDCASE
  ENDFOR
END

IC: TURBULENCE INITIAL CONDITIONS, Intensity and Eddy Viscosity Ratio
END

IC: TURBULENCE INITIAL CONDITIONS, Intensity and Length Scale
END

IC: TURBULENCE INITIAL CONDITIONS, k and Eddy Viscosity Ratio
END

IC: TURBULENCE INITIAL CONDITIONS, k and Epsilon
END

IC: TURBULENCE INITIAL CONDITIONS, k and Length Scale
END

IC: TURBULENCE INITIAL CONDITIONS, k and Omega
END

IC: TURBULENCE INITIAL CONDITIONS, Kinematic Eddy Viscosity
END

IC: TURBULENCE INITIAL CONDITIONS, Low Intensity and Eddy Viscosity Ratio
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TKE{_Fluid}, {TargetDir}/RS{_Fluid}
    IS: *NONE*, *NONE*
      CHAR: TKE{_Fluid}/ICTYPE = AUTO_VAR_TKI
      CHAR: RS{_Fluid}/ICTYPE = AUTO_VAR_TKI
 
      CHAR: TKI{_Fluid}/ICTYPE = AUTO_VAR_TKI
      CHAR: TKI{_Fluid}/HOW=CONSTANT
      INTR: TKI{_Fluid}/NVALUES = 1
      REAL: TKI{_Fluid}/VALUE = 0.01
    ENDCASE

    CASE: {TargetDir}/TED{_Fluid}, {TargetDir}/TEF{_Fluid}
    IS: *NONE*, *NONE*
      CHAR: TED{_Fluid}/ICTYPE = AUTO_VAR_TVR
      CHAR: TEF{_Fluid}/ICTYPE = AUTO_VAR_TVR
      CHAR: VISKTRB{_Fluid}/ICTYPE = AUTO_VAR_TVR

      CHAR: TVR{_Fluid}/ICTYPE = AUTO_VAR_TVR
      CHAR: TVR{_Fluid}/HOW = CONSTANT
      INTR: TVR{_Fluid}/NVALUES = 1
      REAL: TVR{_Fluid}/VALUE = 1.
    ENDCASE
  ENDFOR
END

IC: TURBULENCE INITIAL CONDITIONS, Medium Intensity and Eddy Viscosity Ratio
  FOR: Fluid = {CurrentFluidList}
    CASE: {TargetDir}/TKE{_Fluid}, {TargetDir}/RS{_Fluid}
    IS: *NONE*, *NONE*
      CHAR: TKE{_Fluid}/ICTYPE = AUTO_VAR_TKI
      CHAR: RS{_Fluid}/ICTYPE = AUTO_VAR_TKI

      CHAR: TKI{_Fluid}/ICTYPE = AUTO_VAR_TKI
      CHAR: TKI{_Fluid}/HOW=CONSTANT
      INTR: TKI{_Fluid}/NVALUES = 1
      REAL: TKI{_Fluid}/VALUE = 0.05
    ENDCASE

    CASE: {TargetDir}/TED{_Fluid}, {TargetDir}/TEF{_Fluid}
    IS: *NONE*, *NONE*
      CHAR: TED{_Fluid}/ICTYPE = AUTO_VAR_TVR
      CHAR: TEF{_Fluid}/ICTYPE = AUTO_VAR_TVR
      CHAR: VISKTRB{_Fluid}/ICTYPE = AUTO_VAR_TVR

      CHAR: TVR{_Fluid}/ICTYPE = AUTO_VAR_TVR
      CHAR: TVR{_Fluid}/HOW = CONSTANT
      INTR: TVR{_Fluid}/NVALUES = 1
      REAL: TVR{_Fluid}/VALUE = 10.
    ENDCASE
  ENDFOR
END

IC: TURBULENCE INITIAL CONDITIONS, Reynolds Stresses and Eddy Viscosity Ratio
END

IC: TURBULENCE INITIAL CONDITIONS, Reynolds Stresses and Epsilon
END

IC: TURBULENCE INITIAL CONDITIONS, Reynolds Stresses and Length Scale
END

IC: TURBULENCE INITIAL CONDITIONS, Reynolds Stresses and Omega
END

IC: TURBULENCE INITIAL CONDITIONS, Unsupported Option
  MESAGE: This combination of turbulence initial conditions is no longer 
  MESAGE: supported.  Please choose an alternative combination.
  EXIT
END

IC: VISKTRB, Automatic
  FOR: Fluid = {CurrentFluidList}
    CHAR: VISKTRB{_Fluid}/ICTYPE = AUTO_DEF_VISKTRB
  ENDFOR
END

IC: VISKTRB, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR: VISKTRB, VISKTRB{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_VISKTRB
    ENDDIR
  ENDFOR
END

IC: VISKTRB, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: VISKTRB{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
END

IC: VISKTRB, Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR: VISKTRB, VISKTRB{_Fluid}
      CHAR: ICTYPE = SPEC_VAR_VISKTRB
    ENDDIR
  ENDFOR
END

IC: VOLUME FRACTION, Automatic
  FOR: Fluid = {CurrentFluidList}
    COPDIR: VOLFRC,  VOLFRC{_Fluid}
      CHAR: ICTYPE = AUTO_DEF_VOLFRC
    ENDDIR
    COPDIR: VOLFRN,  VOLFRN{_Fluid}
      CHAR: ICTYPE = AUTO_DEF_VOLFRC
    ENDDIR
  ENDFOR
END

IC: VOLUME FRACTION, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  VOLFRC,  VOLFRC{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_VOLFRC
    ENDDIR
    COPDIR:  VOLFRC,  VOLFRN{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_VOLFRC
    ENDDIR
  ENDFOR
END

IC: VOLUME FRACTION, Default
  FOR: Fluid = {CurrentFluidList}
    CHAR: VOLFRC{_Fluid}/ICTYPE = DEFAULT
    CHAR: VOLFRN{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
END

IC: VOLUME FRACTION, Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR:  VOLFRC,  VOLFRC{_Fluid}
      CHAR: ICTYPE = SPEC_VAR_VOLFRC
    ENDDIR
    COPDIR:  VOLFRC,  VOLFRN{_Fluid}
      CHAR: ICTYPE = SPEC_VAR_VOLFRC
    ENDDIR
  ENDFOR
END
 
IC: WALL SCALE, Automatic
  FOR: Fluid = {CurrentFluidList}
    COPDIR: WALLSCALE, WALLSCALE{_Fluid}
      CHAR: ICTYPE = AUTO_DEF_WALLSCALE
    ENDDIR
  ENDFOR
END
 
IC: WALL SCALE, Automatic with Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR: WALLSCALE, WALLSCALE{_Fluid}
      CHAR: ICTYPE = AUTO_VAR_WALLSCALE
    ENDDIR
  ENDFOR
END

IC: WALL SCALE, Default
  FOR: Fluid = {CurrentFluidList}
    COPDIR: WALLSCALE, WALLSCALE{_Fluid}
      CHAR: ICTYPE = DEFAULT
    ENDDIR
    CHAR: WALLDIST{_Fluid}/ICTYPE = DEFAULT
    CHAR: SSTBF1{_Fluid}/ICTYPE = DEFAULT
    CHAR: SSTBF2{_Fluid}/ICTYPE = DEFAULT
  ENDFOR
END

IC: WALL SCALE, Value
  FOR: Fluid = {CurrentFluidList}
    COPDIR: WALLSCALE, WALLSCALE{_Fluid}
      CHAR: ICTYPE = SPEC_VAR_WALLSCALE
    ENDDIR
    CHAR: WALLDIST{_Fluid}/ICTYPE = SPEC_VAR_WALLSCALE
    CHAR: SSTBF1{_Fluid}/ICTYPE = SPEC_VAR_WALLSCALE
    CHAR: SSTBF2{_Fluid}/ICTYPE = SPEC_VAR_WALLSCALE
  ENDFOR
END

///////////////////////////////////////////////////////////////////////////////
// End of TT file
///////////////////////////////////////////////////////////////////////////////
