# en_US.txt #

#
#//===----------------------------------------------------------------------===//
#//
#//                     The LLVM Compiler Infrastructure
#//
#// This file is dual licensed under the MIT and the University of Illinois Open
#// Source Licenses. See LICENSE.txt for details.
#//
#//===----------------------------------------------------------------------===//
#

# Default messages, embedded into the OpenMP RTL, and source for English catalog.


# Compatible changes (which does not require version bumping):
#     * Editing message (number and type of placeholders must remain, relative order of
#       placeholders may be changed, e.g. "File %1$s line %2$d" may be safely edited to
#       "Line %2$d file %1$s").
#     * Adding new message to the end of section.
# Incompatible changes (version must be bumbed by 1):
#     * Introducing new placeholders to existing messages.
#     * Changing type of placeholders (e.g. "line %1$d" -> "line %1$s").
#     * Rearranging order of messages.
#     * Deleting messages.
# Use special "OBSOLETE" pseudoidentifier for obsolete entries, which is kept only for backward
# compatibility. When version is bumped, do not forget to delete all obsolete entries.


# --------------------------------------------------------------------------------------------------
-*- META -*-
# --------------------------------------------------------------------------------------------------

# Meta information about message catalog.

Language "English"
Country  "USA"
LangId   "1033"
Version  "2"
Revision "20160714"



# --------------------------------------------------------------------------------------------------
-*- STRINGS -*-
# --------------------------------------------------------------------------------------------------

# Strings are not complete messages, just fragments. We need to work on it and reduce number of
# strings (to zero?).

Error                        "Error"
UnknownFile                  "(unknown file)"
NotANumber                   "not a number"
BadUnit                      "bad unit"
IllegalCharacters            "illegal characters"
ValueTooLarge                "value too large"
ValueTooSmall                "value too small"
NotMultiple4K                "value is not a multiple of 4k"
UnknownTopology              "Unknown processor topology"
CantOpenCpuinfo              "Cannot open /proc/cpuinfo"
ProcCpuinfo                  "/proc/cpuinfo"
NoProcRecords                "cpuinfo file invalid (No processor records)"
TooManyProcRecords           "cpuinfo file invalid (Too many processor records)"
CantRewindCpuinfo            "Cannot rewind cpuinfo file"
LongLineCpuinfo              "cpuinfo file invalid (long line)"
TooManyEntries               "cpuinfo file contains too many entries"
MissingProcField             "cpuinfo file missing processor field"
MissingPhysicalIDField       "cpuinfo file missing physical id field"
MissingValCpuinfo            "cpuinfo file invalid (missing val)"
DuplicateFieldCpuinfo        "cpuinfo file invalid (duplicate field)"
PhysicalIDsNotUnique         "Physical node/pkg/core/thread ids not unique"
ApicNotPresent               "APIC not present"
InvalidCpuidInfo             "Invalid cpuid info"
OBSOLETE                     "APIC ids not unique"
InconsistentCpuidInfo        "Inconsistent cpuid info"
OutOfHeapMemory              "Out of heap memory"
MemoryAllocFailed            "Memory allocation failed"
Core                         "core"
Thread                       "thread"
Package                      "package"
Node                         "node"
OBSOLETE                     "<undef>"
DecodingLegacyAPIC           "decoding legacy APIC ids"
OBSOLETE                     "parsing /proc/cpuinfo"
NotDefined                   "value is not defined"
EffectiveSettings            "Effective settings:"
UserSettings                 "User settings:"
StorageMapWarning            "warning: pointers or size don't make sense"
OBSOLETE                     "CPU"
OBSOLETE                     "TPU"
OBSOLETE                     "TPUs per package"
OBSOLETE                     "HT enabled"
OBSOLETE                     "HT disabled"
Decodingx2APIC               "decoding x2APIC ids"
NoLeaf11Support              "cpuid leaf 11 not supported"
NoLeaf4Support               "cpuid leaf 4 not supported"
ThreadIDsNotUnique           "thread ids not unique"
UsingPthread                 "using pthread info"
LegacyApicIDsNotUnique       "legacy APIC ids not unique"
x2ApicIDsNotUnique           "x2APIC ids not unique"
DisplayEnvBegin		     "OPENMP DISPLAY ENVIRONMENT BEGIN"
DisplayEnvEnd		     "OPENMP DISPLAY ENVIRONMENT END"
Device			     "[device]"
Host			     "[host]"



# --------------------------------------------------------------------------------------------------
-*- FORMATS -*-
# --------------------------------------------------------------------------------------------------

Info                         "OMP: Info #%1$d: %2$s\n"
Warning                      "OMP: Warning #%1$d: %2$s\n"
Fatal                        "OMP: Error #%1$d: %2$s\n"
SysErr                       "OMP: System error #%1$d: %2$s\n"
Hint                         "OMP: Hint: %2$s\n"

Pragma                       "%1$s pragma (at %2$s:%3$s():%4$s)"
    # %1 is pragma name (like "parallel" or "master",
    # %2 is file name,
    # %3 is function (routine) name,
    # %4 is the line number (as string, so "s" type specifier should be used).



# --------------------------------------------------------------------------------------------------
-*- MESSAGES -*-
# --------------------------------------------------------------------------------------------------

# Messages of any severity: informational, warning, or fatal.
# To maintain message numbers (they are visible to customers), add new messages to the end.

# Use following prefixes for messages and hints when appropriate:
#    Aff -- Affinity messages.
#    Cns -- Consistency check failures (KMP_CONSISTENCY_CHECK).
#    Itt -- ITT Notify-related messages.

LibraryIsSerial              "Library is \"serial\"."
CantOpenMessageCatalog       "Cannot open message catalog \"%1$s\":"
WillUseDefaultMessages       "Default messages will be used."
LockIsUninitialized          "%1$s: Lock is uninitialized"
LockSimpleUsedAsNestable     "%1$s: Lock was initialized as simple, but used as nestable"
LockNestableUsedAsSimple     "%1$s: Lock was initialized as nestable, but used as simple"
LockIsAlreadyOwned           "%1$s: Lock is already owned by requesting thread"
LockStillOwned               "%1$s: Lock is still owned by a thread"
LockUnsettingFree            "%1$s: Attempt to release a lock not owned by any thread"
LockUnsettingSetByAnother    "%1$s: Attempt to release a lock owned by another thread"
StackOverflow                "Stack overflow detected for OpenMP thread #%1$d"
StackOverlap                 "Stack overlap detected. "
AssertionFailure             "Assertion failure at %1$s(%2$d)."
CantRegisterNewThread        "Unable to register a new user thread."
DuplicateLibrary             "Initializing %1$s, but found %2$s already initialized."
CantOpenFileForReading       "Cannot open file \"%1$s\" for reading:"
CantGetEnvVar                "Getting environment variable \"%1$s\" failed:"
CantSetEnvVar                "Setting environment variable \"%1$s\" failed:"
CantGetEnvironment           "Getting environment failed:"
BadBoolValue                 "%1$s=\"%2$s\": Wrong value, boolean expected."
SSPNotBuiltIn                "No Helper Thread support built in this OMP library."
SPPSotfTerminateFailed       "Helper thread failed to soft terminate."
BufferOverflow               "Buffer overflow detected."
RealTimeSchedNotSupported    "Real-time scheduling policy is not supported."
RunningAtMaxPriority         "OMP application is running at maximum priority with real-time scheduling policy. "
CantChangeMonitorPriority    "Changing priority of the monitor thread failed:"
MonitorWillStarve            "Deadlocks are highly possible due to monitor thread starvation."
CantSetMonitorStackSize      "Unable to set monitor thread stack size to %1$lu bytes:"
CantSetWorkerStackSize       "Unable to set OMP thread stack size to %1$lu bytes:"
CantInitThreadAttrs          "Thread attribute initialization failed:"
CantDestroyThreadAttrs       "Thread attribute destroying failed:"
CantSetWorkerState           "OMP thread joinable state setting failed:"
CantSetMonitorState          "Monitor thread joinable state setting failed:"
NoResourcesForWorkerThread   "System unable to allocate necessary resources for OMP thread:"
NoResourcesForMonitorThread  "System unable to allocate necessary resources for the monitor thread:"
CantTerminateWorkerThread    "Unable to terminate OMP thread:"
ScheduleKindOutOfRange       "Wrong schedule type %1$d, see <omp.h> or <omp_lib.h> file for the list of values supported."
UnknownSchedulingType        "Unknown scheduling type \"%1$d\"."
InvalidValue                 "%1$s value \"%2$s\" is invalid."
SmallValue                   "%1$s value \"%2$s\" is too small."
LargeValue                   "%1$s value \"%2$s\" is too large."
StgInvalidValue              "%1$s: \"%2$s\" is an invalid value; ignored."
BarrReleaseValueInvalid      "%1$s release value \"%2$s\" is invalid."
BarrGatherValueInvalid       "%1$s gather value \"%2$s\" is invalid."
OBSOLETE                     "%1$s supported only on debug builds; ignored."
ParRangeSyntax               "Syntax error: Usage: %1$s=[ routine=<func> | filename=<file> | range=<lb>:<ub> "
                             "| excl_range=<lb>:<ub> ],..."
UnbalancedQuotes             "Unbalanced quotes in %1$s."
EmptyString                  "Empty string specified for %1$s; ignored."
LongValue                    "%1$s value is too long; ignored."
InvalidClause                "%1$s: Invalid clause in \"%2$s\"."
EmptyClause                  "Empty clause in %1$s."
InvalidChunk                 "%1$s value \"%2$s\" is invalid chunk size."
LargeChunk                   "%1$s value \"%2$s\" is to large chunk size."
IgnoreChunk                  "%1$s value \"%2$s\" is ignored."
CantGetProcFreq              "Cannot get processor frequency, using zero KMP_ITT_PREPARE_DELAY."
EnvParallelWarn              "%1$s must be set prior to first parallel region; ignored."
AffParamDefined              "%1$s: parameter has been specified already, ignoring \"%2$s\"."
AffInvalidParam              "%1$s: parameter invalid, ignoring \"%2$s\"."
AffManyParams                "%1$s: too many integer parameters specified, ignoring \"%2$s\"."
AffManyParamsForLogic        "%1$s: too many integer parameters specified for logical or physical type, ignoring \"%2$d\"."
AffNoParam                   "%1$s: '%2$s' type does not take any integer parameters, ignoring them."
AffNoProcList                "%1$s: proclist not specified with explicit affinity type, using \"none\"."
AffProcListNoType            "%1$s: proclist specified, setting affinity type to \"explicit\"."
AffProcListNotExplicit       "%1$s: proclist specified without \"explicit\" affinity type, proclist ignored."
AffSyntaxError               "%1$s: syntax error, not using affinity."
AffZeroStride                "%1$s: range error (zero stride), not using affinity."
AffStartGreaterEnd           "%1$s: range error (%2$d > %3$d), not using affinity."
AffStrideLessZero            "%1$s: range error (%2$d < %3$d & stride < 0), not using affinity."
AffRangeTooBig               "%1$s: range error ((%2$d-%3$d)/%4$d too big), not using affinity."
OBSOLETE                     "%1$s: %2$s is defined. %3$s will be ignored."
AffNotSupported              "%1$s: affinity not supported, using \"disabled\"."
OBSOLETE                     "%1$s: affinity only supported for Intel(R) processors."
GetAffSysCallNotSupported    "%1$s: getaffinity system call not supported."
SetAffSysCallNotSupported    "%1$s: setaffinity system call not supported."
OBSOLETE                     "%1$s: pthread_aff_set_np call not found."
OBSOLETE                     "%1$s: pthread_get_num_resources_np call not found."
OBSOLETE                     "%1$s: the OS kernel does not support affinity."
OBSOLETE                     "%1$s: pthread_get_num_resources_np returned %2$d."
AffCantGetMaskSize           "%1$s: cannot determine proper affinity mask size."
ParseSizeIntWarn             "%1$s=\"%2$s\": %3$s."
ParseExtraCharsWarn          "%1$s: extra trailing characters ignored: \"%2$s\"."
UnknownForceReduction        "%1$s: unknown method \"%2$s\"."
TimerUseGettimeofday         "KMP_STATS_TIMER: clock_gettime is undefined, using gettimeofday."
TimerNeedMoreParam           "KMP_STATS_TIMER: \"%1$s\" needs additional parameter, e.g. 'clock_gettime,2'. Using gettimeofday."
TimerInvalidParam            "KMP_STATS_TIMER: clock_gettime parameter \"%1$s\" is invalid, using gettimeofday."
TimerGettimeFailed           "KMP_STATS_TIMER: clock_gettime failed, using gettimeofday."
TimerUnknownFunction         "KMP_STATS_TIMER: clock function unknown (ignoring value \"%1$s\")."
UnknownSchedTypeDetected     "Unknown scheduling type detected."
DispatchManyThreads          "Too many threads to use analytical guided scheduling - switching to iterative guided scheduling."
IttLookupFailed              "ittnotify: Lookup of \"%1$s\" function in \"%2$s\" library failed."
IttLoadLibFailed             "ittnotify: Loading \"%1$s\" library failed."
IttAllNotifDisabled          "ittnotify: All itt notifications disabled."
IttObjNotifDisabled          "ittnotify: Object state itt notifications disabled."
IttMarkNotifDisabled         "ittnotify: Mark itt notifications disabled."
IttUnloadLibFailed           "ittnotify: Unloading \"%1$s\" library failed."
CantFormThrTeam              "Cannot form a team with %1$d threads, using %2$d instead."
ActiveLevelsNegative         "Requested number of active parallel levels \"%1$d\" is negative; ignored."
ActiveLevelsExceedLimit      "Requested number of active parallel levels \"%1$d\" exceeds supported limit; "
                             "the following limit value will be used: \"%1$d\"."
SetLibraryIncorrectCall      "kmp_set_library must only be called from the top level serial thread; ignored."
FatalSysError                "Fatal system error detected."
OutOfHeapMemory              "Out of heap memory."
OBSOLETE                     "Clearing __KMP_REGISTERED_LIB env var failed."
OBSOLETE                     "Registering library with env var failed."
Using_int_Value              "%1$s value \"%2$d\" will be used."
Using_uint_Value             "%1$s value \"%2$u\" will be used."
Using_uint64_Value           "%1$s value \"%2$s\" will be used."
Using_str_Value              "%1$s value \"%2$s\" will be used."
MaxValueUsing                "%1$s maximum value \"%2$d\" will be used."
MinValueUsing                "%1$s minimum value \"%2$d\" will be used."
MemoryAllocFailed            "Memory allocation failed."
FileNameTooLong              "File name too long."
OBSOLETE                     "Lock table overflow."
ManyThreadsForTPDirective    "Too many threads to use threadprivate directive."
AffinityInvalidMask          "%1$s: invalid mask."
WrongDefinition              "Wrong definition."
TLSSetValueFailed            "Windows* OS: TLS Set Value failed."
TLSOutOfIndexes              "Windows* OS: TLS out of indexes."
OBSOLETE                     "PDONE directive must be nested within a DO directive."
CantGetNumAvailCPU           "Cannot get number of available CPUs."
AssumedNumCPU                "Assumed number of CPUs is 2."
ErrorInitializeAffinity      "Error initializing affinity - not using affinity."
AffThreadsMayMigrate         "Threads may migrate across all available OS procs (granularity setting too coarse)."
AffIgnoreInvalidProcID       "Ignoring invalid OS proc ID %1$d."
AffNoValidProcID             "No valid OS proc IDs specified - not using affinity."
UsingFlatOS                  "%1$s - using \"flat\" OS <-> physical proc mapping."
UsingFlatOSFile              "%1$s: %2$s - using \"flat\" OS <-> physical proc mapping."
UsingFlatOSFileLine          "%1$s, line %2$d: %3$s - using \"flat\" OS <-> physical proc mapping."
FileMsgExiting               "%1$s: %2$s - exiting."
FileLineMsgExiting           "%1$s, line %2$d: %3$s - exiting."
ConstructIdentInvalid        "Construct identifier invalid."
ThreadIdentInvalid           "Thread identifier invalid."
RTLNotInitialized            "runtime library not initialized."
TPCommonBlocksInconsist      "Inconsistent THREADPRIVATE common block declarations are non-conforming "
                             "and are unsupported. Either all threadprivate common blocks must be declared "
                             "identically, or the largest instance of each threadprivate common block "
                             "must be referenced first during the run."
CantSetThreadAffMask         "Cannot set thread affinity mask."
CantSetThreadPriority        "Cannot set thread priority."
CantCreateThread             "Cannot create thread."
CantCreateEvent              "Cannot create event."
CantSetEvent                 "Cannot set event."
CantCloseHandle              "Cannot close handle."
UnknownLibraryType           "Unknown library type: %1$d."
ReapMonitorError             "Monitor did not reap properly."
ReapWorkerError              "Worker thread failed to join."
ChangeThreadAffMaskError     "Cannot change thread affinity mask."
ThreadsMigrate               "%1$s: Threads may migrate across %2$d innermost levels of machine"
DecreaseToThreads            "%1$s: decrease to %2$d threads"
IncreaseToThreads            "%1$s: increase to %2$d threads"
OBSOLETE                     "%1$s: Internal thread %2$d bound to OS proc set %3$s"
AffCapableUseCpuinfo         "%1$s: Affinity capable, using cpuinfo file"
AffUseGlobCpuid              "%1$s: Affinity capable, using global cpuid info"
AffCapableUseFlat            "%1$s: Affinity capable, using default \"flat\" topology"
AffNotCapableUseLocCpuid     "%1$s: Affinity not capable, using local cpuid info"
AffNotCapableUseCpuinfo      "%1$s: Affinity not capable, using cpuinfo file"
AffFlatTopology              "%1$s: Affinity not capable, assumming \"flat\" topology"
InitOSProcSetRespect         "%1$s: Initial OS proc set respected: %2$s"
InitOSProcSetNotRespect      "%1$s: Initial OS proc set not respected: %2$s"
AvailableOSProc              "%1$s: %2$d available OS procs"
Uniform                      "%1$s: Uniform topology"
NonUniform                   "%1$s: Nonuniform topology"
Topology                     "%1$s: %2$d packages x %3$d cores/pkg x %4$d threads/core (%5$d total cores)"
OBSOLETE                     "%1$s: OS proc to physical thread map ([] => level not in map):"
OSProcToPackage              "%1$s: OS proc <n> maps to <n>th package core 0"
OBSOLETE                     "%1$s: OS proc %2$d maps to package %3$d [core %4$d] [thread %5$d]"
OBSOLETE                     "%1$s: OS proc %2$d maps to [package %3$d] [core %4$d] [thread %5$d]"
OBSOLETE                     "%1$s: OS proc %2$d maps to [package %3$d] [core %4$d] thread %5$d"
OBSOLETE                     "%1$s: OS proc %2$d maps to [package %3$d] core %4$d [thread %5$d]"
OBSOLETE                     "%1$s: OS proc %2$d maps to package %3$d [core %4$d] [thread %5$d]"
OBSOLETE                     "%1$s: OS proc %2$d maps to [package %3$d] core %4$d thread %5$d"
OBSOLETE                     "%1$s: OS proc %2$d maps to package %3$d core %4$d [thread %5$d]"
OBSOLETE                     "%1$s: OS proc %2$d maps to package %3$d [core %4$d] thread %5$d"
OBSOLETE                     "%1$s: OS proc %2$d maps to package %3$d core %4$d thread %5$d"
OSProcMapToPack              "%1$s: OS proc %2$d maps to %3$s"
OBSOLETE                     "%1$s: Internal thread %2$d changed affinity mask from %3$s to %4$s"
OBSOLETE                     "%1$s: OS proc %2$d maps to package %3$d, CPU %4$d, TPU %5$d"
OBSOLETE                     "%1$s: OS proc %2$d maps to package %3$d, CPU %4$d"
OBSOLETE                     "%1$s: HT enabled; %2$d packages; %3$d TPU; %4$d TPUs per package"
OBSOLETE                     "%1$s: HT disabled; %2$d packages"
BarriersInDifferentOrder     "Threads encountered barriers in different order. "
FunctionError                "Function %1$s failed:"
TopologyExtra                "%1$s: %2$s packages x %3$d cores/pkg x %4$d threads/core (%5$d total cores)"
WrongMessageCatalog          "Incompatible message catalog \"%1$s\": Version \"%2$s\" found, version \"%3$s\" expected."
StgIgnored                   "%1$s: ignored because %2$s has been defined"
                                 # %1, -- name of ignored variable, %2 -- name of variable with higher priority.
OBSOLETE                     "%1$s: overrides %3$s specified before"
                                 # %1, %2 -- name and value of the overriding variable, %3 -- name of overriden variable.

# --- OpenMP errors detected at runtime ---
#
#    %1 is the name of OpenMP construct (formatted with "Pragma" format).
#
CnsBoundToWorksharing        "%1$s must be bound to a work-sharing or work-queuing construct with an \"ordered\" clause"
CnsDetectedEnd               "Detected end of %1$s without first executing a corresponding beginning."
CnsIterationRangeTooLarge    "Iteration range too large in %1$s."
CnsLoopIncrZeroProhibited    "%1$s must not have a loop increment that evaluates to zero."
#
#    %1 is the name of the first OpenMP construct, %2 -- the name of the second one (both formatted with "Pragma" format).
#
CnsExpectedEnd               "Expected end of %1$s; %2$s, however, has most recently begun execution."
CnsInvalidNesting            "%1$s is incorrectly nested within %2$s"
CnsMultipleNesting           "%1$s cannot be executed multiple times during execution of one parallel iteration/section of %2$s"
CnsNestingSameName           "%1$s is incorrectly nested within %2$s of the same name"
CnsNoOrderedClause           "%1$s is incorrectly nested within %2$s that does not have an \"ordered\" clause"
CnsNotInTaskConstruct        "%1$s is incorrectly nested within %2$s but not within any of its \"task\" constructs"
CnsThreadsAtBarrier          "One thread at %1$s while another thread is at %2$s."

# New errors
CantConnect                  "Cannot connect to %1$s"
CantConnectUsing             "Cannot connect to %1$s - Using %2$s"
LibNotSupport                "%1$s does not support %2$s. Continuing without using %2$s."
LibNotSupportFor             "%1$s does not support %2$s for %3$s. Continuing without using %2$s."
StaticLibNotSupport          "Static %1$s does not support %2$s. Continuing without using %2$s."
OBSOLETE                     "KMP_DYNAMIC_MODE=irml cannot be used with KMP_USE_IRML=0"
IttUnknownGroup              "ittnotify: Unknown group \"%2$s\" specified in environment variable \"%1$s\"."
IttEnvVarTooLong             "ittnotify: Environment variable \"%1$s\" too long: Actual lengths is %2$lu, max allowed length is %3$lu."
AffUseGlobCpuidL11           "%1$s: Affinity capable, using global cpuid leaf 11 info"
AffNotCapableUseLocCpuidL11  "%1$s: Affinity not capable, using local cpuid leaf 11 info"
AffInfoStr                   "%1$s: %2$s."
AffInfoStrStr                "%1$s: %2$s - %3$s."
OSProcToPhysicalThreadMap    "%1$s: OS proc to physical thread map:"
AffUsingFlatOS               "%1$s: using \"flat\" OS <-> physical proc mapping."
AffParseFilename             "%1$s: parsing %2$s."
MsgExiting                   "%1$s - exiting."
IncompatibleLibrary          "Incompatible %1$s library with version %2$s found."
IttFunctionError             "ittnotify: Function %1$s failed:"
IttUnknownError              "ittnofify: Error #%1$d."
EnvMiddleWarn                "%1$s must be set prior to first parallel region or certain API calls; ignored."
CnsLockNotDestroyed          "Lock initialized at %1$s(%2$d) was not destroyed"
                                 # %1, %2, %3, %4 -- file, line, func, col
CantLoadBalUsing             "Cannot determine machine load balance - Using %1$s"
AffNotCapableUsePthread      "%1$s: Affinity not capable, using pthread info"
AffUsePthread                "%1$s: Affinity capable, using pthread info"
OBSOLETE                     "Loading \"%1$s\" library failed:"
OBSOLETE                     "Lookup of \"%1$s\" function failed:"
OBSOLETE                     "Buffer too small."
OBSOLETE                     "Error #%1$d."
NthSyntaxError               "%1$s: Invalid symbols found. Check the value \"%2$s\"."
NthSpacesNotAllowed          "%1$s: Spaces between digits are not allowed \"%2$s\"."
AffStrParseFilename          "%1$s: %2$s - parsing %3$s."
OBSOLETE                     "%1$s cannot be specified via kmp_set_defaults() on this machine because it has more than one processor group."
AffTypeCantUseMultGroups     "Cannot use affinity type \"%1$s\" with multiple Windows* OS processor groups, using \"%2$s\"."
AffGranCantUseMultGroups     "Cannot use affinity granularity \"%1$s\" with multiple Windows* OS processor groups, using \"%2$s\"."
AffWindowsProcGroupMap       "%1$s: Mapping Windows* OS processor group <i> proc <j> to OS proc 64*<i>+<j>."
AffOSProcToGroup             "%1$s: OS proc %2$d maps to Windows* OS processor group %3$d proc %4$d"
AffBalancedNotAvail          "%1$s: Affinity balanced is not available."
OBSOLETE                     "%1$s: granularity=core will be used."
EnvLockWarn                  "%1$s must be set prior to first OMP lock call or critical section; ignored."
FutexNotSupported            "futex system call not supported; %1$s=%2$s ignored."
AffGranUsing                 "%1$s: granularity=%2$s will be used."
AffHWSubsetInvalid           "%1$s: invalid value \"%2$s\", valid format is \"Ns[@N],Nc[@N],Nt "
                             "(nSockets@offset, nCores@offset, nTthreads per core)\"."
AffHWSubsetUnsupported       "KMP_HW_SUBSET ignored: unsupported architecture."
AffHWSubsetManyCores         "KMP_HW_SUBSET ignored: too many cores requested."
SyntaxErrorUsing             "%1$s: syntax error, using %2$s."
AdaptiveNotSupported         "%1$s: Adaptive locks are not supported; using queuing."
EnvSyntaxError               "%1$s: Invalid symbols found. Check the value \"%2$s\"."
EnvSpacesNotAllowed          "%1$s: Spaces between digits are not allowed \"%2$s\"."
BoundToOSProcSet             "%1$s: pid %2$d thread %3$d bound to OS proc set %4$s"
CnsLoopIncrIllegal           "%1$s error: parallel loop increment and condition are inconsistent."
NoGompCancellation           "libgomp cancellation is not currently supported."
AffHWSubsetNonUniform        "KMP_HW_SUBSET ignored: non-uniform topology."
AffHWSubsetNonThreeLevel     "KMP_HW_SUBSET ignored: only three-level topology is supported."
AffGranTopGroup              "%1$s: granularity=%2$s is not supported with KMP_TOPOLOGY_METHOD=group. Using \"granularity=fine\"."
AffGranGroupType             "%1$s: granularity=group is not supported with KMP_AFFINITY=%2$s. Using \"granularity=core\"."
AffHWSubsetManySockets       "KMP_HW_SUBSET ignored: too many sockets requested."
AffHWSubsetDeprecated        "KMP_HW_SUBSET \"o\" offset designator deprecated, please use @ prefix for offset value."
AffUsingHwloc                "%1$s: Affinity capable, using hwloc."
AffIgnoringHwloc             "%1$s: Ignoring hwloc mechanism."
AffHwlocErrorOccurred        "%1$s: Hwloc failed in %2$s. Relying on internal affinity mechanisms."
EnvSerialWarn                "%1$s must be set prior to OpenMP runtime library initialization; ignored."
EnvVarDeprecated             "%1$s variable deprecated, please use %2$s instead."
RedMethodNotSupported        "KMP_FORCE_REDUCTION: %1$s method is not supported; using critical."


# --------------------------------------------------------------------------------------------------
-*- HINTS -*-
# --------------------------------------------------------------------------------------------------

# Hints. Hint may be printed after a message. Usually it is longer explanation text or suggestion.
# To maintain hint numbers (they are visible to customers), add new hints to the end.

SubmitBugReport              "Please submit a bug report with this message, compile and run "
                             "commands used, and machine configuration info including native "
                             "compiler and operating system versions. Faster response will be "
                             "obtained by including all program sources. For information on "
                             "submitting this issue, please see "
                             "http://www.intel.com/software/products/support/."
OBSOLETE                     "Check NLSPATH environment variable, its value is \"%1$s\"."
ChangeStackLimit             "Please try changing the shell stack limit or adjusting the "
                             "OMP_STACKSIZE environment variable."
Unset_ALL_THREADS            "Consider unsetting KMP_ALL_THREADS and OMP_THREAD_LIMIT (if either is set)."
Set_ALL_THREADPRIVATE        "Consider setting KMP_ALL_THREADPRIVATE to a value larger than %1$d."
PossibleSystemLimitOnThreads "This could also be due to a system-related limit on the number of threads."
DuplicateLibrary             "This means that multiple copies of the OpenMP runtime have been "
                             "linked into the program. That is dangerous, since it can degrade "
                             "performance or cause incorrect results. "
                             "The best thing to do is to ensure that only a single OpenMP runtime is "
                             "linked into the process, e.g. by avoiding static linking of the OpenMP "
                             "runtime in any library. As an unsafe, unsupported, undocumented workaround "
                             "you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow "
                             "the program to continue to execute, but that may cause crashes or "
                             "silently produce incorrect results. "
                             "For more information, please see http://www.intel.com/software/products/support/."
NameComesFrom_CPUINFO_FILE   "This name is specified in environment variable KMP_CPUINFO_FILE."
NotEnoughMemory              "Seems application required too much memory."
ValidBoolValues              "Use \"0\", \"FALSE\". \".F.\", \"off\", \"no\" as false values, "
                             "\"1\", \"TRUE\", \".T.\", \"on\", \"yes\" as true values."
BufferOverflow               "Perhaps too many threads."
RunningAtMaxPriority         "Decrease priority of application. "
                             "This will allow the monitor thread run at higher priority than other threads."
ChangeMonitorStackSize       "Try changing KMP_MONITOR_STACKSIZE or the shell stack limit."
ChangeWorkerStackSize        "Try changing OMP_STACKSIZE and/or the shell stack limit."
IncreaseWorkerStackSize      "Try increasing OMP_STACKSIZE or the shell stack limit."
DecreaseWorkerStackSize      "Try decreasing OMP_STACKSIZE."
Decrease_NUM_THREADS         "Try decreasing the value of OMP_NUM_THREADS."
IncreaseMonitorStackSize     "Try increasing KMP_MONITOR_STACKSIZE."
DecreaseMonitorStackSize     "Try decreasing KMP_MONITOR_STACKSIZE."
DecreaseNumberOfThreadsInUse "Try decreasing the number of threads in use simultaneously."
DefaultScheduleKindUsed      "Will use default schedule type (%1$s)."
GetNewerLibrary              "It could be a result of using an older OMP library with a newer "
                             "compiler or memory corruption. You may check the proper OMP library "
                             "is linked to the application."
CheckEnvVar                  "Check %1$s environment variable, its value is \"%2$s\"."
OBSOLETE                     "You may want to use an %1$s library that supports %2$s interface with version %3$s."
OBSOLETE                     "You may want to use an %1$s library with version %2$s."
BadExeFormat                 "System error #193 is \"Bad format of EXE or DLL file\". "
                             "Usually it means the file is found, but it is corrupted or "
                             "a file for another architecture. "
                             "Check whether \"%1$s\" is a file for %2$s architecture."
SystemLimitOnThreads         "System-related limit on the number of threads."



# --------------------------------------------------------------------------------------------------
# end of file #
# --------------------------------------------------------------------------------------------------

