You are wasting time doing things that have already been done. A 2010 Share Anaheim paper on COBOL performance (Google
cobol initialize vs move and look for the COBOL Performance Tuning Paper) has this:
Performance considerations for INITIALIZE on a program
that has 5 OCCURS clauses in the group:
• When each OCCURS clause in the group contained 100
elements, a MOVE to the group was 8% faster than an
INITIALIZE of the group.
• When each OCCURS clause in the group contained 1000
elements, a MOVE to the group was 23% faster than an
INITIALIZE of the group.
Is there any way I can pass default value to elementary variables which are packed decimal(COMP-3)("considering by not changing the internal structures of variables").
Yes -- first, note that PIC S9(12) COMP-3 is not recommended since packed decimal variables should ALWAYS have an odd number of digits in their PICTURE. PIC S9(12) COMP-3 with a value of zero has internal representation of X'0000000000000C' so if you code
MOVE ALL X'0000000000000C' TO ORG-COUNTS
all of the table elements will be initialized to zeroes. Note that this only works as long as all the table entries have the same PICTURE; otherwise, you have to code up a hexadecimal string that has all the variables for a single occurrence of the table and MOVE ALL on that string (it could be a variable, which might make it easier).