! *
! **********************************************************************************
! * INTEL CORPORATION                                                              *
! * Copyright (C) 2003-2011 Intel Corporation. All Rights Reserved.                *
! *                                                                                *
! * Portions Copyright 1985-2002, Hewlett-Packard Corporation. All Rights          *
! * Reserved.                                                                      *
! *                                                                                *
! * The source code contained or described herein and all documents related to     *
! * the source code ("Material") are owned by Intel Corporation or its suppliers   *
! * or licensors. Title to the Material remains with Intel Corporation or its      *
! * suppliers and licensors. The Material contains trade secrets and proprietary   *
! * and confidential information of Intel or its suppliers and licensors. The      *
! * Material is protected by worldwide copyright and trade secret laws and         *
! * treaty provisions. No part of the Material may be used, copied, reproduced,    *
! * modified, published, uploaded, posted, transmitted, distributed, or            *
! * disclosed in any way without Intel's prior express written permission.         *
! *                                                                                *
! * No license under any patent, copyright, trade secret or other intellectual     *
! * property right is granted to or conferred upon you by disclosure or delivery   *
! * of the Materials, either expressly, by implication, inducement, estoppel or    *
! * otherwise. Any license under such intellectual property rights must be         *
! * express and approved by Intel in writing.                                      *
! **********************************************************************************
! *
 
!DEC$ IF .NOT. DEFINED (FORDEF)
!DEC$ DEFINE FORDEF

	INCLUDE 'for_iosdef.for' 

!*** MODULE for_fp_class IDENT JDR1-001 ***
!DEC$ OPTIONS /NOALIGN
	INTEGER(4), PARAMETER :: FOR_K_FP_SNAN        = '00000000'X
	INTEGER(4), PARAMETER :: FOR_K_FP_QNAN        = '00000001'X
	INTEGER(4), PARAMETER :: FOR_K_FP_POS_INF     = '00000002'X
	INTEGER(4), PARAMETER :: FOR_K_FP_NEG_INF     = '00000003'X
	INTEGER(4), PARAMETER :: FOR_K_FP_POS_NORM    = '00000004'X
	INTEGER(4), PARAMETER :: FOR_K_FP_NEG_NORM    = '00000005'X
	INTEGER(4), PARAMETER :: FOR_K_FP_POS_DENORM  = '00000006'X
	INTEGER(4), PARAMETER :: FOR_K_FP_NEG_DENORM  = '00000007'X
	INTEGER(4), PARAMETER :: FOR_K_FP_POS_ZERO    = '00000008'X
	INTEGER(4), PARAMETER :: FOR_K_FP_NEG_ZERO    = '00000009'X
	INTEGER(4), PARAMETER :: FOR_K_FP_OTHER_VALUE = '0000000A'X	
!DEC$ END OPTIONS

!*** MODULE ieee_exceptions IDENT ??? ***
!DEC$ OPTIONS /NOALIGN
	INTEGER(4), PARAMETER :: IEEE_STATUS_TYPE_SIZE = 4
!DEC$ END OPTIONS

!*** MODULE ieee_arithmetic IDENT ??? ***
!DEC$ OPTIONS /NOALIGN
	INTEGER(4), PARAMETER :: FOR_FP_ROUND_NEAR   = '00000000'X
	INTEGER(4), PARAMETER :: FOR_FP_ROUND_DOWN   = '00000001'X
	INTEGER(4), PARAMETER :: FOR_FP_ROUND_UP     = '00000002'X
	INTEGER(4), PARAMETER :: FOR_FP_ROUND_CHOP   = '00000003'X
	INTEGER(4), PARAMETER :: FOR_FP_ROUND_OTHER  = '00000004'X	
!DEC$ END OPTIONS

!*** MODULE ieee_features IDENT ??? ***
!DEC$ OPTIONS /NOALIGN
	INTEGER(4), PARAMETER :: FOR_FP_FEATURE_DATATYPE    = '00000001'X
	INTEGER(4), PARAMETER :: FOR_FP_FEATURE_DENORMAL    = '00000002'X
	INTEGER(4), PARAMETER :: FOR_FP_FEATURE_DIVIDE      = '00000004'X
	INTEGER(4), PARAMETER :: FOR_FP_FEATURE_HALTING     = '00000008'X
	INTEGER(4), PARAMETER :: FOR_FP_FEATURE_INEXACT_F   = '00000010'X
	INTEGER(4), PARAMETER :: FOR_FP_FEATURE_INF         = '00000020'X
	INTEGER(4), PARAMETER :: FOR_FP_FEATURE_INVALID_F   = '00000040'X
	INTEGER(4), PARAMETER :: FOR_FP_FEATURE_NAN         = '00000080'X
	INTEGER(4), PARAMETER :: FOR_FP_FEATURE_ROUNDING    = '00000100'X
	INTEGER(4), PARAMETER :: FOR_FP_FEATURE_SQRT        = '00000200'X
	INTEGER(4), PARAMETER :: FOR_FP_FEATURE_UNDERFLOW_F = '00000400'X
!DEC$ END OPTIONS

!*** MODULE for_fpe_flags IDENT WCH1-006 ***
!DEC$ OPTIONS /NOALIGN
	INTEGER(4), PARAMETER :: FOR_K_FPE_CNT_UNDERFLOW = '00000001'X
	INTEGER(4), PARAMETER :: FOR_K_FPE_CNT_OVERFLOW  = '00000002'X
	INTEGER(4), PARAMETER :: FOR_K_FPE_CNT_DIVIDE0   = '00000003'X
	INTEGER(4), PARAMETER :: FOR_K_FPE_CNT_INVALID   = '00000004'X
	INTEGER(4), PARAMETER :: FOR_K_FPE_CNT_INEXACT   = '00000005'X
	INTEGER(4), PARAMETER :: FOR_K_FPE_CNT_ARRAY_MAX = '00000005'X
	INTEGER(4), PARAMETER :: FPE_M_TRAP_UND          = '00000001'X
	INTEGER(4), PARAMETER :: FPE_M_TRAP_OVF          = '00000002'X
	INTEGER(4), PARAMETER :: FPE_M_TRAP_DIV0         = '00000004'X
	INTEGER(4), PARAMETER :: FPE_M_TRAP_INV          = '00000008'X
	INTEGER(4), PARAMETER :: FPE_M_TRAP_INE          = '00000010'X
	INTEGER(4), PARAMETER :: FPE_M_RESERVED_01       = '00000020'X
	INTEGER(4), PARAMETER :: FPE_M_RESERVED_02       = '00000040'X
	INTEGER(4), PARAMETER :: FPE_M_RESERVED_03       = '00000080'X
	INTEGER(4), PARAMETER :: FPE_M_MSG_OVF           = '00000100'X
	INTEGER(4), PARAMETER :: FPE_M_MSG_UND           = '00000200'X
	INTEGER(4), PARAMETER :: FPE_M_MSG_DIV0          = '00000400'X
	INTEGER(4), PARAMETER :: FPE_M_MSG_INV           = '00000800'X
	INTEGER(4), PARAMETER :: FPE_M_MSG_INE           = '00001000'X
	INTEGER(4), PARAMETER :: FPE_M_RESERVED_05       = '00002000'X
	INTEGER(4), PARAMETER :: FPE_M_RESERVED_06       = '00004000'X
	INTEGER(4), PARAMETER :: FPE_M_RESERVED_07       = '00008000'X
	INTEGER(4), PARAMETER :: FPE_M_ABRUPT_UND        = '00010000'X
	INTEGER(4), PARAMETER :: FPE_M_ABRUPT_OVF        = '00020000'X
	INTEGER(4), PARAMETER :: FPE_M_ABRUPT_DIV0       = '00040000'X
	INTEGER(4), PARAMETER :: FPE_M_ABRUPT_INV        = '00080000'X
	INTEGER(4), PARAMETER :: FPE_M_ABRUPT_DMZ        = '00100000'X
	INTEGER(4), PARAMETER :: FPE_M_RESERVED_09       = '00200000'X
	INTEGER(4), PARAMETER :: FPE_M_RESERVED_10       = '00400000'X
	INTEGER(4), PARAMETER :: FPE_M_RESERVED_11       = '00800000'X
	INTEGER(4), PARAMETER :: FPE_M_RESERVED_12       = '01000000'X
	INTEGER(4), PARAMETER :: FPE_M_RESERVED_13       = '02000000'X
	INTEGER(4), PARAMETER :: FPE_M_RESERVED_14       = '04000000'X
	INTEGER(4), PARAMETER :: FPE_M_RESERVED_15       = '08000000'X
	INTEGER(4), PARAMETER :: FPE_M_RESERVED_16       = '10000000'X
	INTEGER(4), PARAMETER :: FPE_M_RESERVED_17       = '20000000'X
	INTEGER(4), PARAMETER :: FPE_M_RESERVED_18       = '40000000'X
	INTEGER(4), PARAMETER :: FPE_M_RESERVED_19       = '80000000'X
	STRUCTURE /for_fpe_flags/
	    PARAMETER FPE_S_TRAP_UND = 1
	    PARAMETER FPE_V_TRAP_UND = 0
	    PARAMETER FPE_S_TRAP_OVF = 1
	    PARAMETER FPE_V_TRAP_OVF = 1
	    PARAMETER FPE_S_TRAP_DIV0 = 1
	    PARAMETER FPE_V_TRAP_DIV0 = 2
	    PARAMETER FPE_S_TRAP_INV = 1
	    PARAMETER FPE_V_TRAP_INV = 3
	    PARAMETER FPE_S_TRAP_INE = 1
	    PARAMETER FPE_V_TRAP_INE = 4
	    PARAMETER FPE_S_RESERVED_01 = 1
	    PARAMETER FPE_V_RESERVED_01 = 5
	    PARAMETER FPE_S_RESERVED_02 = 1
	    PARAMETER FPE_V_RESERVED_02 = 6
	    PARAMETER FPE_S_RESERVED_03 = 1
	    PARAMETER FPE_V_RESERVED_03 = 7
	    PARAMETER FPE_S_MSG_OVF = 1
	    PARAMETER FPE_V_MSG_OVF = 8
	    PARAMETER FPE_S_MSG_UND = 1
	    PARAMETER FPE_V_MSG_UND = 9
	    PARAMETER FPE_S_MSG_DIV0 = 1
	    PARAMETER FPE_V_MSG_DIV0 = 10
	    PARAMETER FPE_S_MSG_INV = 1
	    PARAMETER FPE_V_MSG_INV = 11
	    PARAMETER FPE_S_MSG_INE = 1
	    PARAMETER FPE_V_MSG_INE = 12
	    PARAMETER FPE_S_RESERVED_05 = 1
	    PARAMETER FPE_V_RESERVED_05 = 13
	    PARAMETER FPE_S_RESERVED_06 = 1
	    PARAMETER FPE_V_RESERVED_06 = 14
	    PARAMETER FPE_S_RESERVED_07 = 1
	    PARAMETER FPE_V_RESERVED_07 = 15
	    PARAMETER FPE_S_ABRUPT_UND = 1
	    PARAMETER FPE_V_ABRUPT_UND = 16
	    PARAMETER FPE_S_ABRUPT_OVF = 1
	    PARAMETER FPE_V_ABRUPT_OVF = 17
	    PARAMETER FPE_S_ABRUPT_DIV0 = 1
	    PARAMETER FPE_V_ABRUPT_DIV0 = 18
	    PARAMETER FPE_S_ABRUPT_INV = 1
	    PARAMETER FPE_V_ABRUPT_INV = 19
	    PARAMETER FPE_S_ABRUPT_DMZ = 1
	    PARAMETER FPE_V_ABRUPT_DMZ = 20
	    PARAMETER FPE_S_RESERVED_09 = 1
	    PARAMETER FPE_V_RESERVED_09 = 21
	    PARAMETER FPE_S_RESERVED_10 = 1
	    PARAMETER FPE_V_RESERVED_10 = 22
	    PARAMETER FPE_S_RESERVED_11 = 1
	    PARAMETER FPE_V_RESERVED_11 = 23
	    PARAMETER FPE_S_RESERVED_12 = 1
	    PARAMETER FPE_V_RESERVED_12 = 24
	    PARAMETER FPE_S_RESERVED_13 = 1
	    PARAMETER FPE_V_RESERVED_13 = 25
	    PARAMETER FPE_S_RESERVED_14 = 1
	    PARAMETER FPE_V_RESERVED_14 = 26
	    PARAMETER FPE_S_RESERVED_15 = 1
	    PARAMETER FPE_V_RESERVED_15 = 27
	    PARAMETER FPE_S_RESERVED_16 = 1
	    PARAMETER FPE_V_RESERVED_16 = 28
	    PARAMETER FPE_S_RESERVED_17 = 1
	    PARAMETER FPE_V_RESERVED_17 = 29
	    PARAMETER FPE_S_RESERVED_18 = 1
	    PARAMETER FPE_V_RESERVED_18 = 30
	    PARAMETER FPE_S_RESERVED_19 = 1
	    PARAMETER FPE_V_RESERVED_19 = 31
	    BYTE %FILL (4)
	END STRUCTURE	! for_fpe_flags
!DEC$ END OPTIONS
 
!*** MODULE for_reent_codes IDENT SAR1-002 ***
!DEC$ OPTIONS /NOALIGN
	INTEGER(4), PARAMETER :: FOR_K_REENTRANCY_NONE     = '00000000'X
	INTEGER(4), PARAMETER :: FOR_K_REENTRANCY_ASYNCH   = '00000001'X
	INTEGER(4), PARAMETER :: FOR_K_REENTRANCY_THREADED = '00000002'X
	INTEGER(4), PARAMETER :: FOR_K_REENTRANCY_INFO     = '00000003'X
!DEC$ END OPTIONS

!*** MODULE for_prefetch_flags IDENT SAR1-002 ***
!DEC$ OPTIONS /NOALIGN
	INTEGER, PARAMETER :: FOR_K_PREFETCH_T0  = 0
	INTEGER, PARAMETER :: FOR_K_PREFETCH_T1  = 1
	INTEGER, PARAMETER :: FOR_K_PREFETCH_T2  = 2
	INTEGER, PARAMETER :: FOR_K_PREFETCH_NTA = 3
!DEC$ END OPTIONS

!
! The parameters that follow support the MEMREF_CONTROL directive:
!
!DEC$ OPTIONS /NOALIGN
      INTEGER*4, PARAMETER :: FOR_K_LOCALITY_L1  = 1
      INTEGER*4, PARAMETER :: FOR_K_LOCALITY_L2  = 2
      INTEGER*4, PARAMETER :: FOR_K_LOCALITY_L3  = 3
      INTEGER*4, PARAMETER :: FOR_K_LOCALITY_MEM = 4
      INTEGER*4, PARAMETER :: FOR_K_LATENCY_L1   = 1
      INTEGER*4, PARAMETER :: FOR_K_LATENCY_L2   = 2
      INTEGER*4, PARAMETER :: FOR_K_LATENCY_L3   = 3
      INTEGER*4, PARAMETER :: FOR_K_LATENCY_MEM  = 4
!DEC$ END OPTIONS

!DEC$ ENDIF
