NAT 6.3 Parameters

Goodday ,

I would like to know the max number of parameters that can be sent with a CALL from a program to a subprogram.
On parameter 39 I get a NAT0648 Parameter 2 inconsistently specified. Reason code 16 (parameters do not match in length).

I use Natural 6.3.10 (SPoD).

When I use NAT8.3 I have no problem.

Hello,

I’m not sure what the maximum number of parameters is that can be passed on a CALLNAT, but it is certainly a lot more than 39. Definitely in the thousands, and maybe more limited by internal buffers and thread sizes, rather than a fixed number limit.

Most likely the problem is exactly what the error message says, a mismatch in the length of the 39’th parameter in the CALLNAT parameter list versus the DEFINE DATA parameter list in the subprogram. What are the formats and lengths of the 39th parameter in both places?

A few other thoughts:
Are the parameters passed by Reference (normal default) or by Value? Can you change the PCHECK compiler option to ON and CHECK/STOW to verify that it is the 39th parameter that is the problem?

When you tested with NAT 8.3, was that on the mainframe or Unix server? Are the parameter lists in both program and subprogram the same there? The By Reference/By Name settings?

Good luck,
George

1 Like

I’m sure that in some ancient Natural version (Nat6.3?) up to 40 parameters were allowed.

I suggest an upgrade to Nat9.1.

Thank you George, your answer helped. I got the program compiled.