print("for (" + RawExecutionCode.ARRAY_INDEX + i + " = 0; " + RawExecutionCode.ARRAY_INDEX + i + " < " + dims[i] + " ; " + RawExecutionCode.ARRAY_INDEX + i + "++)\n");
print(ARRAY_INDEX + i); if (i < dims.length - 1) print(", "); } print(";\n"); for (int i = 0; i < dims.length; i++) { print("  for (" + ARRAY_INDEX + i + " = 0; " + ARRAY_INDEX + i + " < " + dims[i] + " ; " + ARRAY_INDEX + i + "++)\n");
    private void pushArray(SIRPushExpression self, 			   CType tapeType,			   JExpression val)     {	CType baseType = ((CArrayType)tapeType).getBaseType();	String dims[] = Util.makeString(((CArrayType)tapeType).getDims());		for (int i = 0; i < dims.length; i++) {	    print("for (" + RawExecutionCode.ARRAY_INDEX + i + " = 0; " +		  RawExecutionCode.ARRAY_INDEX + i + " < " + dims[i] + " ; " +		  RawExecutionCode.ARRAY_INDEX + i + "++)\n");	}	if(KjcOptions.altcodegen || KjcOptions.decoupled) {	    print("{\n");	    print(Util.staticNetworkSendPrefix(Util.getBaseType(tapeType)));	    val.accept(this);	    for (int i = 0; i < dims.length; i++) {		print("[" + RawExecutionCode.ARRAY_INDEX + i + "]");	    }	    print(Util.staticNetworkSendSuffix());	    print(";\n}\n");	} else {	    print("{");	    print("static_send((" + baseType + ") ");	    val.accept(this);	    for (int i = 0; i < dims.length; i++) {		print("[" + RawExecutionCode.ARRAY_INDEX + i + "]");	    }	    print(");\n}\n");	}    }