Fixes are available
April 2011 Update for XL Fortran for Linux, V13.1
July 2011 Update for XL Fortran for Linux, V13.1
October 2011 Update for XL Fortran for Linux, V13.1
June 2012 Update for XL Fortran for Linux, V13.1
October 2012 Update for XL Fortran for Linux, V13.1
XL Fortran for Linux Fix Pack 8 (June 2013 Update) for 13.1
APAR status
Closed as program error.
Error description
The typo on line 104 of test.f90 causes the Fortran compiler to abend. ===== COMPILE COMMAND: $ xlf95 -c test.f90 ===== TESTCASE: $ cat test.f90 Module Series Implicit None Integer, Parameter :: wp = Kind(1.0d0) ! working, double Contains !------------------------------------------------------------ Subroutine Jonc(z, s, res_J, est_abs_err, est_rel_err, & & n, k, abs_err, rel_err, meth) Implicit none ! Subroutine arguments: Real(wp), intent(IN) :: z Real(wp), intent(IN) :: s Real(wp), intent(OUT) :: res_J Real(wp), intent(OUT) :: est_abs_err Real(wp), intent(OUT) :: est_rel_err Integer, intent(IN), optional :: n Integer, intent(IN), optional :: k Real(wp), intent(IN), optional :: abs_err Real(wp), intent(IN), optional :: rel_err Integer, intent(IN), optional :: meth ! Local variables: Integer :: i, j, j1, j2, nn, kk Real(wp) :: den, num, res Real(wp) :: uabs_err, r Integer :: umeth Real(wp), allocatable :: C(:) Real(wp), allocatable :: A(:,:) If (present(n)) Then nn=n Else nn=50 End If If (present(k)) Then kk=k Else kk=5 End If If (present(abs_err)) Then uabs_err=abs_err Else uabs_err=1.0e-5 End If If (present(meth)) Then umeth=meth Else umeth=1 End If If ( (z <= 10.0_wp*tiny(1.0_wp)) .AND. (z >= 10.0_wp*tiny(1.0_wp)) ) Then res_J = z est_abs_err = 0.00001_wp Else If ( (z <= 0.001_wp) .AND. ( z >= -0.001_wp) ) Then res_J = z + (z*z)/(2.0_wp**s) est_abs_err = 0.00001_wp Else If ( (z < 2.49_wp) ) Then allocate(C(1:nn)) allocate(A(0:nn,1:kk)) Forall (i=1:nn) C(i) = (z**i) * ( 1.0_wp / (Real(i,wp))**s ) End Forall A(0,1) = C(1) Forall (i=1: nn) A(i,1) = sum(C(1:i)) End Forall If (umeth == 0) Then res = A(nn,1) est_abs_err = abs(res-A(nn-1,1)) est_rel_err = abs(est_abs_err / res) End If deallocate(C) deallocate(A) End If End Subroutine Jonc End Module Series !=============================================================== Program Jonc1 Implicit none Integer, Parameter :: wp = Kind(1.0d0) ! working, double Integer, Parameter :: kp = Kind(1.0e0) ! komplot, single Integer, Parameter :: np=80, nirc = 12 real(wp) :: psi, den, RI, RI_err Real(wp) :: bias, mo1, mo1_err, bias_err Real(wp) :: xar(1:np), yar(1:np), dyar(1:np), zar1(1:np), zar2(1:np) Real(wp) :: yintar(1:np), yintarc(1:np), dyintar(1:np) Real(wp) :: R(1:nirc), err_est(1:nirc) Integer :: i ! syntax error -------------v Real(kp) :: xark(1:np), yark*1:np), dyark(1:np), zar1k(1:np), zar2k(1:np) ! syntax error -------------^ Do i = 1, np RI = R(3) ; RI_err = err_est(3) bias = R(5) ; bias_err = err_est(5) Mo1 = R(9) ; Mo1_err = err_est(9) yintarc(i) = yintar(i)/den dyintar(i) = RI/(xar(i)**2) End Do Forall (i=1:np) xark(i) = Real(xar(i),kp) yark(i) = max(min(Real(yar(i),kp), 1.0_kp), -1000.0_kp) dyark(i) = max(min(Real(dyar(i),kp), 1000.0_kp), -1000.0_kp) zar1k(i) = Real(zar1(i),kp) zar2k(i) = Real(zar2(i),kp) End Forall End Program Jonc1 !============================================================ $ ===== ACTUAL OUTPUT: $xlf95 -c test.f90 ** series === End of Compilation 1 === /usr/bin/.orig/xlf95: 1501-230 (S) Internal compiler error; please contact your Service Representative. For more information visit: http://www.ibm.com/support/docview.wss?uid=swg21110810 1501-511 Compilation failed for file test.f90. $ ===== EXPECTED OUTPUT: $xlf95 -c test.f90 ** series === End of Compilation 1 === "test.f90", line 104.12: 1515-019 (S) Syntax is incorrect. "test.f90", line 116.5: 1516-036 (S) Entity xark has undefined type. "test.f90", line 116.5: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement. "test.f90", line 117.5: 1516-036 (S) Entity yark has undefined type. "test.f90", line 117.5: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement. "test.f90", line 118.5: 1516-036 (S) Entity dyark has undefined type. "test.f90", line 118.5: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement. "test.f90", line 119.5: 1516-036 (S) Entity zar1k has undefined type. "test.f90", line 119.5: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement. "test.f90", line 120.5: 1516-036 (S) Entity zar2k has undefined type. "test.f90", line 120.5: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement. ** jonc1 === End of Compilation 2 ===
Local fix
n/a
Problem summary
USERS AFFECTED: Users of XL Fortran 13.1 on AIX and Linux are potentially affected by this issue. PROBLEM DESCRIPTION: When the declaration of a variable that is used in FORALL has a syntax error, the Fortran compiler can sometimes have an internal compiler error. The reason for this internal compiler error is because the compiler tries to recover from detecting the typo in the source code to continue finding other syntax errors during compile time. Due to the recovery process of the first syntax error, the compiler can sometimes miss interpret information leading to an abend.
Problem conclusion
The problem has been fixed to detect and handle the scenario mentioned in the test case.
Temporary fix
Comments
APAR Information
APAR number
LI76095
Reported component name
XL FORTRAN LINU
Reported component ID
5724X1600
Reported release
D10
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2011-04-27
Closed date
2011-04-27
Last modified date
2011-04-27
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
XL FORTRAN LINU
Fixed component ID
5724X1600
Applicable component levels
RD10 PSN IZ87501
UP06/09/13
[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSAT4T","label":"XL Fortran for Linux"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"D10","Line of Business":{"code":"LOB57","label":"Power"}}]
Document Information
Modified date:
17 October 2021