/*****************variant tags for DVM nodes*****************************/

DEFNODECODE(BLOCK_OP,                "%IF(%LL1!=%NULL)WGT_BLOCK(%SYMBID,%LL1)%ELSE%IF(%LL2!=%NULL)MULT_BLOCK(%LL2)%ELSE%IF(%SYMBOL!=%NULL)GEN_BLOCK(%SYMBID)%ELSEBLOCK%ENDIF%ENDIF%ENDIF",
'e',2,LLNODE)

DEFNODECODE(INDIRECT_OP,             "%IF(%LL1!=%NULL)DERIVED(%LL1)%ELSEINDIRECT(%SYMBID)%ENDIF",
'e',1,LLNODE)

DEFNODECODE(DERIVED_OP,              "(%LL1) WITH %LL2",
'e',2,LLNODE)

DEFNODECODE(DUMMY_REF,               "@%SYMBID%IF(%LL1!=%NULL)+%LL1%ENDIF",
'e',2,LLNODE)

DEFNODECODE(NEW_VALUE_OP,            "%IF(%LL1!=%NULL) NEW(%LL1)%ELSE NEW%ENDIF",
'e',1,LLNODE)

DEFNODECODE(NEW_SPEC_OP,             "NEW(%LL1)",
'e',1,LLNODE)

DEFNODECODE(TEMPLATE_OP,             "TEMPLATE",
'e',0,LLNODE)

DEFNODECODE(PROCESSORS_OP,           "PROCESSORS",
'e',0,LLNODE)

DEFNODECODE(DYNAMIC_OP,              "DYNAMIC",
'e',0,LLNODE)

DEFNODECODE(DIMENSION_OP,            "%IF(%CHECKFLAG(DVM) != %NULL)DIMENSION%ELSEdimension%ENDIF(%LL1)",
'e',1,LLNODE)

DEFNODECODE(SHADOW_OP,               "SHADOW (%LL1)",
'e',1,LLNODE)

DEFNODECODE(ALIGN_OP,                "ALIGN %IF(%LL1!=%NULL) (%LL1)%ENDIF%IF(%LL2!=%NULL) WITH %LL2%ENDIF",
'e',2,LLNODE)

DEFNODECODE(DISTRIBUTE_OP,           "DISTRIBUTE%IF(%LL1!=%NULL) (%LL1)%ENDIF%IF(%LL2!=%NULL) ONTO %LL2%ENDIF",
'e',2,LLNODE)
                         
DEFNODECODE(REMOTE_ACCESS_OP,        "REMOTE_ACCESS (%IF (%SYMBOL == %NULL)%LL1%ELSE%SYMBID : %LL1 %ENDIF)",
'e',1,LLNODE)

DEFNODECODE(INDIRECT_ACCESS_OP,      "INDIRECT_ACCESS (%IF(%SYMBOL == %NULL)%LL1%ELSE%SYMBID : %LL1 %ENDIF)",
'e',1,LLNODE)

DEFNODECODE(ACROSS_OP,               "ACROSS (%LL1)%IF(%LL2!=%NULL)(%LL2)%ENDIF",
'e',2,LLNODE)

DEFNODECODE(SHADOW_RENEW_OP,         "SHADOW_RENEW (%LL1)",
'e',1,LLNODE)

DEFNODECODE(SHADOW_START_OP,         "SHADOW_START %SYMBID",
'e',0,LLNODE)

DEFNODECODE(SHADOW_WAIT_OP,          "SHADOW_WAIT %SYMBID",
'e',0,LLNODE)

DEFNODECODE(SHADOW_COMP_OP,          "SHADOW_COMPUTE %IF(%LL1!=%NULL)(%LL1)%ENDIF",
'e',1,LLNODE)

DEFNODECODE(REDUCTION_OP, 	     "REDUCTION (%IF(%SYMBOL == %NULL)%LL1%ELSE%SYMBID : %LL1 %ENDIF)",
'e',1,LLNODE)

DEFNODECODE(CONSISTENT_OP, 	     "CONSISTENT (%IF(%SYMBOL == %NULL)%LL1%ELSE%SYMBID : %LL1 %ENDIF)",
'e',1,LLNODE)

DEFNODECODE(ACC_PRIVATE_OP,          "PRIVATE (%LL1)",
'e',1,LLNODE)

DEFNODECODE(STAGE_OP,                "STAGE (%LL1)",
'e',1,LLNODE)

DEFNODECODE(COMMON_OP,               "COMMON",
'e',0,LLNODE)

DEFNODECODE(ACC_CUDA_BLOCK_OP,       "CUDA_BLOCK (%LL1)",
'e',1,LLNODE)

DEFNODECODE(ACC_TIE_OP,       	     "TIE (%LL1)",
'e',1,LLNODE)

DEFNODECODE(ACC_CUDA_OP,             "CUDA",
'e',0,LLNODE)

DEFNODECODE(ACC_HOST_OP,             "HOST",
'e',0,LLNODE)

DEFNODECODE(ACC_ASYNC_OP,            "ASYNC",
'e',0,LLNODE)

DEFNODECODE(PARALLEL_OP,             "PARALLEL",
'e',0,LLNODE)

DEFNODECODE(ACC_TARGETS_OP,          "TARGETS (%LL1)",
'e',1,LLNODE)

DEFNODECODE(ACC_INLOCAL_OP,          "INLOCAL (%LL1)",
'e',1,LLNODE)

DEFNODECODE(ACC_LOCAL_OP,            "LOCAL%IF(%LL1!=%NULL) (%LL1)",
'e',1,LLNODE)

DEFNODECODE(ACC_OUT_OP,              "OUT (%LL1)",
'e',1,LLNODE)

DEFNODECODE(ACC_INOUT_OP,            "INOUT (%LL1)",
'e',1,LLNODE)

DEFNODECODE(ACC_IN_OP,               "IN (%LL1)",
'e',1,LLNODE)

DEFNODECODE(DVM_NEW_VALUE_DIR,       "%CMNT!DVM$%PUTTABCOMTNEW_VALUE%IF(%LL1!=%NULL) %LL1%ENDIF",
's',1,BIFNODE)

DEFNODECODE(HPF_TEMPLATE_STAT,       "%CMNT!DVM$%PUTTABCOMTTEMPLATE%IF(%LL2!=%NULL), %LL2::%ENDIF %LL1%NL",
's',1,BIFNODE)

DEFNODECODE(DVM_DYNAMIC_DIR,         "%CMNT!DVM$%PUTTABCOMTDYNAMIC %LL1%NL",
's',1,BIFNODE)

DEFNODECODE(DVM_INHERIT_DIR,         "%CMNT!DVM$%PUTTABCOMTINHERIT %LL1%NL",
's',1,BIFNODE)

DEFNODECODE(HPF_PROCESSORS_STAT,     "%CMNT!DVM$%PUTTABCOMTPROCESSORS %LL1%NL",
's',1,BIFNODE)

DEFNODECODE(DVM_SHADOW_DIR,          "%CMNT!DVM$%PUTTABCOMTSHADOW %LL1( %LL2 )%NL",
's',2,BIFNODE)

DEFNODECODE(DVM_INDIRECT_GROUP_DIR,  "%CMNT!DVM$%PUTTABCOMTINDIRECT_GROUP %LL1%NL",
's',1,BIFNODE)

DEFNODECODE(DVM_REMOTE_GROUP_DIR,    "%CMNT!DVM$%PUTTABCOMTREMOTE_GROUP %LL1%NL",
's',1,BIFNODE)

DEFNODECODE(DVM_REDUCTION_GROUP_DIR, "%CMNT!DVM$%PUTTABCOMTREDUCTION_GROUP %LL1%NL",
's',1,BIFNODE)

DEFNODECODE(DVM_CONSISTENT_DIR,      "%CMNT!DVM$%PUTTABCOMTCONSISTENT %LL1%NL",
's',1,BIFNODE)

DEFNODECODE(DVM_CONSISTENT_GROUP_DIR, "%CMNT!DVM$%PUTTABCOMTCONSISTENT_GROUP %LL1%NL",
's',1,BIFNODE)

DEFNODECODE(DVM_DISTRIBUTE_DIR,      "%CMNT!DVM$%PUTTABCOMTDISTRIBUTE%IF(%LL2!=%NULL) (%LL2)%ENDIF%IF(%LL3!=%NULL) ONTO %LL3 %ENDIF :: %LL1%NL",
's',3,BIFNODE)

DEFNODECODE(DVM_REDISTRIBUTE_DIR,    "%CMNT!DVM$%PUTTABCOMTREDISTRIBUTE (%LL2)%IF(%LL3!=%NULL) ONTO %LL3%ENDIF :: %LL1%NL",
's',3,BIFNODE)

DEFNODECODE(DVM_ALIGN_DIR,    	     "%CMNT!DVM$%PUTTABCOMTALIGN (%LL2) WITH %LL3 :: %LL1%NL",
's',3,BIFNODE)

DEFNODECODE(DVM_REALIGN_DIR,         "%CMNT!DVM$%PUTTABCOMTREALIGN (%LL2) WITH %LL3 :: %LL1%NL",
's',3,BIFNODE)

DEFNODECODE(DVM_PARALLEL_ON_DIR,     "%CMNT!DVM$%PUTTABCOMTPARALLEL (%LL3)%IF(%LL1!=%NULL) ON %LL1%ENDIF%IF(%LL2!=%NULL), %LL2%ENDIF%NL",
's',3,BIFNODE)

DEFNODECODE(DVM_PARALLEL_TASK_DIR,   "%CMNT!DVM$%PUTTABCOMTPARALLEL (%LL3)%IF(%LL1!=%NULL) ON %LL1%ENDIF%IF(%LL2!=%NULL), %LL2%ENDIF%NL",
's',3,BIFNODE)

DEFNODECODE(DVM_SHADOW_START_DIR,    "%CMNT!DVM$%PUTTABCOMTSHADOW_START %SYMBID%NL",
's',0,BIFNODE)

DEFNODECODE(DVM_SHADOW_WAIT_DIR,     "%CMNT!DVM$%PUTTABCOMTSHADOW_WAIT %SYMBID%NL",
's',0,BIFNODE)

DEFNODECODE(DVM_SHADOW_GROUP_DIR,    "%CMNT!DVM$%PUTTABCOMTSHADOW_GROUP %SYMBID ( %LL1 )%NL",
's',1,BIFNODE)

DEFNODECODE(DVM_REDUCTION_START_DIR, "%CMNT!DVM$%PUTTABCOMTREDUCTION_START %SYMBID%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_REDUCTION_WAIT_DIR,  "%CMNT!DVM$%PUTTABCOMTREDUCTION_WAIT %SYMBID%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_CONSISTENT_START_DIR, "%CMNT!DVM$%PUTTABCOMTCONSISTENT_START %SYMBID%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_CONSISTENT_WAIT_DIR, "%CMNT!DVM$%PUTTABCOMTCONSISTENT_WAIT %SYMBID%NL",
's',0,BIFNODE)

DEFNODECODE(DVM_REMOTE_ACCESS_DIR,   "%CMNT!DVM$%PUTTABCOMTREMOTE_ACCESS (%IF(%SYMBOL == %NULL)%LL1%ELSE%SYMBID : %LL1 %ENDIF)%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_TASK_DIR,	     "%CMNT!DVM$%PUTTABCOMTTASK %LL1%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_MAP_DIR,             "%CMNT!DVM$%PUTTABCOMTMAP %LL1 %IF(%LL2 != %NULL)ONTO %LL2%ENDIF%IF(%LL3 != %NULL)BY %LL3%ENDIF%NL",
's',3,BIFNODE)
DEFNODECODE(DVM_PREFETCH_DIR,        "%CMNT!DVM$%PUTTABCOMTPREFETCH %SYMBID%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_RESET_DIR,           "%CMNT!DVM$%PUTTABCOMTRESET %SYMBID%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_DEBUG_DIR,           "%CMNT!DVM$%PUTTABCOMTDEBUG %LL1 %IF(%LL2!=%NULL)(%LL2)%ENDIF%NL",
's',2,BIFNODE)
DEFNODECODE(DVM_ENDDEBUG_DIR,        "%CMNT!DVM$%PUTTABCOMTEND DEBUG %LL1%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_INTERVAL_DIR,        "%CMNT!DVM$%PUTTABCOMTINTERVAL %LL1%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_EXIT_INTERVAL_DIR,   "%CMNT!DVM$%PUTTABCOMTEXIT INTERVAL %LL1%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_ENDINTERVAL_DIR,     "%CMNT!DVM$%PUTTABCOMTEND INTERVAL%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_TRACEON_DIR,         "%CMNT!DVM$%PUTTABCOMTTRACE ON%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_TRACEOFF_DIR,        "%CMNT!DVM$%PUTTABCOMTTRACE OFF%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_BARRIER_DIR,         "%CMNT!DVM$%PUTTABCOMTBARRIER%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_CHECK_DIR,           "%CMNT!DVM$%PUTTABCOMTCHECK (%LL2) :: %LL1%NL",
's',2,BIFNODE)
DEFNODECODE(DVM_OWN_DIR,   	     "%CMNT!DVM$%PUTTABCOMTOWN%NL",
's',0,BIFNODE)                 
DEFNODECODE(DVM_ON_DIR,              "%CMNT!DVM$%PUTTABCOMTON %LL1%IF(%LL2 != %NULL), %LL2%ENDIF%NL",
's',2,BIFNODE)
DEFNODECODE(DVM_END_ON_DIR,          "%CMNT!DVM$%PUTTABCOMTEND ON%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_TASK_REGION_DIR,     "%CMNT!DVM$%PUTTABCOMTTASK_REGION %SYMBID%IF(%LL2 != %NULL), %LL2%ENDIF%NL",
's',2,BIFNODE)	
DEFNODECODE(DVM_END_TASK_REGION_DIR, "%CMNT!DVM$%PUTTABCOMTEND TASK_REGION%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_POINTER_DIR,   	     "%CMNT!DVM$%PUTTABCOMT%LL3, POINTER(%LL2) :: %LL1%NL",
's',3,BIFNODE)

DEFNODECODE(DVM_F90_DIR,             "%CMNT!DVM$%PUTTABCOMTF90 %LL1 = %LL2%NL",
's',2,BIFNODE)

DEFNODECODE(DVM_ASYNCHRONOUS_DIR,    "%CMNT!DVM$%PUTTABCOMTASYNCHRONOUS %LL1%NL",
's',1,BIFNODE)

DEFNODECODE(DVM_ENDASYNCHRONOUS_DIR, "%CMNT!DVM$%PUTTABCOMTEND ASYNCHRONOUS%NL",
's',0,BIFNODE)

DEFNODECODE(DVM_ASYNCWAIT_DIR,       "%CMNT!DVM$%PUTTABCOMTASYNCWAIT %LL1%NL",
's',0,BIFNODE)

DEFNODECODE(DVM_TEMPLATE_CREATE_DIR, "%CMNT!DVM$%PUTTABCOMTTEMPLATE_CREATE (%LL1)%NL",
's',1,BIFNODE)

DEFNODECODE(DVM_TEMPLATE_DELETE_DIR, "%CMNT!DVM$%PUTTABCOMTTEMPLATE_DELETE (%LL1)%NL",
's',1,BIFNODE)

DEFNODECODE(DVM_VAR_DECL,            "%CMNT!DVM$%PUTTABCOMT%SETFLAG(VARLEN)%IF(%LL3 != %NULL)%SETFLAG(DVM)%LL3%UNSETFLAG(DVM):: %SETFLAG(PARAM)%LL1%UNSETFLAG(PARAM)%ELSE%SETFLAG(VARDECL) %LL1%UNSETFLAG(VARDECL)%ENDIF%IF (%CHECKFLAG(VARLEN) != %NULL)%UNSETFLAG(VARLEN)%ENDIF%NL",
's',3,BIFNODE)

DEFNODECODE(DVM_HEAP_DIR,            "%CMNT!DVM$%PUTTABCOMTHEAP %LL1%NL",
's',1,BIFNODE)
                  
DEFNODECODE(DVM_ASYNCID_DIR,         "%CMNT!DVM$%PUTTABCOMTASYNCID%IF(%LL2 != %NULL), COMMON::%ENDIF %LL1%NL",
's',2,BIFNODE)                  

DEFNODECODE(DVM_NEW_VALUE_DIR,       "%CMNT!DVM$%PUTTABCOMTNEW_VALUE%NL",
's',0,BIFNODE)

DEFNODECODE(DVM_IO_MODE_DIR,         "%CMNT!DVM$%PUTTABCOMTIO_MODE (%LL1)%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_SHADOW_ADD_DIR,      "%CMNT!DVM$%PUTTABCOMTSHADOW_ADD (%LL1 = %LL2)%IF(%LL3!=%NULL) INCLUDE_TO %LL3%ENDIF%NL",
's',3,BIFNODE)
DEFNODECODE(DVM_LOCALIZE_DIR,        "%CMNT!DVM$%PUTTABCOMTLOCALIZE (%LL1 => %LL2)%NL",
's',2,BIFNODE)

DEFNODECODE(ACC_REGION_DIR,          "%CMNT!DVM$%PUTTABCOMTREGION %LL1%NL",
's',1,BIFNODE)
DEFNODECODE(ACC_END_REGION_DIR,      "%CMNT!DVM$%PUTTABCOMTEND REGION%NL",
's',0,BIFNODE)
DEFNODECODE(ACC_GET_ACTUAL_DIR,      "%CMNT!DVM$%PUTTABCOMTGET_ACTUAL%IF(%LL1!=%NULL) (%LL1)%ENDIF%NL",
's',1,BIFNODE)
DEFNODECODE(ACC_ACTUAL_DIR,          "%CMNT!DVM$%PUTTABCOMTACTUAL%IF(%LL1!=%NULL) (%LL1)%ENDIF%NL",
's',1,BIFNODE)
DEFNODECODE(ACC_CHECKSECTION_DIR,    "%CMNT!DVM$%PUTTABCOMTHOSTSECTION%NL",
's',0,BIFNODE)
DEFNODECODE(ACC_END_CHECKSECTION_DIR,"%CMNT!DVM$%PUTTABCOMTEND HOSTSECTION%NL",
's',0,BIFNODE)
DEFNODECODE(ACC_ROUTINE_DIR,	     "%CMNT!DVM$%PUTTABCOMTROUTINE%IF(%LL1!=%NULL), %LL1%NL",
's',1,BIFNODE)
DEFNODECODE(ACC_DECLARE_DIR,         "%CMNT!DVM$%PUTTABCOMTDECLARE %LL1%NL",
's',1,BIFNODE)

DEFNODECODE(OMP_NOWAIT, 	     "NOWAIT",
'e',0,LLNODE)
DEFNODECODE(OMP_PRIVATE, 	     "PRIVATE (%LL1)",
'e',0,LLNODE)
DEFNODECODE(OMP_FIRSTPRIVATE, 	     "FIRSTPRIVATE (%LL1)",
'e',0,LLNODE)
DEFNODECODE(OMP_LASTPRIVATE, 	     "LASTPRIVATE (%LL1)",
'e',0,LLNODE)
DEFNODECODE(OMP_THREADPRIVATE, 	     "/%LL1/",
'e',0,LLNODE)                       
DEFNODECODE(OMP_COPYIN, 	     "COPYIN (%LL1)",
'e',0,LLNODE)
DEFNODECODE(OMP_SHARED, 	     "SHARED (%LL1)",
'e',0,LLNODE)
DEFNODECODE(OMP_DEFAULT, 	     "DEFAULT (%LL1)",
'e',0,LLNODE)
DEFNODECODE(OMP_ORDERED, 	     "ORDERED",
'e',0,LLNODE)
DEFNODECODE(OMP_IF, 	             "IF (%LL1)",
'e',0,LLNODE)
DEFNODECODE(OMP_NUM_THREADS,         "NUM_THREADS (%LL1)",
'e',0,LLNODE)                       
DEFNODECODE(OMP_REDUCTION, 	     "REDUCTION (%LL1)",
'e',0,LLNODE)
DEFNODECODE(OMP_COLLAPSE, 	     "COLLAPSE (%LL1)",
'e',0,LLNODE)
DEFNODECODE(OMP_SCHEDULE, 	     "SCHEDULE (%LL1%IF(%LL2!=%NULL),%LL2%ENDIF)",
'e',0,LLNODE)
DEFNODECODE(OMP_COPYPRIVATE, 	     "COPYPRIVATE (%LL1)",
'e',0,LLNODE)


DEFNODECODE(OMP_PARALLEL_DIR,              "!$OMP%PUTTABCOMTPARALLEL %IF(%LL1!=%NULL) %LL1%ENDIF%INCTAB%NL%BLOB1",
's',3,BIFNODE)

DEFNODECODE(OMP_END_PARALLEL_DIR,          "!$OMP%DECTAB%PUTTABCOMTEND PARALLEL %IF(%LL1!=%NULL) %LL1%ENDIF%NL",
's',3,BIFNODE)

DEFNODECODE(OMP_SECTIONS_DIR,              "!$OMP%PUTTABCOMTSECTIONS %IF(%LL1!=%NULL) %LL1%ENDIF%INCTAB%NL%BLOB1",
's',3,BIFNODE)

DEFNODECODE(OMP_SECTION_DIR,               "!$OMP%PUTTABCOMTSECTION%INCTAB%NL%BLOB1%DECTAB",
's',3,BIFNODE)

DEFNODECODE(OMP_END_SECTIONS_DIR,          "!$OMP%DECTAB%PUTTABCOMTEND SECTIONS %IF(%LL1!=%NULL) %LL1%ENDIF%NL",
's',3,BIFNODE)

DEFNODECODE(OMP_DO_DIR,                    "!$OMP%PUTTABCOMTDO %IF(%LL1!=%NULL) %LL1%ENDIF%NL",
's',3,BIFNODE)

DEFNODECODE(OMP_END_DO_DIR,                "!$OMP%PUTTABCOMTEND DO %IF(%LL1!=%NULL) %LL1%ENDIF%NL",
's',3,BIFNODE)

DEFNODECODE(OMP_SINGLE_DIR,                "!$OMP%PUTTABCOMTSINGLE %IF(%LL1!=%NULL) %LL1%ENDIF%INCTAB%NL%BLOB1",
's',3,BIFNODE)

DEFNODECODE(OMP_END_SINGLE_DIR,            "!$OMP%DECTAB%PUTTABCOMTEND SINGLE %IF(%LL1!=%NULL) %LL1%ENDIF%NL",
's',3,BIFNODE)

DEFNODECODE(OMP_WORKSHARE_DIR,             "!$OMP%PUTTABCOMTWORKSHARE %IF(%LL1!=%NULL) %LL1%ENDIF%INCTAB%NL%BLOB1",
's',3,BIFNODE)

DEFNODECODE(OMP_END_WORKSHARE_DIR,         "!$OMP%DECTAB%PUTTABCOMTEND WORKSHARE %IF(%LL1!=%NULL) %LL1%ENDIF%NL",
's',3,BIFNODE)

DEFNODECODE(OMP_PARALLEL_DO_DIR,           "!$OMP%PUTTABCOMTPARALLEL DO %IF(%LL1!=%NULL) %LL1%ENDIF%NL",
's',3,BIFNODE)

DEFNODECODE(OMP_END_PARALLEL_DO_DIR,       "!$OMP%PUTTABCOMTEND PARALLEL DO %IF(%LL1!=%NULL) %LL1%ENDIF%NL",
's',3,BIFNODE)

DEFNODECODE(OMP_PARALLEL_SECTIONS_DIR,     "!$OMP%PUTTABCOMTPARALLEL SECTIONS %IF(%LL1!=%NULL) %LL1%ENDIF%INCTAB%NL%BLOB1",
's',3,BIFNODE)

DEFNODECODE(OMP_END_PARALLEL_SECTIONS_DIR, "!$OMP%DECTAB%PUTTABCOMTEND PARALLEL SECTIONS %IF(%LL1!=%NULL) %LL1%ENDIF%NL",
's',3,BIFNODE)

DEFNODECODE(OMP_PARALLEL_WORKSHARE_DIR,    "!$OMP%PUTTABCOMTPARALLEL WORKSHARE %IF(%LL1!=%NULL) %LL1%ENDIF%INCTAB%NL%BLOB1",
's',3,BIFNODE)

DEFNODECODE(OMP_END_PARALLEL_WORKSHARE_DIR, "!$OMP%DECTAB%PUTTABCOMTEND PARALLEL WORKSHARE %IF(%LL1!=%NULL) %LL1%ENDIF%NL",
's',3,BIFNODE)

DEFNODECODE(OMP_THREADPRIVATE_DIR,         "!$OMP%PUTTABCOMTTHREADPRIVATE %IF(%LL1!=%NULL) ( %LL1 )%ENDIF%NL",
's',3,BIFNODE)

DEFNODECODE(OMP_MASTER_DIR,                "!$OMP%PUTTABCOMTMASTER%INCTAB%NL%BLOB1",
's',3,BIFNODE)

DEFNODECODE(OMP_END_MASTER_DIR,            "!$OMP%DECTAB%PUTTABCOMTEND MASTER%NL",
's',3,BIFNODE)

DEFNODECODE(OMP_ORDERED_DIR,               "!$OMP%PUTTABCOMTORDERED%INCTAB%NL%BLOB1",
's',3,BIFNODE)

DEFNODECODE(OMP_END_ORDERED_DIR,           "!$OMP%DECTAB%PUTTABCOMTEND ORDERED%NL",
's',3,BIFNODE)

DEFNODECODE(OMP_ATOMIC_DIR,                "!$OMP%PUTTABCOMTATOMIC%NL",
's',3,BIFNODE)

DEFNODECODE(OMP_BARRIER_DIR,               "!$OMP%PUTTABCOMTBARRIER%NL",
's',3,BIFNODE)

DEFNODECODE(OMP_CRITICAL_DIR,              "!$OMP%PUTTABCOMTCRITICAL %IF(%LL1!=%NULL) ( %LL1 )%ENDIF%INCTAB%NL%BLOB1",
's',3,BIFNODE)

DEFNODECODE(OMP_END_CRITICAL_DIR,          "!$OMP%DECTAB%PUTTABCOMTEND CRITICAL %IF(%LL1!=%NULL) ( %LL1 )%ENDIF%NL",
's',3,BIFNODE)

DEFNODECODE(OMP_FLUSH_DIR,                 "!$OMP%PUTTABCOMTFLUSH %IF(%LL1!=%NULL) ( %LL1 )%ENDIF%NL",
's',3,BIFNODE)

DEFNODECODE(RECORD_DECL,                   "%CMNT%PUTTABtype %IF (%LL1 != %NULL),%LL1::%ENDIF%SYMBID%INCTAB%NL%BLOB1%DECTAB",
'd',0,BIFNODE)


/*****************variant tags for SPF nodes*****************************/
DEFNODECODE(SPF_ANALYSIS_DIR,         "%CMNT!$SPF%PUTTABCOMTANALYSIS (%LL1)%NL",
's',0,BIFNODE)
DEFNODECODE(SPF_PARALLEL_DIR,         "%CMNT!$SPF%PUTTABCOMTPARALLEL (%LL1)%NL",
's',0,BIFNODE)
DEFNODECODE(SPF_TRANSFORM_DIR,        "%CMNT!$SPF%PUTTABCOMTTRANSFORM (%LL1)%NL",
's',0,BIFNODE)
DEFNODECODE(SPF_PARALLEL_REG_DIR,     "%CMNT!$SPF%PUTTABCOMTPARALLEL_REG %SYMBID %IF(%LL1 != %NULL), APPLY_REGION(%LL1)%ENDIF%IF(%LL2 != %NULL), APPLY_FRAGMENT(%LL2)%ENDIF%NL",
's',2,BIFNODE)
DEFNODECODE(SPF_END_PARALLEL_REG_DIR, "%CMNT!$SPF%PUTTABCOMTEND PARALLEL_REG%NL",
's',0,BIFNODE)
DEFNODECODE(SPF_CHECKPOINT_DIR,       "%CMNT!$SPF%PUTTABCOMTCHECKPOINT (%LL1)%NL",
's',1,BIFNODE)

DEFNODECODE(SPF_NOINLINE_OP,          "NOINLINE",
'e',0,LLNODE)
DEFNODECODE(SPF_FISSION_OP,           "FISSION (%LL1)",
'e',1,LLNODE)
DEFNODECODE(SPF_EXPAND_OP,            "EXPAND %IF(%LL1 != %NULL)(%LL1)%ENDIF",
'e',1,LLNODE)
DEFNODECODE(SPF_SHRINK_OP,            "SHRINK (%LL1)",
'e',1,LLNODE)
DEFNODECODE(SPF_TYPE_OP,              "TYPE (%LL1)",
'e',1,LLNODE)
DEFNODECODE(SPF_VARLIST_OP,           "VARLIST (%LL1)",
'e',1,LLNODE)
DEFNODECODE(SPF_EXCEPT_OP,            "EXCEPT (%LL1)",
'e',1,LLNODE)
DEFNODECODE(SPF_FILES_COUNT_OP,       "FILES_COUNT (%LL1)",
'e',1,LLNODE)
DEFNODECODE(SPF_INTERVAL_OP,          "INTERVAL (%LL1, %LL2)",
'e',2,LLNODE)
DEFNODECODE(SPF_TIME_OP,              "TIME",
'e',0,LLNODE)
DEFNODECODE(SPF_ITER_OP,              "ITER",
'e',0,LLNODE)
DEFNODECODE(SPF_FLEXIBLE_OP,          "FLEXIBLE",
'e',0,LLNODE)
DEFNODECODE(SPF_PARAMETER_OP,         "PARAMETER (%LL1)",
'e',1,LLNODE)
DEFNODECODE(SPF_UNROLL_OP,            "UNROLL %IF(%LL1 != %NULL)(%LL1)%ENDIF",
'e',1,LLNODE)
DEFNODECODE(SPF_MERGE_OP,            "MERGE",
'e',0,LLNODE)
DEFNODECODE(SPF_COVER_OP,            "COVER (%LL1)",
'e',1,LLNODE)
DEFNODECODE(SPF_PROCESS_PRIVATE_OP,  "PROCESS_PRIVATE (%LL1)",
'e',1,LLNODE)


