I have done the following to make this work:
TESTOPM - regular cobol OPM program. This is the top of my calling chain with a working storage.
In there I do a CALL TESTCBLLE USING WS-FLAG.
So far I have a call from an OPM Cobol Program to a COBOL ILE program (created with CRTBNDCBL).
Then I do a call from TESTCBLLE to TESTCILE (c program used with CRTBNDC) as:
CALL TESTCILE USING BY REFERENCE RESULT-STRING (just passing text to try).
Then I move a 'Y' back to WS-FLAG in TESTCBLLE.
All of my displays are in the TESTCBLLE to display:
DISPLAY "BEFORE CALLING TESTCILE " RESULT-STRING
DISPLAY "CALLING TESTCILE FROM TESTCBLLE"
CALL "TESTCLE" USING BY REFERENCE RESULT-STRING.
DISPLAY "AFTER CALLING TESTCILE " RESULT-STRING
It seems to be working.
I went from CBL OPM to CB ILE to C ILE. All three are programs, not modules. I created the ILE's by using the CRTBND.
Then back in the top of the food chain program, TESTOPM, after I do my call to the TESTCBLLE program I do:
DISPLAY "WAS OPEM TO ILE CBL TO ILE C A SUCCESS?" WS-FLAG.