// ==============================================================
//#+ This module generated by Mumps Compiler 
//#+ Tue Dec 23 15:20:00 2025
//#+ Portions of this code are part of the Mumps Compiler
//#+ 
//#+ Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 
//#+ 2010, 2017, 2020, 2022, 2024 by Kevin C. O'Kane  
//#+ 
//#+ Kevin C. O'Kane, Ph.D.
//#+ Professor Emeritus
//#+ Computer Science Department
//#+ University of Northern Iowa
//#+ Cedar Falls, IA 50614-0507
//#+ kc.okane@gmail.com
//#+ okane@uni.edu
//#+ https://threadsafebooks.com
//#+ https://www.cs.uni.edu/~okane
//#+ -----------------------------------
//#+ 
//#+ Consult individual modules for copyright details
//#+ The runtime libraries are covered by the following license:
//#+  
//#+ This library is free software; you can redistribute it and/or
//#+ modify it under the terms of the GNU Lesser General Public
//#+ License as published by the Free Software Foundation; either
//#+ version 2.1 of the License, or (at your option) any later version.
//#+ 
//#+ This library is distributed in the hope that it will be useful,
//#+ but WITHOUT ANY WARRANTY; without even the implied warranty of
//#+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
//#+ Lesser General Public License for more details.
//#+ 
//#+ You should have received a copy of the GNU Lesser General Public
//#+ License along with this library; if not, write to the Free Software
//#+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//#+ 
//#+ This code is unverified - use at your own risk 
//#+==============================================================

#undef _MDH_
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <setjmp.h>
#include <unistd.h>
#include <signal.h>
#include <sys/time.h>
#include <mumpsc/inline.h>
#include <mumpsc/defines.h>
#include <mumpsc/strmax.h>
#include <mumpsc/libmpscpp.h>
#include <mumpsc/sym.h>
#include <mumpsc/builtin.h>
#include <mumpsc/compiler.h>
#define FORPARM STR_MAX  /* Size of For loop parameter */
#define CSTR (char *)
#define UNS unsigned char *
#define uns unsigned char *
#define CCHR const char *
#include <mumpsc/keyfix.h>
#include <mumpsc/globalOrder.h>
#include <mumpsc/stateVector.h>
int (*__label_lookup)(char *);
const char * (*__text_function)(int);
void fcn(MSV *);
void zfcn(unsigned char *, unsigned char *, struct MSV *); /* z functions */
char * sym_(int, unsigned char *, unsigned char *, struct MSV *); /* symbol table */
char * makeLock(char *, char *, char *, char, char *); /* global array lock service */
char * cleanLocks(char *); /* global array lock service */
char * releaseLock(char *, char *, char *); /* global array lock service */
char * eraseLocks(char *); /* global array lock service */
void add(const char *a,const char *b,char *c); /* math function */
void sub(const char *a,const char *b,char *c); /* math function */
void mult(const char *a,const char *b,char *c); /* math function */
void divx(const char *a,const char *b,char *c); /* math function */
void divi(const char *a,const char *b,char *c); /* math function */
void _fnumber(unsigned char *,unsigned char *,
       unsigned char *,unsigned char *, MSV *); /* math function */
int DBSem = 0; /* deadlock prevention */

static inline int floatstring(const char * p) { 
 int f=0;  
 for (; *p!=0; p++) {  
	 if (    isdigit(*p) || 
	 	*p == '-' ||  
		*p == '+' ) continue;  
 	if (    *p=='.' ||  
		tolower(*p)=='e' ) { 
		f=1;  
		continue;  
		} 
	return 0; 
	}  
 return f;  
 } 
 
inline int numcomp2(unsigned char *aa) { 
 if (floatstring((char *) aa)) return (atof( (char *) aa) != 0.0);  
 return atoi((char *) aa);  
 }

inline char * strxcat(char * a, char *b)  
{ while (*a) a++; while( (*(a) = *(b)) ) { a++; b++; } return a; }

inline char * strcatz(char * out, char *in)  
{ while (*out) out++; while (*(out) = *(in)) { out++; in++; } *(out++) = '';  
*out = 0; return (char *) out; } 

void SyncClock() {
    DBSem = 1;
    }

unsigned int set_alarm (unsigned int seconds) {
    struct itimerval old, xnew;
    xnew.it_interval.tv_usec = 0;
    xnew.it_interval.tv_sec = 0 ; // interval between alarms
    xnew.it_value.tv_usec = 0;
    xnew.it_value.tv_sec = (long int) 0;
    if (setitimer (ITIMER_REAL, &xnew, &old) < 0)
        return 0;
    else
        return old.it_value.tv_sec;
    }

#include <mumpsc/global.h>  /* Global array definitions */
  /* Interface to Mglobal(): */
  /* g = command */
  /* key = key sought or stored */
  /* bd = value returned or stored */
  /* svPtr = address of state vector */
#ifndef SUB
#include <mumpsc/fcns.h>  /* System support functions */
#include <mumpsc/sysfunc.h>  /* Many common global variables */
#endif

// !/usr/bin/mumps

// ===============================================================

// +

// + Kevin C. O'Kane, Ph.D.

// + Professor Emeritus

// + Computer Science Department

// + University of Northern Iowa

// + Cedar Falls, IA 50614-0507

// + kc.okane@gmail.com

// + okane@uni.edu

// + https://threadsafebooks.com

// + https://www.cs.uni.edu/~okane

// +

// +==============================================================

//================================================================================= 
//  zmain 
//================================================================================= 

int main(int argc, char *argv[]) {

//#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//#+ Intermediate temporary variables used during execution of string expressions
//#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

char * catx; // intermediate concat ptr
char *_ftmp = new char[STR_MAX]; /* intermediate temp */
/*** Temporary variables */
char for1_incr[FORPARM], for1_lim[FORPARM], for1_init[FORPARM];
int for1F; int for1T; 
char for2_incr[FORPARM], for2_lim[FORPARM], for2_init[FORPARM];
int for2F; int for2T; 
char for3_incr[FORPARM], for3_lim[FORPARM], for3_init[FORPARM];
int for3F; int for3T; 
char for4_incr[FORPARM], for4_lim[FORPARM], for4_init[FORPARM];
int for4F; int for4T; 
char for5_incr[FORPARM], for5_lim[FORPARM], for5_init[FORPARM];
int for5F; int for5T; 
char for6_incr[FORPARM], for6_lim[FORPARM], for6_init[FORPARM];
int for6F; int for6T; 
char for7_incr[FORPARM], for7_lim[FORPARM], for7_init[FORPARM];
int for7F; int for7T; 
char for8_incr[FORPARM], for8_lim[FORPARM], for8_init[FORPARM];
int for8F; int for8T; 
char for9_incr[FORPARM], for9_lim[FORPARM], for9_init[FORPARM];
int for9F; int for9T; 
char for10_incr[FORPARM], for10_lim[FORPARM], for10_init[FORPARM];
int for10F; int for10T; 
char for11_incr[FORPARM], for11_lim[FORPARM], for11_init[FORPARM];
int for11F; int for11T; 
char for12_incr[FORPARM], for12_lim[FORPARM], for12_init[FORPARM];
int for12F; int for12T; 
char for13_incr[FORPARM], for13_lim[FORPARM], for13_init[FORPARM];
int for13F; int for13T; 
char for14_incr[FORPARM], for14_lim[FORPARM], for14_init[FORPARM];
int for14F; int for14T; 
char for15_incr[FORPARM], for15_lim[FORPARM], for15_init[FORPARM];
int for15F; int for15T; 
char for16_incr[FORPARM], for16_lim[FORPARM], for16_init[FORPARM];
int for16F; int for16T; 
char for17_incr[FORPARM], for17_lim[FORPARM], for17_init[FORPARM];
int for17F; int for17T; 
char for18_incr[FORPARM], for18_lim[FORPARM], for18_init[FORPARM];
int for18F; int for18T; 
char for19_incr[FORPARM], for19_lim[FORPARM], for19_init[FORPARM];
int for19F; int for19T; 
char for20_incr[FORPARM], for20_lim[FORPARM], for20_init[FORPARM];
int for20F; int for20T; 
char for21_incr[FORPARM], for21_lim[FORPARM], for21_init[FORPARM];
int for21F; int for21T; 
char for22_incr[FORPARM], for22_lim[FORPARM], for22_init[FORPARM];
int for22F; int for22T; 
char for23_incr[FORPARM], for23_lim[FORPARM], for23_init[FORPARM];
int for23F; int for23T; 
char for24_incr[FORPARM], for24_lim[FORPARM], for24_init[FORPARM];
int for24F; int for24T; 
char for25_incr[FORPARM], for25_lim[FORPARM], for25_init[FORPARM];
int for25F; int for25T; 
char for26_incr[FORPARM], for26_lim[FORPARM], for26_init[FORPARM];
int for26F; int for26T; 
jmp_buf for0J;
jmp_buf for1J;
jmp_buf for2J;
jmp_buf for3J;
jmp_buf for4J;
jmp_buf for5J;
jmp_buf for6J;
jmp_buf for7J;
jmp_buf for8J;
jmp_buf for9J;
jmp_buf for10J;
jmp_buf for11J;
jmp_buf for12J;
jmp_buf for13J;
jmp_buf for14J;
jmp_buf for15J;
jmp_buf for16J;
jmp_buf for17J;
jmp_buf for18J;
jmp_buf for19J;
jmp_buf for20J;
jmp_buf for21J;
jmp_buf for22J;
jmp_buf for23J;
jmp_buf for24J;
jmp_buf for25J;
jmp_buf for26J;
jmp_buf Efor0J;
int tpx0;
jmp_buf Efor1J;
int tpx1;
jmp_buf Efor2J;
int tpx2;
jmp_buf Efor3J;
int tpx3;
jmp_buf Efor4J;
int tpx4;
jmp_buf Efor5J;
int tpx5;
jmp_buf Efor6J;
int tpx6;
jmp_buf Efor7J;
int tpx7;
jmp_buf Efor8J;
int tpx8;
jmp_buf Efor9J;
int tpx9;
jmp_buf Efor10J;
int tpx10;
jmp_buf Efor11J;
int tpx11;
unsigned char *tmp0 = new unsigned char[STR_MAX];
unsigned char *tmp1 = new unsigned char[STR_MAX];
unsigned char *tmp2 = new unsigned char[STR_MAX];
unsigned char *tmp3 = new unsigned char[STR_MAX];
unsigned char *tmp4 = new unsigned char[STR_MAX];
unsigned char *tmp5 = new unsigned char[STR_MAX];
unsigned char *tmp6 = new unsigned char[STR_MAX];
unsigned char *tmp7 = new unsigned char[STR_MAX];
unsigned char *tmp8 = new unsigned char[STR_MAX];
unsigned char *tmp9 = new unsigned char[STR_MAX];
unsigned char *tmp10 = new unsigned char[STR_MAX];
unsigned char *tmp11 = new unsigned char[STR_MAX];
unsigned char *tmp12 = new unsigned char[STR_MAX];
unsigned char *tmp13 = new unsigned char[STR_MAX];
unsigned char *tmp14 = new unsigned char[STR_MAX];
unsigned char *tmp15 = new unsigned char[STR_MAX];
unsigned char *tmp16 = new unsigned char[STR_MAX];
unsigned char *tmp17 = new unsigned char[STR_MAX];
unsigned char *tmp18 = new unsigned char[STR_MAX];
unsigned char *tmp19 = new unsigned char[STR_MAX];
unsigned char *tmp20 = new unsigned char[STR_MAX];
unsigned char *tmp21 = new unsigned char[STR_MAX];
unsigned char *tmp22 = new unsigned char[STR_MAX];
unsigned char *tmp23 = new unsigned char[STR_MAX];
unsigned char *tmp24 = new unsigned char[STR_MAX];
unsigned char *tmp25 = new unsigned char[STR_MAX];
unsigned char *tmp26 = new unsigned char[STR_MAX];
unsigned char *tmp27 = new unsigned char[STR_MAX];
unsigned char *tmp28 = new unsigned char[STR_MAX];
unsigned char *tmp29 = new unsigned char[STR_MAX];
unsigned char *tmp30 = new unsigned char[STR_MAX];
unsigned char *tmp31 = new unsigned char[STR_MAX];
unsigned char *tmp32 = new unsigned char[STR_MAX];
unsigned char *tmp33 = new unsigned char[STR_MAX];
unsigned char *tmp34 = new unsigned char[STR_MAX];
unsigned char *_dummy = new unsigned char[STR_MAX]; /* temporary variable */
unsigned char *atmp =new unsigned char[STR_MAX]; /* temporary variable */
unsigned char *xgtmp = new unsigned char [STR_MAX]; /* temporary variable */
unsigned char *gtmpL = new unsigned char[STR_MAX]; /* temporary variable */
unsigned char *tmp = new unsigned char[STR_MAX]; /* temporary variable */
unsigned char *gtmp = new unsigned char [2*STR_MAX]; /* temporary variable */
int _label_lookup(char *); /* resolution of labels */
const char * _text_function(int);
static unsigned char _ReturnVal[STR_MAX]; /* function returns */
int _ArgCount=0; /* Nbr of args to extrinsic */
long _i,_jj,_j,_k,_new;
int _SymPush=0,f=0;
int g=0;
jmp_buf _doStack[128]; /* <do> return stack mechanism */
short   _doStackN[128]={0}; /* <do> return stack mechanism */
static int     _doStx=0; /* <do> return stack mechanism */
char _Refs[10][32];
int _Refsx=0;

if (svPtr == NULL) svPtr = AllocSV();

_SymPush=0; // zap pushed tables 

svPtr->in_file[5]=stdin; // console default/
svPtr->out_file[5]=stdout; // console default

strcpy(svPtr->UDAT,"data.dat");
strcpy(svPtr->UKEY,"key.dat");

if ( 0) { // no alarm if slice is zero
	signal(SIGALRM, SyncClock);
	set_alarm(1);
	}

__label_lookup = _label_lookup;
__text_function = _text_function;

$SymPut("%",argv[0]); 

if (argc > 0) { 
	for (int i = 0; i < argc; i++) { 
		char t[STR_MAX]; 
		sprintf(t,"%%%d", i); 
		$SymPut(t, argv[i]); 
		} 
	} 

try { 

//================================================================================= 
svPtr->LineNumber=18; //  read "n ",n 
//================================================================================= 

//--------------
//       Read
//--------------

	if (svPtr->in_file[svPtr->io] == NULL) 
		ErrorMessage("Read from input file", svPtr->LineNumber); 
	svPtr->hor[svPtr->io] += fprintf(svPtr->out_file[svPtr->io], "%s", 
		"n ");
	svPtr->tpx = getstr1(svPtr->in_file[svPtr->io], &gtmp); // Read string into gtmp
	if (svPtr->tpx >= 0) svPtr->tpx = 1; else svPtr->tpx = 0; // Set $Test
	sym_(SYMSTORE, (UNS) "n", (UNS) gtmp, svPtr); // Store result s274 

//================================================================================= 
svPtr->LineNumber=20; //  for i=1:1:n do 
//================================================================================= 

//--------------
//       For
//--------------

	strcpy(for1_lim, "");
	strmove((UNS) for1_init, (UNS) "1"); // init value m2534
	strmove( (UNS) for1_incr, (UNS) "1"); // inc/dec m2575
	if (sym_(SYMGET, (UNS) "n", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "n"); // not found
	strmove((UNS) for1_lim, (UNS) tmp0); // limit value

	if (strchr((char *) for1_incr, '.')) // inc/dec is float
		for1F = atof(for1_incr) < 0.0 ? 1 : 0; // incr or decr?
	else // inc/dec is integer
		for1F = atol(for1_incr) < 0 ? 1 : 0; // incr or decr?

	for ( sym_(SYMSTORE, (UNS) "i", (UNS) for1_init, svPtr); // init 2618

		for1F ? // loop limit test direction
			numcomp((UNS) sym_(11, (UNS) "i", 
				 _dummy, svPtr),
				(UNS) for1_lim) >= 0 // GE limit value?
			: // ternary operator
			numcomp((UNS) sym_(11, (UNS) "i", 
				_dummy,svPtr),
				(UNS) for1_lim) <= 0; // LE limit value

		add( sym_(11, (UNS) "i", _dummy, svPtr), // inc/dec loop var
			for1_incr, (char *) _dummy),
		sym_(SYMSTORE, (UNS) "i", (UNS) _dummy, svPtr) ) // store rslt

		if ((_i = setjmp(for1J)) == 0) goto For1; // else continue

	else if (_i == 100) goto For1Exit; // f273

	goto For1Exit; // bypass block 

For1: // for loop body entry point B

	do { // for loop body
		svPtr->LineNumber = 20; 

//--------------
//       Do
//--------------

		tpx0 = svPtr->tpx; 
		if ( (_i = setjmp(Efor0J)) == 0) goto Do_Block_Entry0; //else continue 
		else if (_i == 100) goto Do_Block_Bypass0; // IF_flg m1402
	} while (0); longjmp(for1J, _i); // FOR loop 1 close 

For1Exit: ; // exit for loop 

	goto Do_Block_Bypass0; // C3551 bypass indented group

//-------------------------------------
Do_Block_Entry0:; // Enter Do Block
//-------------------------------------

do { /* dotted indent entry */

//================================================================================= 
svPtr->LineNumber=21; //  . write "p",i," " 
//================================================================================= 

//--------------
//       Write
//--------------

	if (svPtr->out_file[svPtr->io]==NULL) 
		ErrorMessage("Write to input file", svPtr->LineNumber); // m1944 
	svPtr->hor[svPtr->io] += fprintf(svPtr->out_file[svPtr->io], "%s", 
		"p");
	if (sym_(SYMGET, (UNS) "i", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	svPtr->hor[svPtr->io] += fprintf(svPtr->out_file[svPtr->io], "%s", 
		tmp0);
	svPtr->hor[svPtr->io] += fprintf(svPtr->out_file[svPtr->io], "%s", 
		" ");

//================================================================================= 
svPtr->LineNumber=22; //  . read p(i) 
//================================================================================= 

//--------------
//       Read
//--------------

	if (svPtr->in_file[svPtr->io] == NULL) 
		ErrorMessage("Read from input file", svPtr->LineNumber); 
	{	char tmp[STR_MAX];  // expand lhs array reference
		int i;
		strmove((UNS) tmp, (UNS) "p"); // array name
		i=strlen(tmp);
		tmp[i]=206; // coded open paren
		tmp[i+1]=0;
		if (sym_(SYMGET, (UNS) "i", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	strcat((char *) tmp,(char *) tmp0); // index
		i=strlen(tmp);
		tmp[i]=207; // coded comma or close paren
		tmp[i+1]=0;
	strmove((UNS) atmp, (UNS) tmp); // preserve expanded array reference
		}
	svPtr->tpx = getstr1(svPtr->in_file[svPtr->io], &gtmp); // Read string into gtmp
	if (svPtr->tpx >= 0) svPtr->tpx = 1; else svPtr->tpx = 0; // Set $Test
	sym_(SYMSTORE, (UNS) atmp, (UNS) gtmp, svPtr); // Store result s270 
	} while(0); // dotted un-indent 0 
	longjmp(Efor0J,99); // return 

Do_Block_Bypass0: ; //B848 


//================================================================================= 
svPtr->LineNumber=24; //  for i=0:1:n do 
//================================================================================= 

//--------------
//       For
//--------------

	strcpy(for3_lim, "");
	strmove((UNS) for3_init, (UNS) "0"); // init value m2534
	strmove( (UNS) for3_incr, (UNS) "1"); // inc/dec m2575
	if (sym_(SYMGET, (UNS) "n", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "n"); // not found
	strmove((UNS) for3_lim, (UNS) tmp0); // limit value

	if (strchr((char *) for3_incr, '.')) // inc/dec is float
		for3F = atof(for3_incr) < 0.0 ? 1 : 0; // incr or decr?
	else // inc/dec is integer
		for3F = atol(for3_incr) < 0 ? 1 : 0; // incr or decr?

	for ( sym_(SYMSTORE, (UNS) "i", (UNS) for3_init, svPtr); // init 2618

		for3F ? // loop limit test direction
			numcomp((UNS) sym_(11, (UNS) "i", 
				 _dummy, svPtr),
				(UNS) for3_lim) >= 0 // GE limit value?
			: // ternary operator
			numcomp((UNS) sym_(11, (UNS) "i", 
				_dummy,svPtr),
				(UNS) for3_lim) <= 0; // LE limit value

		add( sym_(11, (UNS) "i", _dummy, svPtr), // inc/dec loop var
			for3_incr, (char *) _dummy),
		sym_(SYMSTORE, (UNS) "i", (UNS) _dummy, svPtr) ) // store rslt

		if ((_i = setjmp(for3J)) == 0) goto For3; // else continue

	else if (_i == 100) goto For3Exit; // f273

	goto For3Exit; // bypass block 

For3: // for loop body entry point B

	do { // for loop body
		svPtr->LineNumber = 24; 

//--------------
//       Do
//--------------

		tpx1 = svPtr->tpx; 
		if ( (_i = setjmp(Efor1J)) == 0) goto Do_Block_Entry1; //else continue 
		else if (_i == 100) goto Do_Block_Bypass1; // IF_flg m1402
	} while (0); longjmp(for3J, _i); // FOR loop 1 close 

For3Exit: ; // exit for loop 

	goto Do_Block_Bypass1; // C3551 bypass indented group

//-------------------------------------
Do_Block_Entry1:; // Enter Do Block
//-------------------------------------

do { /* dotted indent entry */

//================================================================================= 
svPtr->LineNumber=25; //  . write "q",i," " 
//================================================================================= 

//--------------
//       Write
//--------------

	if (svPtr->out_file[svPtr->io]==NULL) 
		ErrorMessage("Write to input file", svPtr->LineNumber); // m1944 
	svPtr->hor[svPtr->io] += fprintf(svPtr->out_file[svPtr->io], "%s", 
		"q");
	if (sym_(SYMGET, (UNS) "i", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	svPtr->hor[svPtr->io] += fprintf(svPtr->out_file[svPtr->io], "%s", 
		tmp0);
	svPtr->hor[svPtr->io] += fprintf(svPtr->out_file[svPtr->io], "%s", 
		" ");

//================================================================================= 
svPtr->LineNumber=26; //  . read q(i) 
//================================================================================= 

//--------------
//       Read
//--------------

	if (svPtr->in_file[svPtr->io] == NULL) 
		ErrorMessage("Read from input file", svPtr->LineNumber); 
	{	char tmp[STR_MAX];  // expand lhs array reference
		int i;
		strmove((UNS) tmp, (UNS) "q"); // array name
		i=strlen(tmp);
		tmp[i]=206; // coded open paren
		tmp[i+1]=0;
		if (sym_(SYMGET, (UNS) "i", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	strcat((char *) tmp,(char *) tmp0); // index
		i=strlen(tmp);
		tmp[i]=207; // coded comma or close paren
		tmp[i+1]=0;
	strmove((UNS) atmp, (UNS) tmp); // preserve expanded array reference
		}
	svPtr->tpx = getstr1(svPtr->in_file[svPtr->io], &gtmp); // Read string into gtmp
	if (svPtr->tpx >= 0) svPtr->tpx = 1; else svPtr->tpx = 0; // Set $Test
	sym_(SYMSTORE, (UNS) atmp, (UNS) gtmp, svPtr); // Store result s270 
	} while(0); // dotted un-indent 0 
	longjmp(Efor1J,99); // return 

Do_Block_Bypass1: ; //B848 


//================================================================================= 
svPtr->LineNumber=28; //  for i=0:1:n do 
//================================================================================= 

//--------------
//       For
//--------------

	strcpy(for5_lim, "");
	strmove((UNS) for5_init, (UNS) "0"); // init value m2534
	strmove( (UNS) for5_incr, (UNS) "1"); // inc/dec m2575
	if (sym_(SYMGET, (UNS) "n", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "n"); // not found
	strmove((UNS) for5_lim, (UNS) tmp0); // limit value

	if (strchr((char *) for5_incr, '.')) // inc/dec is float
		for5F = atof(for5_incr) < 0.0 ? 1 : 0; // incr or decr?
	else // inc/dec is integer
		for5F = atol(for5_incr) < 0 ? 1 : 0; // incr or decr?

	for ( sym_(SYMSTORE, (UNS) "i", (UNS) for5_init, svPtr); // init 2618

		for5F ? // loop limit test direction
			numcomp((UNS) sym_(11, (UNS) "i", 
				 _dummy, svPtr),
				(UNS) for5_lim) >= 0 // GE limit value?
			: // ternary operator
			numcomp((UNS) sym_(11, (UNS) "i", 
				_dummy,svPtr),
				(UNS) for5_lim) <= 0; // LE limit value

		add( sym_(11, (UNS) "i", _dummy, svPtr), // inc/dec loop var
			for5_incr, (char *) _dummy),
		sym_(SYMSTORE, (UNS) "i", (UNS) _dummy, svPtr) ) // store rslt

		if ((_i = setjmp(for5J)) == 0) goto For5; // else continue

	else if (_i == 100) goto For5Exit; // f273

	goto For5Exit; // bypass block 

For5: // for loop body entry point B

	do { // for loop body
		svPtr->LineNumber = 28; 

//--------------
//       Do
//--------------

		tpx2 = svPtr->tpx; 
		if ( (_i = setjmp(Efor2J)) == 0) goto Do_Block_Entry2; //else continue 
		else if (_i == 100) goto Do_Block_Bypass2; // IF_flg m1402
	} while (0); longjmp(for5J, _i); // FOR loop 1 close 

For5Exit: ; // exit for loop 

	goto Do_Block_Bypass2; // C3551 bypass indented group

//-------------------------------------
Do_Block_Entry2:; // Enter Do Block
//-------------------------------------

do { /* dotted indent entry */

//================================================================================= 
svPtr->LineNumber=29; //  . for j=0:1:n do 
//================================================================================= 

//--------------
//       For
//--------------

	strcpy(for7_lim, "");
	strmove((UNS) for7_init, (UNS) "0"); // init value m2534
	strmove( (UNS) for7_incr, (UNS) "1"); // inc/dec m2575
	if (sym_(SYMGET, (UNS) "n", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "n"); // not found
	strmove((UNS) for7_lim, (UNS) tmp0); // limit value

	if (strchr((char *) for7_incr, '.')) // inc/dec is float
		for7F = atof(for7_incr) < 0.0 ? 1 : 0; // incr or decr?
	else // inc/dec is integer
		for7F = atol(for7_incr) < 0 ? 1 : 0; // incr or decr?

	for ( sym_(SYMSTORE, (UNS) "j", (UNS) for7_init, svPtr); // init 2618

		for7F ? // loop limit test direction
			numcomp((UNS) sym_(11, (UNS) "j", 
				 _dummy, svPtr),
				(UNS) for7_lim) >= 0 // GE limit value?
			: // ternary operator
			numcomp((UNS) sym_(11, (UNS) "j", 
				_dummy,svPtr),
				(UNS) for7_lim) <= 0; // LE limit value

		add( sym_(11, (UNS) "j", _dummy, svPtr), // inc/dec loop var
			for7_incr, (char *) _dummy),
		sym_(SYMSTORE, (UNS) "j", (UNS) _dummy, svPtr) ) // store rslt

		if ((_i = setjmp(for7J)) == 0) goto For7; // else continue

	else if (_i == 100) goto For7Exit; // f273

	goto For7Exit; // bypass block 

For7: // for loop body entry point B

	do { // for loop body
		svPtr->LineNumber = 29; 

//--------------
//       Do
//--------------

		tpx3 = svPtr->tpx; 
		if ( (_i = setjmp(Efor3J)) == 0) goto Do_Block_Entry3; //else continue 
		else if (_i == 100) goto Do_Block_Bypass3; // IF_flg m1402
	} while (0); longjmp(for7J, _i); // FOR loop 1 close 

For7Exit: ; // exit for loop 

	goto Do_Block_Bypass3; // C3551 bypass indented group

//-------------------------------------
Do_Block_Entry3:; // Enter Do Block
//-------------------------------------

do { /* dotted indent entry */

//================================================================================= 
svPtr->LineNumber=30; //  .. set r(i,j)=0 
//================================================================================= 

//--------------
//       Set
//--------------

	{	char tmp[STR_MAX];  // expand lhs array reference
		int i;
		strmove((UNS) tmp, (UNS) "r"); // array name
		i=strlen(tmp);
		tmp[i]=206; // coded open paren
		tmp[i+1]=0;
		if (sym_(SYMGET, (UNS) "i", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	strcat((char *) tmp,(char *) tmp0); // index
		i=strlen(tmp);
		tmp[i]=208; // coded comma or close paren
		tmp[i+1]=0;
		if (sym_(SYMGET, (UNS) "j", (UNS) tmp1, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
		strcat((char *) tmp,(char *) tmp1); // index
		i=strlen((const char *) tmp);
		tmp[i]=207; // coded comma or close paren
		tmp[i+1]=0;
	strmove((UNS) atmp, (UNS) tmp); // preserve expanded array reference
		}
	sym_(SYMSTORE, (UNS) atmp, (UNS) "0", svPtr); // Store result s270 
	} while(0); // dotted un-indent 1 
	longjmp(Efor3J,99); // return 

Do_Block_Bypass3: ; //B848 

	} while(0); // dotted un-indent 0 
	longjmp(Efor2J,99); // return 

Do_Block_Bypass2: ; //B848 


//================================================================================= 
svPtr->LineNumber=32; //  for i=0:1:n do 
//================================================================================= 

//--------------
//       For
//--------------

	strcpy(for9_lim, "");
	strmove((UNS) for9_init, (UNS) "0"); // init value m2534
	strmove( (UNS) for9_incr, (UNS) "1"); // inc/dec m2575
	if (sym_(SYMGET, (UNS) "n", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "n"); // not found
	strmove((UNS) for9_lim, (UNS) tmp0); // limit value

	if (strchr((char *) for9_incr, '.')) // inc/dec is float
		for9F = atof(for9_incr) < 0.0 ? 1 : 0; // incr or decr?
	else // inc/dec is integer
		for9F = atol(for9_incr) < 0 ? 1 : 0; // incr or decr?

	for ( sym_(SYMSTORE, (UNS) "i", (UNS) for9_init, svPtr); // init 2618

		for9F ? // loop limit test direction
			numcomp((UNS) sym_(11, (UNS) "i", 
				 _dummy, svPtr),
				(UNS) for9_lim) >= 0 // GE limit value?
			: // ternary operator
			numcomp((UNS) sym_(11, (UNS) "i", 
				_dummy,svPtr),
				(UNS) for9_lim) <= 0; // LE limit value

		add( sym_(11, (UNS) "i", _dummy, svPtr), // inc/dec loop var
			for9_incr, (char *) _dummy),
		sym_(SYMSTORE, (UNS) "i", (UNS) _dummy, svPtr) ) // store rslt

		if ((_i = setjmp(for9J)) == 0) goto For9; // else continue

	else if (_i == 100) goto For9Exit; // f273

	goto For9Exit; // bypass block 

For9: // for loop body entry point B

	do { // for loop body
		svPtr->LineNumber = 32; 

//--------------
//       Do
//--------------

		tpx4 = svPtr->tpx; 
		if ( (_i = setjmp(Efor4J)) == 0) goto Do_Block_Entry4; //else continue 
		else if (_i == 100) goto Do_Block_Bypass4; // IF_flg m1402
	} while (0); longjmp(for9J, _i); // FOR loop 1 close 

For9Exit: ; // exit for loop 

	goto Do_Block_Bypass4; // C3551 bypass indented group

//-------------------------------------
Do_Block_Entry4:; // Enter Do Block
//-------------------------------------

do { /* dotted indent entry */

//================================================================================= 
svPtr->LineNumber=33; //  . set c(i,i)=0,w(i,i)=q(i) 
//================================================================================= 

//--------------
//       Set
//--------------

	{	char tmp[STR_MAX];  // expand lhs array reference
		int i;
		strmove((UNS) tmp, (UNS) "c"); // array name
		i=strlen(tmp);
		tmp[i]=206; // coded open paren
		tmp[i+1]=0;
		if (sym_(SYMGET, (UNS) "i", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	strcat((char *) tmp,(char *) tmp0); // index
		i=strlen(tmp);
		tmp[i]=208; // coded comma or close paren
		tmp[i+1]=0;
		if (sym_(SYMGET, (UNS) "i", (UNS) tmp1, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
		strcat((char *) tmp,(char *) tmp1); // index
		i=strlen((const char *) tmp);
		tmp[i]=207; // coded comma or close paren
		tmp[i+1]=0;
	strmove((UNS) atmp, (UNS) tmp); // preserve expanded array reference
		}
	sym_(SYMSTORE, (UNS) atmp, (UNS) "0", svPtr); // Store result s270 
	{	char tmp[STR_MAX];  // expand lhs array reference
		int i;
		strmove((UNS) tmp, (UNS) "w"); // array name
		i=strlen(tmp);
		tmp[i]=206; // coded open paren
		tmp[i+1]=0;
		if (sym_(SYMGET, (UNS) "i", (UNS) tmp3, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	strcat((char *) tmp,(char *) tmp3); // index
		i=strlen(tmp);
		tmp[i]=208; // coded comma or close paren
		tmp[i+1]=0;
		if (sym_(SYMGET, (UNS) "i", (UNS) tmp4, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
		strcat((char *) tmp,(char *) tmp4); // index
		i=strlen((const char *) tmp);
		tmp[i]=207; // coded comma or close paren
		tmp[i+1]=0;
	strmove((UNS) atmp, (UNS) tmp); // preserve expanded array reference
		}
{ // local array setup
	int i;
	strmove((UNS) tmp7, (UNS) "q");
	i=strlen((const char *) tmp7);
	tmp7[i]=206;
	tmp7[i+1]=0;
	if (sym_(SYMGET, (UNS) "i", (UNS) tmp6, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	strcat((char *) tmp7,(char *) tmp6);
	i=strlen((const char *) tmp7);
	tmp7[i]=207;
	tmp7[i+1]=0;
	}
	if (sym_(SYMGET, (UNS) tmp7, (UNS) tmp8, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp7); // not found
	sym_(SYMSTORE, (UNS) atmp, (UNS) tmp8, svPtr); // Store result s270 

//================================================================================= 
svPtr->LineNumber=34; //  . for j=i+1:1:n do 
//================================================================================= 

//--------------
//       For
//--------------

	strcpy(for11_lim, "");
	if (sym_(SYMGET, (UNS) "i", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	add( (char *) tmp0, "1", (char *) tmp1 ); 
	strmove((UNS) for11_init, (UNS) tmp1); // init value m2534
	strmove( (UNS) for11_incr, (UNS) "1"); // inc/dec m2575
	if (sym_(SYMGET, (UNS) "n", (UNS) tmp2, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "n"); // not found
	strmove((UNS) for11_lim, (UNS) tmp2); // limit value

	if (strchr((char *) for11_incr, '.')) // inc/dec is float
		for11F = atof(for11_incr) < 0.0 ? 1 : 0; // incr or decr?
	else // inc/dec is integer
		for11F = atol(for11_incr) < 0 ? 1 : 0; // incr or decr?

	for ( sym_(SYMSTORE, (UNS) "j", (UNS) for11_init, svPtr); // init 2618

		for11F ? // loop limit test direction
			numcomp((UNS) sym_(11, (UNS) "j", 
				 _dummy, svPtr),
				(UNS) for11_lim) >= 0 // GE limit value?
			: // ternary operator
			numcomp((UNS) sym_(11, (UNS) "j", 
				_dummy,svPtr),
				(UNS) for11_lim) <= 0; // LE limit value

		add( sym_(11, (UNS) "j", _dummy, svPtr), // inc/dec loop var
			for11_incr, (char *) _dummy),
		sym_(SYMSTORE, (UNS) "j", (UNS) _dummy, svPtr) ) // store rslt

		if ((_i = setjmp(for11J)) == 0) goto For11; // else continue

	else if (_i == 100) goto For11Exit; // f273

	goto For11Exit; // bypass block 

For11: // for loop body entry point B

	do { // for loop body
		svPtr->LineNumber = 34; 

//--------------
//       Do
//--------------

		tpx5 = svPtr->tpx; 
		if ( (_i = setjmp(Efor5J)) == 0) goto Do_Block_Entry5; //else continue 
		else if (_i == 100) goto Do_Block_Bypass5; // IF_flg m1402
	} while (0); longjmp(for11J, _i); // FOR loop 1 close 

For11Exit: ; // exit for loop 

	goto Do_Block_Bypass5; // C3551 bypass indented group

//-------------------------------------
Do_Block_Entry5:; // Enter Do Block
//-------------------------------------

do { /* dotted indent entry */

//================================================================================= 
svPtr->LineNumber=35; //  .. set:j'>n w(i,j)=w(i,j-1)+p(j)+q(j) 
//================================================================================= 
	if (sym_(SYMGET, (UNS) "j", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
	if (sym_(SYMGET, (UNS) "n", (UNS) tmp1, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "n"); // not found
	if (numcomp((UNS) tmp0, (UNS) tmp1) <= 0) strmove((UNS) tmp2, (UNS) "1");
	else strmove((UNS) tmp2, (UNS) "0");
	if (atoi( CSTR tmp2)) { // m859 postconditional

//--------------
//       Set
//--------------

	{	char tmp[STR_MAX];  // expand lhs array reference
		int i;
		strmove((UNS) tmp, (UNS) "w"); // array name
		i=strlen(tmp);
		tmp[i]=206; // coded open paren
		tmp[i+1]=0;
		if (sym_(SYMGET, (UNS) "i", (UNS) tmp3, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	strcat((char *) tmp,(char *) tmp3); // index
		i=strlen(tmp);
		tmp[i]=208; // coded comma or close paren
		tmp[i+1]=0;
		if (sym_(SYMGET, (UNS) "j", (UNS) tmp4, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
		strcat((char *) tmp,(char *) tmp4); // index
		i=strlen((const char *) tmp);
		tmp[i]=207; // coded comma or close paren
		tmp[i+1]=0;
	strmove((UNS) atmp, (UNS) tmp); // preserve expanded array reference
		}
	if (sym_(SYMGET, (UNS) "j", (UNS) tmp7, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
	sub((char *) tmp7,(char *) "1",(char *) tmp8);
{ // local array setup
	int i;
	strmove((UNS) tmp9, (UNS) "w");
	i=strlen((const char *) tmp9);
	tmp9[i]=206;
	tmp9[i+1]=0;
	if (sym_(SYMGET, (UNS) "i", (UNS) tmp6, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	strcat((char *) tmp9,(char *) tmp6);
	i=strlen((const char *) tmp9);
	tmp9[i]=208;
	tmp9[i+1]=0;
	strcat((char *) tmp9,(char *) tmp8);
	i=strlen((const char *) tmp9);
	tmp9[i]=207;
	tmp9[i+1]=0;
	}
{ // local array setup
	int i;
	strmove((UNS) tmp12, (UNS) "p");
	i=strlen((const char *) tmp12);
	tmp12[i]=206;
	tmp12[i+1]=0;
	if (sym_(SYMGET, (UNS) "j", (UNS) tmp11, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
	strcat((char *) tmp12,(char *) tmp11);
	i=strlen((const char *) tmp12);
	tmp12[i]=207;
	tmp12[i+1]=0;
	}
	if (sym_(SYMGET, (UNS) tmp9, (UNS) tmp10, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp9); // not found
	if (sym_(SYMGET, (UNS) tmp12, (UNS) tmp13, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp12); // not found
	add((char *) tmp10, (char *) tmp13, (char *) tmp14); 
{ // local array setup
	int i;
	strmove((UNS) tmp16, (UNS) "q");
	i=strlen((const char *) tmp16);
	tmp16[i]=206;
	tmp16[i+1]=0;
	if (sym_(SYMGET, (UNS) "j", (UNS) tmp15, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
	strcat((char *) tmp16,(char *) tmp15);
	i=strlen((const char *) tmp16);
	tmp16[i]=207;
	tmp16[i+1]=0;
	}
	if (sym_(SYMGET, (UNS) tmp16, (UNS) tmp17, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp16); // not found
	add((char *) tmp14, (char *) tmp17, (char *) tmp18); 
	sym_(SYMSTORE, (UNS) atmp, (UNS) tmp18, svPtr); // Store result s270 
	} /* post conditional 2313*/
	} while(0); // dotted un-indent 1 
	longjmp(Efor5J,99); // return 

Do_Block_Bypass5: ; //B848 

	} while(0); // dotted un-indent 0 
	longjmp(Efor4J,99); // return 

Do_Block_Bypass4: ; //B848 


//================================================================================= 
svPtr->LineNumber=37; //  for j=1:1:n do 
//================================================================================= 

//--------------
//       For
//--------------

	strcpy(for13_lim, "");
	strmove((UNS) for13_init, (UNS) "1"); // init value m2534
	strmove( (UNS) for13_incr, (UNS) "1"); // inc/dec m2575
	if (sym_(SYMGET, (UNS) "n", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "n"); // not found
	strmove((UNS) for13_lim, (UNS) tmp0); // limit value

	if (strchr((char *) for13_incr, '.')) // inc/dec is float
		for13F = atof(for13_incr) < 0.0 ? 1 : 0; // incr or decr?
	else // inc/dec is integer
		for13F = atol(for13_incr) < 0 ? 1 : 0; // incr or decr?

	for ( sym_(SYMSTORE, (UNS) "j", (UNS) for13_init, svPtr); // init 2618

		for13F ? // loop limit test direction
			numcomp((UNS) sym_(11, (UNS) "j", 
				 _dummy, svPtr),
				(UNS) for13_lim) >= 0 // GE limit value?
			: // ternary operator
			numcomp((UNS) sym_(11, (UNS) "j", 
				_dummy,svPtr),
				(UNS) for13_lim) <= 0; // LE limit value

		add( sym_(11, (UNS) "j", _dummy, svPtr), // inc/dec loop var
			for13_incr, (char *) _dummy),
		sym_(SYMSTORE, (UNS) "j", (UNS) _dummy, svPtr) ) // store rslt

		if ((_i = setjmp(for13J)) == 0) goto For13; // else continue

	else if (_i == 100) goto For13Exit; // f273

	goto For13Exit; // bypass block 

For13: // for loop body entry point B

	do { // for loop body
		svPtr->LineNumber = 37; 

//--------------
//       Do
//--------------

		tpx6 = svPtr->tpx; 
		if ( (_i = setjmp(Efor6J)) == 0) goto Do_Block_Entry6; //else continue 
		else if (_i == 100) goto Do_Block_Bypass6; // IF_flg m1402
	} while (0); longjmp(for13J, _i); // FOR loop 1 close 

For13Exit: ; // exit for loop 

	goto Do_Block_Bypass6; // C3551 bypass indented group

//-------------------------------------
Do_Block_Entry6:; // Enter Do Block
//-------------------------------------

do { /* dotted indent entry */

//================================================================================= 
svPtr->LineNumber=38; //  . set c(j-1,j)=w(j-1,j),r(j-1,j)=j 
//================================================================================= 

//--------------
//       Set
//--------------

	if (sym_(SYMGET, (UNS) "j", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
	sub((char *) tmp0,(char *) "1",(char *) tmp1);
	{	char tmp[STR_MAX];  // expand lhs array reference
		int i;
		strmove((UNS) tmp, (UNS) "c"); // array name
		i=strlen(tmp);
		tmp[i]=206; // coded open paren
		tmp[i+1]=0;
	strcat((char *) tmp,(char *) tmp1); // index
		i=strlen(tmp);
		tmp[i]=208; // coded comma or close paren
		tmp[i+1]=0;
		if (sym_(SYMGET, (UNS) "j", (UNS) tmp2, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
		strcat((char *) tmp,(char *) tmp2); // index
		i=strlen((const char *) tmp);
		tmp[i]=207; // coded comma or close paren
		tmp[i+1]=0;
	strmove((UNS) atmp, (UNS) tmp); // preserve expanded array reference
		}
	if (sym_(SYMGET, (UNS) "j", (UNS) tmp4, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
	sub((char *) tmp4,(char *) "1",(char *) tmp5);
{ // local array setup
	int i;
	strmove((UNS) tmp7, (UNS) "w");
	i=strlen((const char *) tmp7);
	tmp7[i]=206;
	tmp7[i+1]=0;
	strcat((char *) tmp7,(char *) tmp5);
	i=strlen((const char *) tmp7);
	tmp7[i]=208;
	tmp7[i+1]=0;
	if (sym_(SYMGET, (UNS) "j", (UNS) tmp6, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
	strcat((char *) tmp7,(char *) tmp6);
	i=strlen((const char *) tmp7);
	tmp7[i]=207;
	tmp7[i+1]=0;
	}
	if (sym_(SYMGET, (UNS) tmp7, (UNS) tmp8, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp7); // not found
	sym_(SYMSTORE, (UNS) atmp, (UNS) tmp8, svPtr); // Store result s270 
	if (sym_(SYMGET, (UNS) "j", (UNS) tmp9, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
	sub((char *) tmp9,(char *) "1",(char *) tmp10);
	{	char tmp[STR_MAX];  // expand lhs array reference
		int i;
		strmove((UNS) tmp, (UNS) "r"); // array name
		i=strlen(tmp);
		tmp[i]=206; // coded open paren
		tmp[i+1]=0;
	strcat((char *) tmp,(char *) tmp10); // index
		i=strlen(tmp);
		tmp[i]=208; // coded comma or close paren
		tmp[i+1]=0;
		if (sym_(SYMGET, (UNS) "j", (UNS) tmp11, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
		strcat((char *) tmp,(char *) tmp11); // index
		i=strlen((const char *) tmp);
		tmp[i]=207; // coded comma or close paren
		tmp[i+1]=0;
	strmove((UNS) atmp, (UNS) tmp); // preserve expanded array reference
		}
	if (sym_(SYMGET, (UNS) "j", (UNS) tmp13, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
	sym_(SYMSTORE, (UNS) atmp, (UNS) tmp13, svPtr); // Store result s270 
	} while(0); // dotted un-indent 0 
	longjmp(Efor6J,99); // return 

Do_Block_Bypass6: ; //B848 


//================================================================================= 
svPtr->LineNumber=40; //  for d=2:1:n do 
//================================================================================= 

//--------------
//       For
//--------------

	strcpy(for15_lim, "");
	strmove((UNS) for15_init, (UNS) "2"); // init value m2534
	strmove( (UNS) for15_incr, (UNS) "1"); // inc/dec m2575
	if (sym_(SYMGET, (UNS) "n", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "n"); // not found
	strmove((UNS) for15_lim, (UNS) tmp0); // limit value

	if (strchr((char *) for15_incr, '.')) // inc/dec is float
		for15F = atof(for15_incr) < 0.0 ? 1 : 0; // incr or decr?
	else // inc/dec is integer
		for15F = atol(for15_incr) < 0 ? 1 : 0; // incr or decr?

	for ( sym_(SYMSTORE, (UNS) "d", (UNS) for15_init, svPtr); // init 2618

		for15F ? // loop limit test direction
			numcomp((UNS) sym_(11, (UNS) "d", 
				 _dummy, svPtr),
				(UNS) for15_lim) >= 0 // GE limit value?
			: // ternary operator
			numcomp((UNS) sym_(11, (UNS) "d", 
				_dummy,svPtr),
				(UNS) for15_lim) <= 0; // LE limit value

		add( sym_(11, (UNS) "d", _dummy, svPtr), // inc/dec loop var
			for15_incr, (char *) _dummy),
		sym_(SYMSTORE, (UNS) "d", (UNS) _dummy, svPtr) ) // store rslt

		if ((_i = setjmp(for15J)) == 0) goto For15; // else continue

	else if (_i == 100) goto For15Exit; // f273

	goto For15Exit; // bypass block 

For15: // for loop body entry point B

	do { // for loop body
		svPtr->LineNumber = 40; 

//--------------
//       Do
//--------------

		tpx7 = svPtr->tpx; 
		if ( (_i = setjmp(Efor7J)) == 0) goto Do_Block_Entry7; //else continue 
		else if (_i == 100) goto Do_Block_Bypass7; // IF_flg m1402
	} while (0); longjmp(for15J, _i); // FOR loop 1 close 

For15Exit: ; // exit for loop 

	goto Do_Block_Bypass7; // C3551 bypass indented group

//-------------------------------------
Do_Block_Entry7:; // Enter Do Block
//-------------------------------------

do { /* dotted indent entry */

//================================================================================= 
svPtr->LineNumber=41; //  . for j=d:1:n do 
//================================================================================= 

//--------------
//       For
//--------------

	strcpy(for17_lim, "");
	if (sym_(SYMGET, (UNS) "d", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "d"); // not found
	strmove((UNS) for17_init, (UNS) tmp0); // init value m2534
	strmove( (UNS) for17_incr, (UNS) "1"); // inc/dec m2575
	if (sym_(SYMGET, (UNS) "n", (UNS) tmp1, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "n"); // not found
	strmove((UNS) for17_lim, (UNS) tmp1); // limit value

	if (strchr((char *) for17_incr, '.')) // inc/dec is float
		for17F = atof(for17_incr) < 0.0 ? 1 : 0; // incr or decr?
	else // inc/dec is integer
		for17F = atol(for17_incr) < 0 ? 1 : 0; // incr or decr?

	for ( sym_(SYMSTORE, (UNS) "j", (UNS) for17_init, svPtr); // init 2618

		for17F ? // loop limit test direction
			numcomp((UNS) sym_(11, (UNS) "j", 
				 _dummy, svPtr),
				(UNS) for17_lim) >= 0 // GE limit value?
			: // ternary operator
			numcomp((UNS) sym_(11, (UNS) "j", 
				_dummy,svPtr),
				(UNS) for17_lim) <= 0; // LE limit value

		add( sym_(11, (UNS) "j", _dummy, svPtr), // inc/dec loop var
			for17_incr, (char *) _dummy),
		sym_(SYMSTORE, (UNS) "j", (UNS) _dummy, svPtr) ) // store rslt

		if ((_i = setjmp(for17J)) == 0) goto For17; // else continue

	else if (_i == 100) goto For17Exit; // f273

	goto For17Exit; // bypass block 

For17: // for loop body entry point B

	do { // for loop body
		svPtr->LineNumber = 41; 

//--------------
//       Do
//--------------

		tpx8 = svPtr->tpx; 
		if ( (_i = setjmp(Efor8J)) == 0) goto Do_Block_Entry8; //else continue 
		else if (_i == 100) goto Do_Block_Bypass8; // IF_flg m1402
	} while (0); longjmp(for17J, _i); // FOR loop 1 close 

For17Exit: ; // exit for loop 

	goto Do_Block_Bypass8; // C3551 bypass indented group

//-------------------------------------
Do_Block_Entry8:; // Enter Do Block
//-------------------------------------

do { /* dotted indent entry */

//================================================================================= 
svPtr->LineNumber=42; //  .. set i=j-d,y=r(i,j-1),x=c(i,y-1)+c(y,j) 
//================================================================================= 

//--------------
//       Set
//--------------

	if (sym_(SYMGET, (UNS) "j", (UNS) tmp1, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
	if (sym_(SYMGET, (UNS) "d", (UNS) tmp2, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "d"); // not found
	sub((char *) tmp1,(char *) tmp2,(char *) tmp3);
	sym_(SYMSTORE, (UNS) "i", (UNS) tmp3, svPtr); // Store result s274 
	if (sym_(SYMGET, (UNS) "j", (UNS) tmp6, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
	sub((char *) tmp6,(char *) "1",(char *) tmp7);
{ // local array setup
	int i;
	strmove((UNS) tmp8, (UNS) "r");
	i=strlen((const char *) tmp8);
	tmp8[i]=206;
	tmp8[i+1]=0;
	if (sym_(SYMGET, (UNS) "i", (UNS) tmp5, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	strcat((char *) tmp8,(char *) tmp5);
	i=strlen((const char *) tmp8);
	tmp8[i]=208;
	tmp8[i+1]=0;
	strcat((char *) tmp8,(char *) tmp7);
	i=strlen((const char *) tmp8);
	tmp8[i]=207;
	tmp8[i+1]=0;
	}
	if (sym_(SYMGET, (UNS) tmp8, (UNS) tmp9, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp8); // not found
	sym_(SYMSTORE, (UNS) "y", (UNS) tmp9, svPtr); // Store result s274 
	if (sym_(SYMGET, (UNS) "y", (UNS) tmp12, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "y"); // not found
	sub((char *) tmp12,(char *) "1",(char *) tmp13);
{ // local array setup
	int i;
	strmove((UNS) tmp14, (UNS) "c");
	i=strlen((const char *) tmp14);
	tmp14[i]=206;
	tmp14[i+1]=0;
	if (sym_(SYMGET, (UNS) "i", (UNS) tmp11, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	strcat((char *) tmp14,(char *) tmp11);
	i=strlen((const char *) tmp14);
	tmp14[i]=208;
	tmp14[i+1]=0;
	strcat((char *) tmp14,(char *) tmp13);
	i=strlen((const char *) tmp14);
	tmp14[i]=207;
	tmp14[i+1]=0;
	}
{ // local array setup
	int i;
	strmove((UNS) tmp18, (UNS) "c");
	i=strlen((const char *) tmp18);
	tmp18[i]=206;
	tmp18[i+1]=0;
	if (sym_(SYMGET, (UNS) "y", (UNS) tmp16, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "y"); // not found
	strcat((char *) tmp18,(char *) tmp16);
	i=strlen((const char *) tmp18);
	tmp18[i]=208;
	tmp18[i+1]=0;
	if (sym_(SYMGET, (UNS) "j", (UNS) tmp17, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
	strcat((char *) tmp18,(char *) tmp17);
	i=strlen((const char *) tmp18);
	tmp18[i]=207;
	tmp18[i+1]=0;
	}
	if (sym_(SYMGET, (UNS) tmp14, (UNS) tmp15, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp14); // not found
	if (sym_(SYMGET, (UNS) tmp18, (UNS) tmp19, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp18); // not found
	add((char *) tmp15, (char *) tmp19, (char *) tmp20); 
	sym_(SYMSTORE, (UNS) "x", (UNS) tmp20, svPtr); // Store result s274 

//================================================================================= 
svPtr->LineNumber=43; //  .. do xx 
//================================================================================= 

//--------------
//       Do
//--------------

	_ArgCount=0;  //section D1000 
	svPtr->Rargsx=0;
	{
	 _ArgCount=0;
	 _doStx++;
	 if (_doStx > 127 ) ErrorMessage("Too many function calls",svPtr->LineNumber);
	 sym_(99, (unsigned char *) "", (unsigned char *) "", svPtr); 
	 if (setjmp(_doStack[_doStx])==0) goto xx;  /* Jump to function */
	 _doStx--; 
	 strmove((unsigned char *) tmp0,(unsigned char *) _ReturnVal); // Copy result
	} 
 
//================================================================================= 
svPtr->LineNumber=44; //  .. set c(i,j)=w(i,j)+x,r(i,j)=y 
//================================================================================= 

//--------------
//       Set
//--------------

	{	char tmp[STR_MAX];  // expand lhs array reference
		int i;
		strmove((UNS) tmp, (UNS) "c"); // array name
		i=strlen(tmp);
		tmp[i]=206; // coded open paren
		tmp[i+1]=0;
		if (sym_(SYMGET, (UNS) "i", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	strcat((char *) tmp,(char *) tmp0); // index
		i=strlen(tmp);
		tmp[i]=208; // coded comma or close paren
		tmp[i+1]=0;
		if (sym_(SYMGET, (UNS) "j", (UNS) tmp1, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
		strcat((char *) tmp,(char *) tmp1); // index
		i=strlen((const char *) tmp);
		tmp[i]=207; // coded comma or close paren
		tmp[i+1]=0;
	strmove((UNS) atmp, (UNS) tmp); // preserve expanded array reference
		}
{ // local array setup
	int i;
	strmove((UNS) tmp5, (UNS) "w");
	i=strlen((const char *) tmp5);
	tmp5[i]=206;
	tmp5[i+1]=0;
	if (sym_(SYMGET, (UNS) "i", (UNS) tmp3, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	strcat((char *) tmp5,(char *) tmp3);
	i=strlen((const char *) tmp5);
	tmp5[i]=208;
	tmp5[i+1]=0;
	if (sym_(SYMGET, (UNS) "j", (UNS) tmp4, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
	strcat((char *) tmp5,(char *) tmp4);
	i=strlen((const char *) tmp5);
	tmp5[i]=207;
	tmp5[i+1]=0;
	}
	if (sym_(SYMGET, (UNS) tmp5, (UNS) tmp6, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp5); // not found
	if (sym_(SYMGET, (UNS) "x", (UNS) tmp7, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "x"); // not found
	add((char *) tmp6, (char *) tmp7, (char *) tmp8); 
	sym_(SYMSTORE, (UNS) atmp, (UNS) tmp8, svPtr); // Store result s270 
	{	char tmp[STR_MAX];  // expand lhs array reference
		int i;
		strmove((UNS) tmp, (UNS) "r"); // array name
		i=strlen(tmp);
		tmp[i]=206; // coded open paren
		tmp[i+1]=0;
		if (sym_(SYMGET, (UNS) "i", (UNS) tmp9, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	strcat((char *) tmp,(char *) tmp9); // index
		i=strlen(tmp);
		tmp[i]=208; // coded comma or close paren
		tmp[i+1]=0;
		if (sym_(SYMGET, (UNS) "j", (UNS) tmp10, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
		strcat((char *) tmp,(char *) tmp10); // index
		i=strlen((const char *) tmp);
		tmp[i]=207; // coded comma or close paren
		tmp[i+1]=0;
	strmove((UNS) atmp, (UNS) tmp); // preserve expanded array reference
		}
	if (sym_(SYMGET, (UNS) "y", (UNS) tmp12, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "y"); // not found
	sym_(SYMSTORE, (UNS) atmp, (UNS) tmp12, svPtr); // Store result s270 
	} while(0); // dotted un-indent 1 
	longjmp(Efor8J,99); // return 

Do_Block_Bypass8: ; //B848 

	} while(0); // dotted un-indent 0 
	longjmp(Efor7J,99); // return 

Do_Block_Bypass7: ; //B848 


//================================================================================= 
svPtr->LineNumber=46; //  write !,"matrix",! 
//================================================================================= 

//--------------
//       Write
//--------------

	if (svPtr->out_file[svPtr->io]==NULL) 
		ErrorMessage("Write to input file", svPtr->LineNumber); // m1944 
	fprintf(svPtr->out_file[svPtr->io], "\n"); 
	svPtr->hor[svPtr->io]=0; svPtr->ver[svPtr->io]++; 
	svPtr->hor[svPtr->io] += fprintf(svPtr->out_file[svPtr->io], "%s", 
		"matrix");
	fprintf(svPtr->out_file[svPtr->io], "\n"); 
	svPtr->hor[svPtr->io]=0; svPtr->ver[svPtr->io]++; 

//================================================================================= 
svPtr->LineNumber=47; //  for m=0:1:n-1 do 
//================================================================================= 

//--------------
//       For
//--------------

	strcpy(for19_lim, "");
	strmove((UNS) for19_init, (UNS) "0"); // init value m2534
	strmove( (UNS) for19_incr, (UNS) "1"); // inc/dec m2575
	if (sym_(SYMGET, (UNS) "n", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "n"); // not found
	sub((char *) tmp0,(char *) "1",(char *) tmp1);
	strmove((UNS) for19_lim, (UNS) tmp1); // limit value

	if (strchr((char *) for19_incr, '.')) // inc/dec is float
		for19F = atof(for19_incr) < 0.0 ? 1 : 0; // incr or decr?
	else // inc/dec is integer
		for19F = atol(for19_incr) < 0 ? 1 : 0; // incr or decr?

	for ( sym_(SYMSTORE, (UNS) "m", (UNS) for19_init, svPtr); // init 2618

		for19F ? // loop limit test direction
			numcomp((UNS) sym_(11, (UNS) "m", 
				 _dummy, svPtr),
				(UNS) for19_lim) >= 0 // GE limit value?
			: // ternary operator
			numcomp((UNS) sym_(11, (UNS) "m", 
				_dummy,svPtr),
				(UNS) for19_lim) <= 0; // LE limit value

		add( sym_(11, (UNS) "m", _dummy, svPtr), // inc/dec loop var
			for19_incr, (char *) _dummy),
		sym_(SYMSTORE, (UNS) "m", (UNS) _dummy, svPtr) ) // store rslt

		if ((_i = setjmp(for19J)) == 0) goto For19; // else continue

	else if (_i == 100) goto For19Exit; // f273

	goto For19Exit; // bypass block 

For19: // for loop body entry point B

	do { // for loop body
		svPtr->LineNumber = 47; 

//--------------
//       Do
//--------------

		tpx9 = svPtr->tpx; 
		if ( (_i = setjmp(Efor9J)) == 0) goto Do_Block_Entry9; //else continue 
		else if (_i == 100) goto Do_Block_Bypass9; // IF_flg m1402
	} while (0); longjmp(for19J, _i); // FOR loop 1 close 

For19Exit: ; // exit for loop 

	goto Do_Block_Bypass9; // C3551 bypass indented group

//-------------------------------------
Do_Block_Entry9:; // Enter Do Block
//-------------------------------------

do { /* dotted indent entry */

//================================================================================= 
svPtr->LineNumber=48; //  . write ! 
//================================================================================= 

//--------------
//       Write
//--------------

	if (svPtr->out_file[svPtr->io]==NULL) 
		ErrorMessage("Write to input file", svPtr->LineNumber); // m1944 
	fprintf(svPtr->out_file[svPtr->io], "\n"); 
	svPtr->hor[svPtr->io]=0; svPtr->ver[svPtr->io]++; 

//================================================================================= 
svPtr->LineNumber=49; //  . for l=1:1:n do 
//================================================================================= 

//--------------
//       For
//--------------

	strcpy(for21_lim, "");
	strmove((UNS) for21_init, (UNS) "1"); // init value m2534
	strmove( (UNS) for21_incr, (UNS) "1"); // inc/dec m2575
	if (sym_(SYMGET, (UNS) "n", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "n"); // not found
	strmove((UNS) for21_lim, (UNS) tmp0); // limit value

	if (strchr((char *) for21_incr, '.')) // inc/dec is float
		for21F = atof(for21_incr) < 0.0 ? 1 : 0; // incr or decr?
	else // inc/dec is integer
		for21F = atol(for21_incr) < 0 ? 1 : 0; // incr or decr?

	for ( sym_(SYMSTORE, (UNS) "l", (UNS) for21_init, svPtr); // init 2618

		for21F ? // loop limit test direction
			numcomp((UNS) sym_(11, (UNS) "l", 
				 _dummy, svPtr),
				(UNS) for21_lim) >= 0 // GE limit value?
			: // ternary operator
			numcomp((UNS) sym_(11, (UNS) "l", 
				_dummy,svPtr),
				(UNS) for21_lim) <= 0; // LE limit value

		add( sym_(11, (UNS) "l", _dummy, svPtr), // inc/dec loop var
			for21_incr, (char *) _dummy),
		sym_(SYMSTORE, (UNS) "l", (UNS) _dummy, svPtr) ) // store rslt

		if ((_i = setjmp(for21J)) == 0) goto For21; // else continue

	else if (_i == 100) goto For21Exit; // f273

	goto For21Exit; // bypass block 

For21: // for loop body entry point B

	do { // for loop body
		svPtr->LineNumber = 49; 

//--------------
//       Do
//--------------

		tpx10 = svPtr->tpx; 
		if ( (_i = setjmp(Efor10J)) == 0) goto Do_Block_Entry10; //else continue 
		else if (_i == 100) goto Do_Block_Bypass10; // IF_flg m1402
	} while (0); longjmp(for21J, _i); // FOR loop 1 close 

For21Exit: ; // exit for loop 

	goto Do_Block_Bypass10; // C3551 bypass indented group

//-------------------------------------
Do_Block_Entry10:; // Enter Do Block
//-------------------------------------

do { /* dotted indent entry */

//================================================================================= 
svPtr->LineNumber=50; //  .. write r(m,l)," " 
//================================================================================= 

//--------------
//       Write
//--------------

	if (svPtr->out_file[svPtr->io]==NULL) 
		ErrorMessage("Write to input file", svPtr->LineNumber); // m1944 
{ // local array setup
	int i;
	strmove((UNS) tmp2, (UNS) "r");
	i=strlen((const char *) tmp2);
	tmp2[i]=206;
	tmp2[i+1]=0;
	if (sym_(SYMGET, (UNS) "m", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "m"); // not found
	strcat((char *) tmp2,(char *) tmp0);
	i=strlen((const char *) tmp2);
	tmp2[i]=208;
	tmp2[i+1]=0;
	if (sym_(SYMGET, (UNS) "l", (UNS) tmp1, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "l"); // not found
	strcat((char *) tmp2,(char *) tmp1);
	i=strlen((const char *) tmp2);
	tmp2[i]=207;
	tmp2[i+1]=0;
	}
	if (sym_(SYMGET, (UNS) tmp2, (UNS) tmp3, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp2); // not found
	svPtr->hor[svPtr->io] += fprintf(svPtr->out_file[svPtr->io], "%s", 
		tmp3);
	svPtr->hor[svPtr->io] += fprintf(svPtr->out_file[svPtr->io], "%s", 
		" ");
	} while(0); // dotted un-indent 1 
	longjmp(Efor10J,99); // return 

Do_Block_Bypass10: ; //B848 

	} while(0); // dotted un-indent 0 
	longjmp(Efor9J,99); // return 

Do_Block_Bypass9: ; //B848 


//================================================================================= 
svPtr->LineNumber=52; //  write !! 
//================================================================================= 

//--------------
//       Write
//--------------

	if (svPtr->out_file[svPtr->io]==NULL) 
		ErrorMessage("Write to input file", svPtr->LineNumber); // m1944 
	fprintf(svPtr->out_file[svPtr->io], "\n"); 
	svPtr->hor[svPtr->io]=0; svPtr->ver[svPtr->io]++; 
	fprintf(svPtr->out_file[svPtr->io], "\n"); 
	svPtr->hor[svPtr->io]=0; svPtr->ver[svPtr->io]++; 

//================================================================================= 
svPtr->LineNumber=53; //  set s=1 
//================================================================================= 

//--------------
//       Set
//--------------

	sym_(SYMSTORE, (UNS) "s", (UNS) "1", svPtr); // Store result s274 

//================================================================================= 
svPtr->LineNumber=54; //  set s(s)=0_","_n 
//================================================================================= 

//--------------
//       Set
//--------------

	{	char tmp[STR_MAX];  // expand lhs array reference
		int i;
		strmove((UNS) tmp, (UNS) "s"); // array name
		i=strlen(tmp);
		tmp[i]=206; // coded open paren
		tmp[i+1]=0;
		if (sym_(SYMGET, (UNS) "s", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "s"); // not found
	strcat((char *) tmp,(char *) tmp0); // index
		i=strlen(tmp);
		tmp[i]=207; // coded comma or close paren
		tmp[i+1]=0;
	strmove((UNS) atmp, (UNS) tmp); // preserve expanded array reference
		}
	if (strlen((const char *) "0") +
	strlen((const char *) ",") + 1 
	> STR_MAX)
	ErrorMessage("String too long", svPtr->LineNumber);
	strmove( (UNS) tmp2, (UNS) "0");
	strcat( (char *) tmp2, (char *) ",");
	if (sym_(SYMGET, (UNS) "n", (UNS) tmp3, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "n"); // not found
	if (strlen((const char *) tmp2) +
	strlen((const char *) tmp3) + 1 
	> STR_MAX)
	ErrorMessage("String too long", svPtr->LineNumber);
	strmove( (UNS) tmp4, (UNS) tmp2);
	strcat( (char *) tmp4, (char *) tmp3);
	sym_(SYMSTORE, (UNS) atmp, (UNS) tmp4, svPtr); // Store result s270 

//================================================================================= 
svPtr->LineNumber=55; //  set c=1 
//================================================================================= 

//--------------
//       Set
//--------------

	sym_(SYMSTORE, (UNS) "c", (UNS) "1", svPtr); // Store result s274 

//================================================================================= 
svPtr->LineNumber=56; //  set nx=2 
//================================================================================= 

//--------------
//       Set
//--------------

	sym_(SYMSTORE, (UNS) "nx", (UNS) "2", svPtr); // Store result s274 

//================================================================================= 
svPtr->LineNumber=57; //  set a(1)="b(0" 
//================================================================================= 

//--------------
//       Set
//--------------

	{	char tmp[STR_MAX];  // expand lhs array reference
		int i;
		strmove((UNS) tmp, (UNS) "a"); // array name
		i=strlen(tmp);
		tmp[i]=206; // coded open paren
		tmp[i+1]=0;
	strcat((char *) tmp,(char *) "1"); // index
		i=strlen(tmp);
		tmp[i]=207; // coded comma or close paren
		tmp[i+1]=0;
	strmove((UNS) atmp, (UNS) tmp); // preserve expanded array reference
		}
	sym_(SYMSTORE, (UNS) atmp, (UNS) "b(0", svPtr); // Store result s270 

//================================================================================= 
svPtr->LineNumber=58; //  write 1 
//================================================================================= 

//--------------
//       Write
//--------------

	if (svPtr->out_file[svPtr->io]==NULL) 
		ErrorMessage("Write to input file", svPtr->LineNumber); // m1944 
	svPtr->hor[svPtr->io] += fprintf(svPtr->out_file[svPtr->io], "%s", 
		"1");

//================================================================================= 
svPtr->LineNumber=60; // y if $p(s(c),",",1)-$p(s(c),",",2)=0 set c=c+1 goto:c<nx y goto z 
//================================================================================= 

y: 

//--------------
//       If
//--------------

{ // local array setup
	int i;
	strmove((UNS) tmp1, (UNS) "s");
	i=strlen((const char *) tmp1);
	tmp1[i]=206;
	tmp1[i+1]=0;
	if (sym_(SYMGET, (UNS) "c", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "c"); // not found
	strcat((char *) tmp1,(char *) tmp0);
	i=strlen((const char *) tmp1);
	tmp1[i]=207;
	tmp1[i+1]=0;
	}
	if (sym_(SYMGET, (UNS) tmp1, (UNS) tmp2, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp1); // not found
	_piece((UNS) tmp3, 
		(UNS) tmp2,(UNS) ",",(UNS) "1", (UNS) "-1", 
		0, (UNS) "", svPtr); // p1136
{ // local array setup
	int i;
	strmove((UNS) tmp5, (UNS) "s");
	i=strlen((const char *) tmp5);
	tmp5[i]=206;
	tmp5[i+1]=0;
	if (sym_(SYMGET, (UNS) "c", (UNS) tmp4, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "c"); // not found
	strcat((char *) tmp5,(char *) tmp4);
	i=strlen((const char *) tmp5);
	tmp5[i]=207;
	tmp5[i+1]=0;
	}
	if (sym_(SYMGET, (UNS) tmp5, (UNS) tmp6, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp5); // not found
	_piece((UNS) tmp7, 
		(UNS) tmp6,(UNS) ",",(UNS) "2", (UNS) "-1", 
		0, (UNS) "", svPtr); // p1136
	sub((char *) tmp3,(char *) tmp7,(char *) tmp8);
	if (strcmp((const char *) tmp8,(const char *) "0")==0) 
	strmove( (UNS) tmp9, (UNS) "1");
	else strmove( (UNS) tmp9, (UNS) "0");
	svPtr->tpx = 0; //Default $Test indicator
	if (numcomp2((UNS) tmp9 )) { // Test if true 
	svPtr->tpx = 1; // $test becomes true

//--------------
//       Set
//--------------

	if (sym_(SYMGET, (UNS) "c", (UNS) tmp11, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "c"); // not found
	add( (char *) tmp11, "1", (char *) tmp12 ); 
	sym_(SYMSTORE, (UNS) "c", (UNS) tmp12, svPtr); // Store result s274 
	if (sym_(SYMGET, (UNS) "c", (UNS) tmp13, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "c"); // not found
	if (sym_(SYMGET, (UNS) "nx", (UNS) tmp14, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "nx"); // not found
	if (numcomp((UNS) tmp13, (UNS) tmp14) < 0) strmove((UNS) tmp15, (UNS) "1");
	else strmove((UNS) tmp15, (UNS) "0");
	if (atoi( CSTR tmp15)) { // m859 postconditional

//--------------
//       Goto
//--------------

	goto y;
	} /* post conditional 3431*/

//--------------
//       Goto
//--------------

	goto z;
	} 

//================================================================================= 
svPtr->LineNumber=62; //  write 2," ",a(c)," " 
//================================================================================= 

//--------------
//       Write
//--------------

	if (svPtr->out_file[svPtr->io]==NULL) 
		ErrorMessage("Write to input file", svPtr->LineNumber); // m1944 
	svPtr->hor[svPtr->io] += fprintf(svPtr->out_file[svPtr->io], "%s", 
		"2");
	svPtr->hor[svPtr->io] += fprintf(svPtr->out_file[svPtr->io], "%s", 
		" ");
{ // local array setup
	int i;
	strmove((UNS) tmp1, (UNS) "a");
	i=strlen((const char *) tmp1);
	tmp1[i]=206;
	tmp1[i+1]=0;
	if (sym_(SYMGET, (UNS) "c", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "c"); // not found
	strcat((char *) tmp1,(char *) tmp0);
	i=strlen((const char *) tmp1);
	tmp1[i]=207;
	tmp1[i+1]=0;
	}
	if (sym_(SYMGET, (UNS) tmp1, (UNS) tmp2, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp1); // not found
	svPtr->hor[svPtr->io] += fprintf(svPtr->out_file[svPtr->io], "%s", 
		tmp2);
	svPtr->hor[svPtr->io] += fprintf(svPtr->out_file[svPtr->io], "%s", 
		" ");

//================================================================================= 
svPtr->LineNumber=63; //  set s(nx)=$p(s(c),",",1)_","_(r(@s(c))-1) 
//================================================================================= 

//--------------
//       Set
//--------------

	_jj = Interpret( (CCHR) 
		"s s(nx)=$p(s(c),\",\",1)_\",\"_(r(@s(c))-1)", svPtr); 
	svPtr->ERROR = _jj; 
	if (!svPtr->NOERR && _jj < 0) 
		ErrorMessage("Indirection error", svPtr->LineNumber); 

//================================================================================= 
svPtr->LineNumber=64; //  set a(nx)=a(c)_",1" 
//================================================================================= 

//--------------
//       Set
//--------------

	{	char tmp[STR_MAX];  // expand lhs array reference
		int i;
		strmove((UNS) tmp, (UNS) "a"); // array name
		i=strlen(tmp);
		tmp[i]=206; // coded open paren
		tmp[i+1]=0;
		if (sym_(SYMGET, (UNS) "nx", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "nx"); // not found
	strcat((char *) tmp,(char *) tmp0); // index
		i=strlen(tmp);
		tmp[i]=207; // coded comma or close paren
		tmp[i+1]=0;
	strmove((UNS) atmp, (UNS) tmp); // preserve expanded array reference
		}
{ // local array setup
	int i;
	strmove((UNS) tmp3, (UNS) "a");
	i=strlen((const char *) tmp3);
	tmp3[i]=206;
	tmp3[i+1]=0;
	if (sym_(SYMGET, (UNS) "c", (UNS) tmp2, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "c"); // not found
	strcat((char *) tmp3,(char *) tmp2);
	i=strlen((const char *) tmp3);
	tmp3[i]=207;
	tmp3[i+1]=0;
	}
	if (sym_(SYMGET, (UNS) tmp3, (UNS) tmp4, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp3); // not found
	if (strlen((const char *) tmp4) +
	strlen((const char *) ",1") + 1 
	> STR_MAX)
	ErrorMessage("String too long", svPtr->LineNumber);
	strmove( (UNS) tmp5, (UNS) tmp4);
	strcat( (char *) tmp5, (char *) ",1");
	sym_(SYMSTORE, (UNS) atmp, (UNS) tmp5, svPtr); // Store result s270 

//================================================================================= 
svPtr->LineNumber=65; //  write 3 
//================================================================================= 

//--------------
//       Write
//--------------

	if (svPtr->out_file[svPtr->io]==NULL) 
		ErrorMessage("Write to input file", svPtr->LineNumber); // m1944 
	svPtr->hor[svPtr->io] += fprintf(svPtr->out_file[svPtr->io], "%s", 
		"3");

//================================================================================= 
svPtr->LineNumber=66; //  set nx=nx+1 
//================================================================================= 

//--------------
//       Set
//--------------

	if (sym_(SYMGET, (UNS) "nx", (UNS) tmp1, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "nx"); // not found
	add( (char *) tmp1, "1", (char *) tmp2 ); 
	sym_(SYMSTORE, (UNS) "nx", (UNS) tmp2, svPtr); // Store result s274 

//================================================================================= 
svPtr->LineNumber=67; //  set s(nx)=r(@s(c))_","_$p(s(c),",",2) 
//================================================================================= 

//--------------
//       Set
//--------------

	_jj = Interpret( (CCHR) 
		"s s(nx)=r(@s(c))_\",\"_$p(s(c),\",\",2)", svPtr); 
	svPtr->ERROR = _jj; 
	if (!svPtr->NOERR && _jj < 0) 
		ErrorMessage("Indirection error", svPtr->LineNumber); 

//================================================================================= 
svPtr->LineNumber=68; //  set a(nx)=a(c)_",2" 
//================================================================================= 

//--------------
//       Set
//--------------

	{	char tmp[STR_MAX];  // expand lhs array reference
		int i;
		strmove((UNS) tmp, (UNS) "a"); // array name
		i=strlen(tmp);
		tmp[i]=206; // coded open paren
		tmp[i+1]=0;
		if (sym_(SYMGET, (UNS) "nx", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "nx"); // not found
	strcat((char *) tmp,(char *) tmp0); // index
		i=strlen(tmp);
		tmp[i]=207; // coded comma or close paren
		tmp[i+1]=0;
	strmove((UNS) atmp, (UNS) tmp); // preserve expanded array reference
		}
{ // local array setup
	int i;
	strmove((UNS) tmp3, (UNS) "a");
	i=strlen((const char *) tmp3);
	tmp3[i]=206;
	tmp3[i+1]=0;
	if (sym_(SYMGET, (UNS) "c", (UNS) tmp2, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "c"); // not found
	strcat((char *) tmp3,(char *) tmp2);
	i=strlen((const char *) tmp3);
	tmp3[i]=207;
	tmp3[i+1]=0;
	}
	if (sym_(SYMGET, (UNS) tmp3, (UNS) tmp4, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp3); // not found
	if (strlen((const char *) tmp4) +
	strlen((const char *) ",2") + 1 
	> STR_MAX)
	ErrorMessage("String too long", svPtr->LineNumber);
	strmove( (UNS) tmp5, (UNS) tmp4);
	strcat( (char *) tmp5, (char *) ",2");
	sym_(SYMSTORE, (UNS) atmp, (UNS) tmp5, svPtr); // Store result s270 

//================================================================================= 
svPtr->LineNumber=69; //  set nx=nx+1 
//================================================================================= 

//--------------
//       Set
//--------------

	if (sym_(SYMGET, (UNS) "nx", (UNS) tmp1, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "nx"); // not found
	add( (char *) tmp1, "1", (char *) tmp2 ); 
	sym_(SYMSTORE, (UNS) "nx", (UNS) tmp2, svPtr); // Store result s274 

//================================================================================= 
svPtr->LineNumber=70; //  write 4 
//================================================================================= 

//--------------
//       Write
//--------------

	if (svPtr->out_file[svPtr->io]==NULL) 
		ErrorMessage("Write to input file", svPtr->LineNumber); // m1944 
	svPtr->hor[svPtr->io] += fprintf(svPtr->out_file[svPtr->io], "%s", 
		"4");

//================================================================================= 
svPtr->LineNumber=71; //  set c=c+1 
//================================================================================= 

//--------------
//       Set
//--------------

	if (sym_(SYMGET, (UNS) "c", (UNS) tmp1, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "c"); // not found
	add( (char *) tmp1, "1", (char *) tmp2 ); 
	sym_(SYMSTORE, (UNS) "c", (UNS) tmp2, svPtr); // Store result s274 

//================================================================================= 
svPtr->LineNumber=72; //  goto y 
//================================================================================= 

//--------------
//       Goto
//--------------

	goto y;

//================================================================================= 
svPtr->LineNumber=74; // z for i=1:1:c-1 set a(i)=a(i)_")" 
//================================================================================= 

z: 

//--------------
//       For
//--------------

	strcpy(for23_lim, "");
	strmove((UNS) for23_init, (UNS) "1"); // init value m2534
	strmove( (UNS) for23_incr, (UNS) "1"); // inc/dec m2575
	if (sym_(SYMGET, (UNS) "c", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "c"); // not found
	sub((char *) tmp0,(char *) "1",(char *) tmp1);
	strmove((UNS) for23_lim, (UNS) tmp1); // limit value

	if (strchr((char *) for23_incr, '.')) // inc/dec is float
		for23F = atof(for23_incr) < 0.0 ? 1 : 0; // incr or decr?
	else // inc/dec is integer
		for23F = atol(for23_incr) < 0 ? 1 : 0; // incr or decr?

	for ( sym_(SYMSTORE, (UNS) "i", (UNS) for23_init, svPtr); // init 2618

		for23F ? // loop limit test direction
			numcomp((UNS) sym_(11, (UNS) "i", 
				 _dummy, svPtr),
				(UNS) for23_lim) >= 0 // GE limit value?
			: // ternary operator
			numcomp((UNS) sym_(11, (UNS) "i", 
				_dummy,svPtr),
				(UNS) for23_lim) <= 0; // LE limit value

		add( sym_(11, (UNS) "i", _dummy, svPtr), // inc/dec loop var
			for23_incr, (char *) _dummy),
		sym_(SYMSTORE, (UNS) "i", (UNS) _dummy, svPtr) ) // store rslt

		if ((_i = setjmp(for23J)) == 0) goto For23; // else continue

	else if (_i == 100) goto For23Exit; // f273

	goto For23Exit; // bypass block 

For23: // for loop body entry point B

	do { // for loop body
		svPtr->LineNumber = 74; 

//--------------
//       Set
//--------------

	{	char tmp[STR_MAX];  // expand lhs array reference
		int i;
		strmove((UNS) tmp, (UNS) "a"); // array name
		i=strlen(tmp);
		tmp[i]=206; // coded open paren
		tmp[i+1]=0;
		if (sym_(SYMGET, (UNS) "i", (UNS) tmp2, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	strcat((char *) tmp,(char *) tmp2); // index
		i=strlen(tmp);
		tmp[i]=207; // coded comma or close paren
		tmp[i+1]=0;
	strmove((UNS) atmp, (UNS) tmp); // preserve expanded array reference
		}
{ // local array setup
	int i;
	strmove((UNS) tmp5, (UNS) "a");
	i=strlen((const char *) tmp5);
	tmp5[i]=206;
	tmp5[i+1]=0;
	if (sym_(SYMGET, (UNS) "i", (UNS) tmp4, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	strcat((char *) tmp5,(char *) tmp4);
	i=strlen((const char *) tmp5);
	tmp5[i]=207;
	tmp5[i+1]=0;
	}
	if (sym_(SYMGET, (UNS) tmp5, (UNS) tmp6, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp5); // not found
	if (strlen((const char *) tmp6) +
	strlen((const char *) ")") + 1 
	> STR_MAX)
	ErrorMessage("String too long", svPtr->LineNumber);
	strmove( (UNS) tmp7, (UNS) tmp6);
	strcat( (char *) tmp7, (char *) ")");
	sym_(SYMSTORE, (UNS) atmp, (UNS) tmp7, svPtr); // Store result s270 
	} while (0); longjmp(for23J, _i); // FOR loop 1 close 

For23Exit: ; // exit for loop 


//================================================================================= 
svPtr->LineNumber=75; //  for i=1:1:c-1 set @a(i)=r(@s(i)) 
//================================================================================= 

//--------------
//       For
//--------------

	strcpy(for24_lim, "");
	strmove((UNS) for24_init, (UNS) "1"); // init value m2534
	strmove( (UNS) for24_incr, (UNS) "1"); // inc/dec m2575
	if (sym_(SYMGET, (UNS) "c", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "c"); // not found
	sub((char *) tmp0,(char *) "1",(char *) tmp1);
	strmove((UNS) for24_lim, (UNS) tmp1); // limit value

	if (strchr((char *) for24_incr, '.')) // inc/dec is float
		for24F = atof(for24_incr) < 0.0 ? 1 : 0; // incr or decr?
	else // inc/dec is integer
		for24F = atol(for24_incr) < 0 ? 1 : 0; // incr or decr?

	for ( sym_(SYMSTORE, (UNS) "i", (UNS) for24_init, svPtr); // init 2618

		for24F ? // loop limit test direction
			numcomp((UNS) sym_(11, (UNS) "i", 
				 _dummy, svPtr),
				(UNS) for24_lim) >= 0 // GE limit value?
			: // ternary operator
			numcomp((UNS) sym_(11, (UNS) "i", 
				_dummy,svPtr),
				(UNS) for24_lim) <= 0; // LE limit value

		add( sym_(11, (UNS) "i", _dummy, svPtr), // inc/dec loop var
			for24_incr, (char *) _dummy),
		sym_(SYMSTORE, (UNS) "i", (UNS) _dummy, svPtr) ) // store rslt

		if ((_i = setjmp(for24J)) == 0) goto For24; // else continue

	else if (_i == 100) goto For24Exit; // f273

	goto For24Exit; // bypass block 

For24: // for loop body entry point B

	do { // for loop body
		svPtr->LineNumber = 75; 

//--------------
//       Set
//--------------

	_jj = Interpret( (CCHR) 
		"s @a(i)=r(@s(i))", svPtr); 
	svPtr->ERROR = _jj; 
	if (!svPtr->NOERR && _jj < 0) 
		ErrorMessage("Indirection error", svPtr->LineNumber); 
	} while (0); longjmp(for24J, _i); // FOR loop 1 close 

For24Exit: ; // exit for loop 


//================================================================================= 
svPtr->LineNumber=76; //  for i=1:1:c-1 write !,a(i),"->",@a(i) 
//================================================================================= 

//--------------
//       For
//--------------

	strcpy(for25_lim, "");
	strmove((UNS) for25_init, (UNS) "1"); // init value m2534
	strmove( (UNS) for25_incr, (UNS) "1"); // inc/dec m2575
	if (sym_(SYMGET, (UNS) "c", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "c"); // not found
	sub((char *) tmp0,(char *) "1",(char *) tmp1);
	strmove((UNS) for25_lim, (UNS) tmp1); // limit value

	if (strchr((char *) for25_incr, '.')) // inc/dec is float
		for25F = atof(for25_incr) < 0.0 ? 1 : 0; // incr or decr?
	else // inc/dec is integer
		for25F = atol(for25_incr) < 0 ? 1 : 0; // incr or decr?

	for ( sym_(SYMSTORE, (UNS) "i", (UNS) for25_init, svPtr); // init 2618

		for25F ? // loop limit test direction
			numcomp((UNS) sym_(11, (UNS) "i", 
				 _dummy, svPtr),
				(UNS) for25_lim) >= 0 // GE limit value?
			: // ternary operator
			numcomp((UNS) sym_(11, (UNS) "i", 
				_dummy,svPtr),
				(UNS) for25_lim) <= 0; // LE limit value

		add( sym_(11, (UNS) "i", _dummy, svPtr), // inc/dec loop var
			for25_incr, (char *) _dummy),
		sym_(SYMSTORE, (UNS) "i", (UNS) _dummy, svPtr) ) // store rslt

		if ((_i = setjmp(for25J)) == 0) goto For25; // else continue

	else if (_i == 100) goto For25Exit; // f273

	goto For25Exit; // bypass block 

For25: // for loop body entry point B

	do { // for loop body
		svPtr->LineNumber = 76; 

//--------------
//       Write
//--------------

	if (svPtr->out_file[svPtr->io]==NULL) 
		ErrorMessage("Write to input file", svPtr->LineNumber); // m1944 
	_jj = Interpret( (CCHR) 
		"w !,a(i),\"->\",@a(i)", svPtr); 
	svPtr->ERROR = _jj; 
	if (!svPtr->NOERR && _jj < 0) 
		ErrorMessage("Indirection error", svPtr->LineNumber); 
	} while (0); longjmp(for25J, _i); // FOR loop 1 close 

For25Exit: ; // exit for loop 


//================================================================================= 
svPtr->LineNumber=77; //  halt 
//================================================================================= 

//--------------
//       Halt
//--------------

	goto _epilogue; 

//================================================================================= 
svPtr->LineNumber=79; // xx for k=r(i,j-1):1:r(i+1,j) i c(i,k-1)+c(k,j)<x set x=c(i,k-1)+c(k,j),y=k 
//================================================================================= 

xx: 

//--------------
//       For
//--------------

	strcpy(for26_lim, "");
	if (sym_(SYMGET, (UNS) "j", (UNS) tmp1, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
	sub((char *) tmp1,(char *) "1",(char *) tmp2);
{ // local array setup
	int i;
	strmove((UNS) tmp3, (UNS) "r");
	i=strlen((const char *) tmp3);
	tmp3[i]=206;
	tmp3[i+1]=0;
	if (sym_(SYMGET, (UNS) "i", (UNS) tmp0, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	strcat((char *) tmp3,(char *) tmp0);
	i=strlen((const char *) tmp3);
	tmp3[i]=208;
	tmp3[i+1]=0;
	strcat((char *) tmp3,(char *) tmp2);
	i=strlen((const char *) tmp3);
	tmp3[i]=207;
	tmp3[i+1]=0;
	}
	if (sym_(SYMGET, (UNS) tmp3, (UNS) tmp4, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp3); // not found
	strmove((UNS) for26_init, (UNS) tmp4); // init value m2534
	strmove( (UNS) for26_incr, (UNS) "1"); // inc/dec m2575
	if (sym_(SYMGET, (UNS) "i", (UNS) tmp5, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	add( (char *) tmp5, "1", (char *) tmp6 ); 
{ // local array setup
	int i;
	strmove((UNS) tmp8, (UNS) "r");
	i=strlen((const char *) tmp8);
	tmp8[i]=206;
	tmp8[i+1]=0;
	strcat((char *) tmp8,(char *) tmp6);
	i=strlen((const char *) tmp8);
	tmp8[i]=208;
	tmp8[i+1]=0;
	if (sym_(SYMGET, (UNS) "j", (UNS) tmp7, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
	strcat((char *) tmp8,(char *) tmp7);
	i=strlen((const char *) tmp8);
	tmp8[i]=207;
	tmp8[i+1]=0;
	}
	if (sym_(SYMGET, (UNS) tmp8, (UNS) tmp9, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp8); // not found
	strmove((UNS) for26_lim, (UNS) tmp9); // limit value

	if (strchr((char *) for26_incr, '.')) // inc/dec is float
		for26F = atof(for26_incr) < 0.0 ? 1 : 0; // incr or decr?
	else // inc/dec is integer
		for26F = atol(for26_incr) < 0 ? 1 : 0; // incr or decr?

	for ( sym_(SYMSTORE, (UNS) "k", (UNS) for26_init, svPtr); // init 2618

		for26F ? // loop limit test direction
			numcomp((UNS) sym_(11, (UNS) "k", 
				 _dummy, svPtr),
				(UNS) for26_lim) >= 0 // GE limit value?
			: // ternary operator
			numcomp((UNS) sym_(11, (UNS) "k", 
				_dummy,svPtr),
				(UNS) for26_lim) <= 0; // LE limit value

		add( sym_(11, (UNS) "k", _dummy, svPtr), // inc/dec loop var
			for26_incr, (char *) _dummy),
		sym_(SYMSTORE, (UNS) "k", (UNS) _dummy, svPtr) ) // store rslt

		if ((_i = setjmp(for26J)) == 0) goto For26; // else continue

	else if (_i == 100) goto For26Exit; // f273

	goto For26Exit; // bypass block 

For26: // for loop body entry point B

	do { // for loop body
		svPtr->LineNumber = 79; 

//--------------
//       If
//--------------

	if (sym_(SYMGET, (UNS) "k", (UNS) tmp11, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "k"); // not found
	sub((char *) tmp11,(char *) "1",(char *) tmp12);
{ // local array setup
	int i;
	strmove((UNS) tmp13, (UNS) "c");
	i=strlen((const char *) tmp13);
	tmp13[i]=206;
	tmp13[i+1]=0;
	if (sym_(SYMGET, (UNS) "i", (UNS) tmp10, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	strcat((char *) tmp13,(char *) tmp10);
	i=strlen((const char *) tmp13);
	tmp13[i]=208;
	tmp13[i+1]=0;
	strcat((char *) tmp13,(char *) tmp12);
	i=strlen((const char *) tmp13);
	tmp13[i]=207;
	tmp13[i+1]=0;
	}
{ // local array setup
	int i;
	strmove((UNS) tmp17, (UNS) "c");
	i=strlen((const char *) tmp17);
	tmp17[i]=206;
	tmp17[i+1]=0;
	if (sym_(SYMGET, (UNS) "k", (UNS) tmp15, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "k"); // not found
	strcat((char *) tmp17,(char *) tmp15);
	i=strlen((const char *) tmp17);
	tmp17[i]=208;
	tmp17[i+1]=0;
	if (sym_(SYMGET, (UNS) "j", (UNS) tmp16, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
	strcat((char *) tmp17,(char *) tmp16);
	i=strlen((const char *) tmp17);
	tmp17[i]=207;
	tmp17[i+1]=0;
	}
	if (sym_(SYMGET, (UNS) tmp13, (UNS) tmp14, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp13); // not found
	if (sym_(SYMGET, (UNS) tmp17, (UNS) tmp18, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp17); // not found
	add((char *) tmp14, (char *) tmp18, (char *) tmp19); 
	if (sym_(SYMGET, (UNS) "x", (UNS) tmp20, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "x"); // not found
	if (numcomp((UNS) tmp19, (UNS) tmp20) < 0) strmove((UNS) tmp21, (UNS) "1");
	else strmove((UNS) tmp21, (UNS) "0");
	svPtr->tpx = 0; //Default $Test indicator
	if (numcomp2((UNS) tmp21 )) { // Test if true 
	svPtr->tpx = 1; // $test becomes true

//--------------
//       Set
//--------------

	if (sym_(SYMGET, (UNS) "k", (UNS) tmp24, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "k"); // not found
	sub((char *) tmp24,(char *) "1",(char *) tmp25);
{ // local array setup
	int i;
	strmove((UNS) tmp26, (UNS) "c");
	i=strlen((const char *) tmp26);
	tmp26[i]=206;
	tmp26[i+1]=0;
	if (sym_(SYMGET, (UNS) "i", (UNS) tmp23, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "i"); // not found
	strcat((char *) tmp26,(char *) tmp23);
	i=strlen((const char *) tmp26);
	tmp26[i]=208;
	tmp26[i+1]=0;
	strcat((char *) tmp26,(char *) tmp25);
	i=strlen((const char *) tmp26);
	tmp26[i]=207;
	tmp26[i+1]=0;
	}
{ // local array setup
	int i;
	strmove((UNS) tmp30, (UNS) "c");
	i=strlen((const char *) tmp30);
	tmp30[i]=206;
	tmp30[i+1]=0;
	if (sym_(SYMGET, (UNS) "k", (UNS) tmp28, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "k"); // not found
	strcat((char *) tmp30,(char *) tmp28);
	i=strlen((const char *) tmp30);
	tmp30[i]=208;
	tmp30[i+1]=0;
	if (sym_(SYMGET, (UNS) "j", (UNS) tmp29, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "j"); // not found
	strcat((char *) tmp30,(char *) tmp29);
	i=strlen((const char *) tmp30);
	tmp30[i]=207;
	tmp30[i+1]=0;
	}
	if (sym_(SYMGET, (UNS) tmp26, (UNS) tmp27, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp26); // not found
	if (sym_(SYMGET, (UNS) tmp30, (UNS) tmp31, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) tmp30); // not found
	add((char *) tmp27, (char *) tmp31, (char *) tmp32); 
	sym_(SYMSTORE, (UNS) "x", (UNS) tmp32, svPtr); // Store result s274 
	if (sym_(SYMGET, (UNS) "k", (UNS) tmp34, svPtr) == NULL) // get value 
		VariableNotFound1(svPtr->LineNumber, (UNS) "k"); // not found
	sym_(SYMSTORE, (UNS) "y", (UNS) tmp34, svPtr); // Store result s274 
	} while (0); longjmp(for26J, _i); // FOR loop 2 close 
	} while (0); longjmp(for26J, _i); // FOR loop 1 close 

For26Exit: ; // exit for loop 


//================================================================================= 
svPtr->LineNumber=80; //  quit 
//================================================================================= 

//--------------
//       Quit
//--------------

	if (svPtr->Rargsx) { // call-by-reference? 
		int i; 
		unsigned char *tmp = new unsigned char[STR_MAX]; 
		for (i = 0; i < svPtr->Rargsx; i++) { 
		sym_(1, (UNS) svPtr->RefParm[i], (UNS) tmp,svPtr); 
		sym_(SYMSTORE, (UNS) svPtr->Rargs[i], (UNS) tmp, svPtr); 
		} 
		} 
	strmove((UNS) _ReturnVal, (UNS) ""); 
	if (_doStackN[_doStx]) {  _doStackN[_doStx] = 0; } // Q1001 
	if (_doStx > 0) { longjmp(_doStack[_doStx],99); } 
	else ErrorMessage("Too Many Quits", svPtr->LineNumber); 

//=================================================================================
_epilogue: tmp0[0]=0; tmp1[0]=0;  /*  Function Epilogue */
	Mltoa(getpid(),atmp);
	if (svPtr->LockDone) cleanLocks((char *) atmp);
	Mglobal(CLOSE,tmp0,tmp1,svPtr);  /* Close Globals */

} // end of try block 

catch(...) { 
     if (GlobalExceptionCode == INPUT_ERROR) cout << "Input Error" << endl;
     else if (GlobalExceptionCode == INPUT_LENGTH) cout << "Input Length Error" << endl;
     else if (GlobalExceptionCode == SYMTAB_ERROR) cout << "Symbol Table Error" << endl;
     else if (GlobalExceptionCode == GLOBAL_NOT_FOUND) cout << "Global Not Found Error" << endl;
     else if (GlobalExceptionCode == INTERPRETER_ERROR) cout << "Interprerer Error" << endl;
     else if (GlobalExceptionCode == INVALID_CONVERSION) cout << "Invalid Conversion Error" << endl;
     else if (GlobalExceptionCode == DATA_RANGE_ERROR) cout << "Data Range Error" << endl;
     else if (GlobalExceptionCode == NUMERIC_RANGE) cout << "Numeric Range Error" << endl;
     else if (GlobalExceptionCode == UNSPECIFIED) cout << "Unspecified Error" << endl;
	cout << "Uncaught error in or near line " 
	<< svPtr->LineNumber << endl;
	Mglobal(CLOSE,tmp0,tmp1,svPtr);  /* Close Globals */
	} 

return EXIT_SUCCESS; }  /* Terminate */
//=================================================================================


int _label_lookup(char *label) {

static struct lab {
	const char *text;
	int offset;
	}
	L[] = {
		"xx", 79,
		"z", 74,
		"y", 60
	};

int lx = -1, i, Lx=3;

	for (i=0; i<Lx; i++) {
		if (strcmp((const char *) L[i].text,(const char *) label)==0) {
			lx=L[i].offset;
			break;
			}
		}
	return lx;
 }
const char * _text_function(int disp) { return NULL; }

