Gleitkomma-Ausnahmen signalisieren in der neuen Gfortran-Version

Ich arbeite derzeit daran, eine Subroutine einer Software zu debuggen, die mein Chef in den 90er Jahren geschrieben hat. Es scheint eine Gleitkomma-Ausnahme zu geben, die in einer do-Schleife eines bestimmten Unterprogramms auftritt:

16  irad=1,incmax
    rr1=rr2
    rr2=rr2+rdiv
      if(rr1.gt.rlimit) goto 16
      if(pts(irad).gt.0.0) then
         discrm=(rmsden(mt,irad)/pts(irad))
     1          -((average(mt,irad)**2)/(pts(irad)**2))
      else
         discrm=0.0
      endif
      if(discrm.ge.0.0) then
         rmsden(mt,irad)=sqrt(discrm)
      else
         rmsden(mt,irad)=0.0
      endif

      average(mt,irad)=average(mt,irad)/pts(irad)
      average(mt,irad)=(average(mt,irad)*100.0)/bigmost(mt)
      rmsden(mt,irad)=(rmsden(mt,irad)*100.0)/bigmost(mt)
      denbot(mt,irad)=(denbot(mt,irad)*100.0)/bigmost(mt)
      dentop(mt,irad)=(dentop(mt,irad)*100.0)/bigmost(mt)
      iradmax(mt)=irad


 17   if(iverbose0.ge.1) then
         ipts=pts(irad)
         iptszero=ptszero(irad)
         if(ipts.eq.0) then
            average(mt,irad)=0.0
            rmsden(mt,irad)=0.0
            denbot(mt,irad)=0.0
            dentop(mt,irad)=0.0
         endif
         write(6,99) rr1,rr2,ipts,iptszero,average(mt,irad),
     1               rmsden(mt,irad),denbot(mt,irad),dentop(mt,irad)
 99      format(1x,2f9.2,2i8,2f8.1,2f8.1)
      endif
 16   continue
      stop 'PIPPA'

If I put the stop 'PIPPA' statement before "16  continue", the there are no errors. However, if the stop statement goes after the "16  continue", I get: 
Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG
STOP PIPPA

Dies geschah nicht vor dem Upgrade der GCC-Compiler / Bibliotheken. Ich gebe zu, dass ich durch Googeln eine Menge Ressourcen gefunden habe, aber ich bin immer noch nicht in der Lage, dies zu debuggen. Ich habe auch das @ probie--fpe-trap Flags beim Kompilieren, geben jedoch nichts aus.

Warum beschwert sich Gfortran jetzt?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage