Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Warning for the problem BLEACHING #31

Open
amontoison opened this issue Jan 24, 2025 · 1 comment
Open

Warning for the problem BLEACHING #31

amontoison opened this issue Jan 24, 2025 · 1 comment

Comments

@amontoison
Copy link
Member

amontoison commented Jan 24, 2025

Recent gfortran doesn't like some old Fortran features.

Problem BLEACHNG... EXTER.f:1652:72:

 1652 |  26     IF (IOPT(I) .LT. 0 .OR. IOPT(I) .GT. 1) GO TO 607
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 26 at (1)
EXTER.f:1746:72:

 1746 |  80     RWORK(I+LSAVF-1) = RWORK(I+LWM-1)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 80 at (1)
EXTER.f:1790:72:

 1790 |  110    IWORK(J + LNRS - 1) = 0
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 110 at (1)
EXTER.f:1793:72:

 1793 |  115    RWORK(I+LYH-1) = Y(I)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 115 at (1)
EXTER.f:1800:72:

 1800 |  120    RWORK(I+LEWT-1) = ONE/RWORK(I+LEWT-1)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 120 at (1)
EXTER.f:1833:72:

 1833 |  130    TOL = MAX(TOL,RTOL(I))
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 130 at (1)
EXTER.f:1854:72:

 1854 |  190    RWORK(I+LF0-1) = H0*RWORK(I+LF0-1)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 190 at (1)
EXTER.f:1906:72:

 1906 |  260    RWORK(I+LEWT-1) = ONE/RWORK(I+LEWT-1)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 260 at (1)
EXTER.f:1977:72:

 1977 |  410    Y(I) = RWORK(I+LYH-1)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 410 at (1)
EXTER.f:2057:72:

 2057 |  590    Y(I) = RWORK(I+LYH-1)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 590 at (1)
EXTER.f:2395:72:

 2395 |  110    WM(I+2) = ZERO
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 110 at (1)
EXTER.f:2400:72:

 2400 |  120    WM(I+2) = WM(I+2)*CON
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 120 at (1)
EXTER.f:2415:72:

 2415 |  220      WM(I+J1) = (FTEM(I) - SAVF(I))*FAC
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 220 at (1)
EXTER.f:2425:72:

 2425 |  250    J = J + (N + 1)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 250 at (1)
EXTER.f:2434:72:

 2434 |  310    Y(I) = Y(I) + R*(H*SAVF(I) - YH(I,2))
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 310 at (1)
EXTER.f:2456:72:

 2456 |  410    WM(I+2) = ZERO
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 410 at (1)
EXTER.f:2461:72:

 2461 |  420    WM(I+2) = WM(I+2)*CON
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 420 at (1)
EXTER.f:2478:72:

 2478 |  530      Y(I) = Y(I) + R
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 530 at (1)
EXTER.f:2489:72:

 2489 |  540        WM(II+I) = (FTEM(I) - SAVF(I))*FAC
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 540 at (1)
EXTER.f:2498:72:

 2498 |  580    II = II + MEBAND
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 580 at (1)
EXTER.f:2547:72:

 2547 |  110    DFDP(I) = (FTEM(I) - SAVF(I))*FAC
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 110 at (1)
EXTER.f:2553:72:

 2553 |  210    DFDP(I) = 0.0D0
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 210 at (1)
EXTER.f:2596:72:

 2596 |  10     IC = IC*JJ
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 10 at (1)
EXTER.f:2599:72:

 2599 |  20     DKY(I) = C*YH(I,L)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 20 at (1)
EXTER.f:2609:72:

 2609 |  30       IC = IC*JJ
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 30 at (1)
EXTER.f:2612:72:

 2612 |  40       DKY(I) = C*YH(I,JP1) + S*DKY(I)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 40 at (1)
EXTER.f:2617:72:

 2617 |  60     DKY(I) = R*DKY(I)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 60 at (1)
EXTER.f:2696:72:

 2696 |  20     Y(I,2) = Y(I,1)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 20 at (1)
EXTER.f:2719:72:

 2719 |  40       Y(I,J) = YH(I,J,1) - EL0*YH(I,J,2) + HL0*Y(I,J)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 40 at (1)
EXTER.f:2731:72:

 2731 |  50       ACOR(I,J) = (Y(I,J) - YH(I,J,1))*EL0I
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 50 at (1)
EXTER.f:2742:72:

 2742 |  60       Y(I,J) = ACOR(I,J) - YH(I,J,LMAX)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 60 at (1)
EXTER.f:2927:72:

 2927 |  125    EL(I) = ELCO(I,NQ)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 125 at (1)
EXTER.f:2948:72:

 2948 |  155    EL(I) = ELCO(I,NQ)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 155 at (1)
EXTER.f:2971:72:

 2971 |         DO 180 I = 1,NYH
      |                                                                        1
Warning: Fortran 2018 deleted feature: Shared DO termination label 180 at (1)
EXTER.f:2972:72:

 2972 |  180      YH(I,J) = YH(I,J)*R
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 180 at (1)
EXTER.f:2993:72:

 2993 |  210      YH1(I) = YH1(I) + YH1(I+NYH)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 210 at (1)
EXTER.f:3005:72:

 3005 |  230    Y(I) = YH(I,1)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 230 at (1)
EXTER.f:3022:72:

 3022 |  260    ACOR(I) = ZERO
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 260 at (1)
EXTER.f:3031:72:

 3031 |  290    Y(I) = SAVF(I) - ACOR(I)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 290 at (1)
EXTER.f:3035:72:

 3035 |  300    ACOR(I) = SAVF(I)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 300 at (1)
EXTER.f:3043:72:

 3043 |  360    Y(I) = H*SAVF(I) - (YH(I,2) + ACOR(I))
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 360 at (1)
EXTER.f:3050:72:

 3050 |  380    Y(I) = YH(I,1) + EL(1)*ACOR(I)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 380 at (1)
EXTER.f:3084:72:

 3084 |  440      YH1(I) = YH1(I) - YH1(I+NYH)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 440 at (1)
EXTER.f:3133:72:

 3133 |         DO 470 I = 1,NYH
      |                                                                        1
Warning: Fortran 2018 deleted feature: Shared DO termination label 470 at (1)
EXTER.f:3134:72:

 3134 |  470      YH(I,J) = YH(I,J) + EL(J)*ACOR(I)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 470 at (1)
EXTER.f:3140:72:

 3140 |  490    YH(I,LMAX) = ACOR(I)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 490 at (1)
EXTER.f:3157:72:

 3157 |  510      YH1(I) = YH1(I) - YH1(I+NYH)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 510 at (1)
EXTER.f:3180:72:

 3180 |  530    SAVF(I) = ACOR(I) - YH(I,LMAX)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 530 at (1)
EXTER.f:3216:72:

 3216 |  600    YH(I,NEWQ+1) = ACOR(I)*R
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 600 at (1)
EXTER.f:3246:72:

 3246 |  645    Y(I) = YH(I,1)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 645 at (1)
EXTER.f:3254:72:

 3254 |  646    YH(I,2) = H*YH(I,2)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 646 at (1)
EXTER.f:3256:72:

 3256 |  650    YH(I,2) = H*SAVF(I)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 650 at (1)
EXTER.f:3277:72:

 3277 |  710    ACOR(I) = ACOR(I)*R
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 710 at (1)
EXTER.f:3340:72:

 3340 |  110      PC(I) = PC(I-1) + FNQM1*PC(I)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 110 at (1)
EXTER.f:3349:72:

 3349 |  120      XPIN = XPIN + TSIGN*PC(I)/REAL(I+1)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 120 at (1)
EXTER.f:3354:72:

 3354 |  130      ELCO(I+1,NQ) = RQ1FAC*PC(I)/REAL(I)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 130 at (1)
EXTER.f:3377:72:

 3377 |  210      PC(I) = PC(I-1) + FNQ*PC(I)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 210 at (1)
EXTER.f:3381:72:

 3381 |  220      ELCO(I,NQ) = PC(I)/PC(2)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 220 at (1)
EXTER.f:3437:72:

 3437 |  320    WM(I+2) = ONE/DI
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 320 at (1)
EXTER.f:3439:72:

 3439 |  340    X(I) = WM(I+2)*X(I)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 340 at (1)
EXTER.f:3558:72:

 3558 |  10     RSAV(I) = RODE1(I)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 10 at (1)
EXTER.f:3561:72:

 3561 |  20     RSAV(J) = RODE2(I)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 20 at (1)
EXTER.f:3563:72:

 3563 |  30     ISAV(I) = IODE1(I)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 30 at (1)
EXTER.f:3566:72:

 3566 |  40     ISAV(J) = IODE2(I)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 40 at (1)
EXTER.f:3587:72:

 3587 |  10     RODE1(I) = RSAV(I)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 10 at (1)
EXTER.f:3590:72:

 3590 |  20     RODE2(I) = RSAV(J)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 20 at (1)
EXTER.f:3592:72:

 3592 |  30     IODE1(I) = ISAV(I)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 30 at (1)
EXTER.f:3595:72:

 3595 |  40     IODE2(I) = ISAV(J)
      |                                                                        1
Warning: Fortran 2018 deleted feature: DO termination statement which is not END DO or CONTINUE with label 40 at (1)
@nimgould
Copy link
Contributor

Yup, this is a Fortran 2018 feature, but it can easily be removed with a compiler flag -st-legacy . Many HSL packages (e.g., MA27) also fall foul of this, and it is very unlikely that
gfortran will actually enforce this due to the huge volume of unmaintained legacy code.

It isn't actually a bug in SIF though, as SIF specifies that arithemtic expressions adhere to the fortran 77 standard (and now with extensions to modern fortran). I agree that it isn't usually considered to be good programming practice, but then that is subjective!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants