Sample ILC applications

Figure 1. Fortran routine that calls a PL/I routine
 @PROCESS LIST                                                          
       PROGRAM FOR2PLI                                                  
                                                                        
 *    Module/File Name:  AFHPLFOR */                                    
 ****************************************************                   
 *     Illustration of Interlanguage Communication  *
 *     between Fortran and PL/I.                    *
 ****************************************************                   
 *                                                                      
       INTEGER*2    INT_2   / 2 /                                       
       INTEGER*4    INT_4   / 4 /                                       
       REAL*8       PI      / 3.14159265358979312D0 /                   
       CHARACTER*23 CHAR_23 / ' ' /                                     
                                                                        
       PRINT *, 'FOR2PLI STARTED'                                       
                                                                        
       CALL PLIFFOR (INT_2, INT_4, PI, CHAR_23)                         
       IF (CHAR_23 /=  'PASSED CHARACTER STRING') THEN                  
          PRINT *, 'CHAR_23 NOT SET PROPERLY'                           
       ENDIF                                                            
                                                                        
       PRINT *, 'FOR2PLI ENDED'                                         
       END                                                              
Figure 2. PL/I routine called by Fortran
  PLIFFOR: PROCEDURE (INT_2, INT_4, REAL_8, CHAR_STRING)               
                          OPTIONS(FORTRAN);                            
  /* Module/File Name:   IBMPLFOR                   */                 
                                                                       
                                                                       
   DCL ABS          BUILTIN;                                           
   DCL INT_2        FIXED BIN(15,0);                                   
   DCL INT_4        FIXED BIN(31,0);                                   
   DCL REAL_8       FLOAT BIN(53);                                     
   DCL CHAR_STRING  CHAR(23);                                          
                                                                       
   DCL PI           FLOAT BIN(53)                                      
                     INIT (3.141592653589793E0);                       
                                                                       
                                                                       
   PUT SKIP LIST ('PLIFFOR STARTED');                                  
                                                                       
   IF (INT_2 ¬= 2) THEN                                                
      PUT SKIP LIST ('INT_2 NOT 2');                                   
                                                                       
   IF (INT_4 ¬= 4) THEN                                                
      PUT SKIP LIST ('INT_4 NOT 4');                                   
                                                                       
   IF (ABS(REAL_8 - PI) > 1.0E13) THEN                                 
      PUT SKIP LIST ('REAL_8 NOT PI');                                 
                                                                       
   CHAR_STRING = 'PASSED CHARACTER STRING';                            
                                                                       
   PUT SKIP LIST ('PLIFFOR ENDED');                                    
                                                                       
  END PLIFFOR;